People who code: we want your input. Take the Survey
11

Note: The Title Master add-on should take care of all of this, but if you can't use that for whatever reason, here is the procedure for the hack: Update 10/10/14: Title Master appears to be abandonware at this point. This works as of EE 2.9 Always back up your files and database before hacking the core! Native EE Titles & URL Titles /system/...


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 do a bulk update of URL Titles with SQL like: UPDATE exp_channel_titles SET url_title=REPLACE( LOWER(title) , ' ', '-') WHERE channel_id=1 You can see URL Title is being derived from Title replacing space with dash and changing in lower case. You can have channel_id and any other condition in WHERE according to your preference. You can have second ...


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

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


3

I always tend to identify the product details page as simply /details/ to avoid this problem, but to achieve what you're after, the following should work (in theory). Note that your example doesn't take into consideration pagination which would change the last segment. Maybe the client doesn't want it, but may once they get bulk products in there. The ...


3

You are using {permalink=enewsletter/article} in your code. http://ellislab.com/expressionengine/user-guide/modules/channel/channel_entries.html#permalink That will return an id What you want is {title_permalink="enewsletter/article"}


3

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


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

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 ...


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

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

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


2

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


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 ...


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

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

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 ...


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