8

EE has always maintained a unique entry id, but only unique url titles within a given channel. There is no way that I know of to force unique url titles across all channels. This usually isn't an issue so long as you are specifying channels in your template code. Incidentally this is why EE uses a /category/ segment when using category url titles - that's ...


6

You can use any ee add-ons which can create url_titles from another field (for example - MX *Title Control) + somethink like low_replace to remove dot's. You can replace it on JS level, you can use Foreign Character Extension You can make your own ext. using entry_submission_start hook. If you decide to hack core: \expressionengine\helpers\EE_url_helper....


4

Like, multiple different ways, depending on what you want to do. One way: {!-- template: teamplate.group/index.html (default template group) --} {exp:channel:entries {if segment_1} url_title="{segment_1}" {if:else} url_title="home-page-entry-url-title" {/if}} ... maybe use a homepage partial here if no segment 1, otherwise use a ...


3

Have a look at the Magic Fields add-on - it can do this.


3

Finally resolved this. On a whim I decided to try the URL /en and that had the same effect too so that meant it had to be language related, with the original problem being with 'de'. In my htaccess, which is where I started in the first place, I found a reference to a multi-lingual snippet, which included en|fr|es and wouldn't you know it....de. Removing ...


3

As variant you can just use MX Title Control and regenerate you url_ titles by any pattern; by default this ext is repeated default EE logic and convert url_title into a low case. if you want to change this logic, /mx_title_control/ext.mx_title_control.php, line 125: replace $url_title_name_out = $this->convert_accented_characters(strtolower($...


3

You can do this with last version (2.8.8) of MX Title Control. You can add {random_string} tag into URL Title Pattern and get 10 characters random string. Hidden Configuration Variables $config['mx_random_string_length'] = "20"; $config['mx_random_string_pattern'] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";


3

No, even though we use the same hooks as the Pages module EE has no parameter for that. Here are all of the available parameters for the channel tag: http://ellislab.com/expressionengine/user-guide/modules/channel/channel_entries.html#parameters


2

The no_results conditional should work, something like: {exp:channel:entries channel="speed_sales" dynamic="no" url_title="{embed:url_title}"} {if no_results} <!-- Content for no results --> {if:else} <!-- Otherwise ... --> <h2>{title}</h2> {if lead_copy}<p class="lead">{...


2

Template Routes Control your URLs by remapping URI routes to a specific template, using CodeIgniter-style routing rules. $config['template_routes'] = array( 'blog/:category' => 'site/blog-category', 'blog/:year/:pagination' => 'site/blog-yearly-archive', 'blog/:any' => 'site/blog-single', );


2

solved: {if url_title == "{last_segment}"} class="active"{/if}


2

As far as I'm aware no. Because EE will strip out the non-alpha numeric characters, not replace them with their similar counterparts. It's not relevant to the Database. So either you have to manually edit the url_title field each time or look at other options. But in looking elsewhere for solutions may give you an even better end result - of being able to ...


2

Here's another wing at it, one that will probably be more successful. Note that if you have thousands and thousands of rows in your exp_channel_titles table you might have to up your PHP's mem_limit. Again, back it up before proceeding. First, create yourself a temporary template somewhere. Make sure only SuperAdmin can view it (it's in the Access settings ...


2

My recommendation would be to look at Cat2 and Low Seg2Cat (if you need to infer category data from a URL segment).


1

You need 3 templates(index, .landing, .detail) under services template group. index.html {if segment_3} {if segment_3 ~ "/^P\d+/"} {!-- Pagination state --} {embed="services/.landing"} {if:else} {embed="services/.detail"} {/if} {if:else} {embed="services/.landing"} {/if} .landing.html {exp:channel:entries channel="...


1

You would simply use {url_title} within your entries loop. {exp:channel:entries channel="videos" search:category="some_category"} <span>{title}<span> <a href="www.domain.com/videos/{url_title}"></a> {/exp:channel:entries} In light of new information... If the field is a relationship or Playa field you can access the URL title by ...


1

I see from your MX Title Control GitHub Issue that you've fixed your issue. Nice job mate! For any other readers the solution, which is a patch Joe submitted is listed here : https://github.com/joeczucha/mx-title-control/commit/9b0851146e3edc55442879affd3a6e4e9ff3df63


1

Pop open your config file: /system/expressionengine/config/config.php Look for a config option for 'permitted_uri_characters' - if you don't have it, you can add the line: $config['permitted_uri_chars'] = "a-z 0-9~%.:_\-"; This is what I use (and I think it's the default). But you should be able to just remove the period. If you use Structure (or ...


1

Because if you have a four digits segment, EECMS will try to filter the entries by the year of their creation. Try to set the dynamic parameter to no.


1

You need some RegEx for that. Using the new conditionals operators of EECMS version 2.9: {if event_photo} {exp:imgsizer:size src="{event_photo}" alt="{title}" width="300" height="450" class="displayBlock" quality="100"} {if:elseif url_title *= "keyword"} {exp:imgsizer:size src="{other_photo}" alt="{title}" width="300" height="450" class="...


1

With Justin pointing me in the right direction, I was able to figure out the PHP error for no object created (yet) {exp:channel:entries channel="products" limit="1" require_entry="yes" url_title=" {segment_2}"} {if no_results} <script type="text/javascript">location.href = "http://"+document.location.host+"/products/noresultsfound/...


1

EE is going to try to figure out what content to serve automatically unless you specify what content to grab. So when you have a URL that has a valid URL title like www.example.com/products/g3-product EE will recognize that the last segment is a valid URL title and show that content. When you have a non-valid url_title like www.example.com/products/...


1

If you know the specific URLs you want to be redirected, and want to redirect only those, you'd add this (before the standard EE Rewrites): RewriteRule ^url_title$ /index.php/landing/url_title [L] e.g., for multiple: RewriteRule ^url_title1$ /index.php/landing/url_title1 [L] RewriteRule ^url_title2$ /index.php/landing/url_title2 [L] And, finally, if ...


1

Sure - create an extension using the entry_submission_start hook and set your unique url_title there: ee()->load->helper('string); ee()->api_channel_entries->meta['url_title'] = random_string('alnum', 16);


1

You are comparing two variables where you compare one with quotes "" and one without. So that probably gives a mismatch because it compares the two variables as different types. So change this: {if segment_4=="{url_title}"} class="current"{/if} into: {if "{segment_4}"=="{url_title}"} class="current"{/if} probably also this would work (not tested). {if ...


1

You'll have to test this, but MX Title Control allows you to update all entries with a pattern. You could set the URL Title Pattern to {title} and try updating that way. As always, backup first before giving it a shot


1

If the series is the parent that you are linking to, you can just use the relationship's parent tag Then you could simply pull the url_title of the parent entry.


1

Get yourself a copy of ifelse by Croxton - this will evaluate your conditionals but only output the condition that is met. OOB EE conditionals evaluate everything and then displays what is met. so your code would look like this {exp:ifelse parse="inward"} {if "{url_title}" == "supports-for-adults"} {exp:stash:set_value name="support_type" ...


1

Since you don't have a default {if:else} case, try using simple conditionals compared against segment_1 (since that's setting your entry anyway). {if segment_1 == "supports-for-adults"} {exp:stash:set_value name="support_type" value="Adults"} {/if} {if segment_1 == "supports-for-children"} {exp:stash:set_value name="support_type" value="Children"} {/...


1

I would try changing the message tag to the following: {exp:channel:entries channel="message" limit="1" dynamic="no" url_title="{segment_3}" {gv_param_disable_default}} This should disable any "guessing" EE might be doing and force it to match the entry you're actually requesting.


Only top voted, non community-wiki answers of a minimum length are eligible