This is a small patch for function drupal_get_path_alias in bootstrap.inc.
This allows a path to have a non-cyclic chain of aliases, and enables the path alias finder to walk up the chain to the top level alias.
For example:
taxonomy_menu/4/1/50 | topics/whats_new/events
taxonomy/term/50 | taxonomy_menu/4/1/50
Now I can have all references to taxonomy/term/50 automatically point to the top-level alias, topics/whats_new/events.
I am also posting a patch against Pathauto module which creates these multi-links automatically for categories when taxonomy_menu is present. (I will add followup with a link to that patch).
Note that the inverse case (alias => path) is *not* necessary (in fact it would break the intention of this patch...
---
There are several other ways to accomplish this; all of which are more involved. YMMV. I won't be insulted if this patch is rejected. :)
An alternative solution would be to allow the destination column to accept non-unique entries. This would also require some sort of weighting otherwise the final resolution would be indefinate.
A second alternative would be to have drupal generate taxonomy links in a more general manner, so that the taxonomy_menu module could change all the taxonomy links via the proper hooks.
A *third* alternative would be to fix the menu system so that it does not require nested paths in the hiearchy, this way taxonomy_menu would not need to create its own paths.
| Comment | File | Size | Author |
|---|---|---|---|
| #1 | includes_bootstrap.inc_1.patch | 739 bytes | aws |
| includes_bootstrap.inc_0.patch | 739 bytes | aws |
Comments
Comment #1
aws commentedSorry, I ran that diff in the wrong direction... use this patch instead.
Comment #2
aws commentedHere is the associated patch to pathauto:
http://drupal.org/node/21241
Comment #3
mikeryan+1
I'd like to see the chain followed as well, so when an alias is replaced a "forwarding address" can be left.
Comment #4
jvandyk commentedThis seems to have made it into 4.6 already.
Comment #5
jvandyk commentedOr not. My eyes seem to be crossed from too much "patch bingo".
This has been rewritten in 4.7, however.
Comment #6
magico commentedWill not be applied to 4.6 because it's a feature.