I couldn't find a similar issue previously posted. Basically I use Taxonomy Menu to update all of my menu structures. However pathauto would not rename the menu paths. For example a menu path may look like this: /taxonomy_menu/3 instead of something meaningful like /blog/drupal.

CommentFileSizeAuthor
#10 taxonomy_menu_pathauto_0.patch.txt5.66 KBpelicani

Comments

greggles’s picture

Project: Pathauto » Taxonomy Menu
Version: 5.x-1.2 » 5.x-1.x-dev

This is something that the taxonomy menu module would have to implement. For example code see how this is done for the blog module in pathauto_user.inc

You just need to implement two hooks.

druvision’s picture

Status: Active » Needs review

As a temporary solution, I've written a module which uses custom_url_rewrite to change all taxonomy_menu URLs to the correct taxonomy/term/... form, and works with pathauto URLs.

This works great on the top nice_menus on my site, http://levavie.com

rewrite.module may be downloaded from here: http://drupal.org.il/sites/drupal.org.il/files/rewrite.tar.gz

Here is the code, adapted from the multidomain module:

<?php

if (!function_exists('custom_url_rewrite')) {

  function custom_url_rewrite($type, $alias, $real_path) {

    $path = ( $alias ) ? $alias : $real_path;
    $parts = explode('/', $path);
    if ($parts[0] == 'taxonomy_menu') {
      $path = 'taxonomy/term/'. end($parts);

      $result = db_query( "SELECT dst FROM {url_alias} WHERE src= '%s'", $path);
      while ($row = db_fetch_object($result)) {
        $path = $row->dst;
        break;
      }

    } 
    return $path;
  }      
}         
else {   
   drupal_set_message('error', t('The rewrite module has found a custom_url_rewrite function that is already defined. This conflicts with the module\'s operations, and as such the rewrite module will not work'));
}            

Enjoy,

Amnon
-
Professional: Drupal Israel | Drupal Development & Consulting | Effective Hosting Strategies | בניית אתרים
Personal: Hitech Dolphin: Regain Simple Joy :)

druvision’s picture

Status: Needs review » Needs work
giggler’s picture

How is this used after installing the module?

murz’s picture

I add some support for pathauto module in my patch Patch for remove vid or module page from url (with pathauto support), you can try to use it.

Jeroen Coumans’s picture

This works great, but its behaviour is slightly different from taxonomy menu: for terms with subterms, the children aren't displayed anymore.

murz’s picture

This is work on my drupal 5.2 versions with subterms good. You can look at it on my development site http://gr.shtrix.ru/articles/kimberly-clark/ripple
If you use menu block split module, it have an issue that can be solved width this patch.

fallsemo’s picture

subscribe.

q0rban’s picture

Sorry everyone, I don't know why I didn't see this before posting another request and patch for this feature. You can download the patch here.

pelicani’s picture

Status: Needs work » Needs review
StatusFileSize
new5.66 KB

The link above is to a duplicate issue.
A duplicate of this issue.
So if you follow the logic, as I did, you get in an infinite loop.

We are looking for taxonomy_menu to honor the pathauto settings.
I believe this patch should do this.
I have yet to test, but here it is.
*Taken from dupe issue listed as #9 above*

q0rban’s picture

Man, how did you break out of that loop!

;)

Sorry, I guess my link was a bit misleading as it linked to the issue that had the file attached, and not the actual file itself.
Here's the correct link.

summit’s picture

Subscribing, looking for an option to use depth to change the url build like taxonomy/term..
greetings,
Martijn

alliax’s picture

What a bad surprise to realize that taxonomy menu module is creating duplicate content on my site because I already use pathauto and this module doesn't care about aliases and uses it's own path. So I end up with two urls in google for the same page, how bad... What were the developpers thinking when they choose not to support pathauto? Incredible!
Please someone correct this, the issue has been going on for over a year, it looks like someone doesn't want this BUG to be fixed!

greggles’s picture

Title: Using pathauto with menu paths » Using path aliases with menu paths

It's not really a matter of "not supporting pathauto" it's a matter of not supporting path aliases in general (since pathauto is just a wrapper around the core path system).

But yes, I agree...bump?

summit’s picture

Hi,

Not wanting to hijack this thread, but asking for considering keeping also the present functionality
The great thing from taxonomy_menu is the fact that the hierarchy of the terms is showed in the url.
I build a very small function on this to be able to use different panels at different term level.

See www.wintersport-accommodaties.nl for a example of my use of the taxonomy_menu module.
http://www.wintersport-accommodaties.nl/land-info/Frankrijk
land-infoIs the taxonomy_menu /VID/TID panel
http://www.wintersport-accommodaties.nl/gebied-info/Espace-Killy
gebied-info is the taxonomy_menu /VID/TID/TID panel

Hopefully a solution can come up to use path aliases, but still be able to use the /VID/TID/TID etc.. functionality from taxonomy_menu which I now use.

Greetings, Martijn

asak’s picture

So... does any of this work?

EDIT: WORKS!

Thanks for this patch... it's a site saver ;)

(Patch from #10 / #11)

asak’s picture

Is there a special reason why the token [catpath-raw] isn't working?

I can see it in the Replacement patterns for the "catalog path" in pathauto, and would very much like it to work with taxonomy menu!

;)

Falldog’s picture

Subscribe

joyltd’s picture

Hi there...may I start with the common, "I'm a bit of a Newbie here - please don't attack me" approach!?

Got a stupid question:
pelicni, thanks for that patch - I reckon its going to be just what i need judging on what asak says.
So...and here's the stupid part, where do I place the patch!!
I've guessed that it goes in the taxonomy_menu.module file, but do i just paste the whole lot of the patch at the bottom of the taxonomy_menu.module file?

ps: last time I tried to patch a module I managed to break it!

Thanks in advance, this documentation at drupal is some of the best I've come across - and I love my new drupal buddies! Your expertise is much appreciated.

summit’s picture

Hi Joy,

Welcome!
For your question. No you need to patch your taxonomy_menu.module using patching software.
If it is a small patch I prefer looking up the old code (the one with - before it), and paste the new code (the one with + before it).
Off course you break the module keeping the + signs there. They are not php-commands. You have to erase those.

Greetings,
Martijn

stoltoguzzi’s picture

Title: Using path aliases with menu paths » for D6?

is this patch for D6 as well!

greggles’s picture

Title: for D6? » Using path aliases with menu paths
joyltd’s picture

Thanks Summit.

I've found it! Thanks - in true newbie fashion I was searching under the wrong criteria yesterday...now about to warm up the command line in Terminal!

All the best

PS: to answer my own question some what, I found an excellent video tutorial here - yeah its to do with testing patches under Drupal Head - but all the info i need is there.

doofaye’s picture

can someone let me know if patch in #9 #10 solves problems with duplicate content in website?
the patch gives ability to alias taxonomy menu to whatever you want but the system paths are still different to taxonomy/term/

basically after applying patch #9,10 does this solve duplicate content issue???????

fumbling’s picture

Looks like you were replying on whether there was a patch for D6, but don't see a response. In any event, any plans for a D6 patch?

indytechcook’s picture

Please respond if the patch works and I will create a release for it

indytechcook’s picture

I'm leaning towards committing #234513: Path Auto Support in a new D5 Dev version. If anyone that uses the patch on this page is object to that then please respond by 2/5. Note that the other patch includes functionality to hid the vocabulary.

indytechcook’s picture

Status: Needs review » Fixed

This is part of the latest DEV. Please test. Implemented in conjunction with #234513: Path Auto Support

jstirnaman’s picture

When I tried to run the Pathauto batch operation for taxonomy_menu, it couldn't find taxonomy_vocabulary_load() which is called at line 99 in taxonomy_menu_pathauto.inc. I'm still running Drupal 5.11. I made the following change and it's working fine:

      $vid = $category->vid;
      //$vocabulary = taxonomy_vocabulary_load($vid);
      //Replace above function call with this one per http://drupal.org/node/333661. Not sure why the difference? -- jstirnaman
      $vocabulary = taxonomy_get_vocabulary($vid); 
greggles’s picture

Status: Fixed » Active

http://api.drupal.org/api/function/taxonomy_vocabulary_load is a 6.x+ function. The 5.x version of the code will need to use taxonomy_get_vocabulary.

indytechcook’s picture

I will update this tonight and a new DEV package will be release overnight.

jstirnaman’s picture

After a few more minutes, I realized it's not quite right. Maybe I'm doing something wrong, but pathauto is adding a preceding slash to taxonomy_menu terms when there is no module page value set. The result is that the menu ignores those menu items. If I remove the preceding slash in URL Aliases the links display and work properly. I don't know that this is a proper solution, but I made the following hack to taxonomy_menu_pathauto.inc and the paths came out properly:

 $path =  variable_get('taxonomy_menu_display_page', 'category') . $category->vid;     //Removed . '/' . -- jstirnaman
indytechcook’s picture

Status: Active » Fixed

Changes have been made to latest Dev package. Thanks jstirnman.

ahmaddani’s picture

This comment is reply from #15

Please explain me how you do that. I think your site has prety taxonomy hierarchy.

ahmaddani’s picture

Version: 5.x-1.x-dev » 5.x-1.04
Assigned: Unassigned » ahmaddani
Status: Fixed » Active

Please explain me how you do that. I think your site has prety taxonomy hierarchy

summit’s picture

Guys,
This custom_url_rewrite is working on D5. How to get it working in D6 please?

<?php
function custom_url_rewrite($type, $path, $original) {
# vocabulary = 5
 $vid = 5 ;
 $newpath = $path;
 $depth = 0;

 // This path was already aliased, skip rewriting it
 if ($path != $original) {
  return $path;
 }

// Rewrite to custom url:
  elseif ($type == 'alias') {
  if (substr($path, 0, strlen("taxonomy_menu/")) == "taxonomy_menu/") {
  $termid = substr($path, strlen("taxonomy_menu/"));
 
 
  $tids = explode("/", $path);
   if (is_numeric($tids[4])) {
     $term = taxonomy_get_term($tids[4]);
     $newpath = "city-info/". $term->name."/";
   }
   elseif (is_numeric($tids[3]))  {
     $term = taxonomy_get_term($tids[3]);
     $newpath = "region-info/". $term->name."/";
   }
   elseif (is_numeric($tids[2]))  {
     $term = taxonomy_get_term($tids[2]);
     $newpath = "country-info/". $term->name."/";
   }   
   
  }
 }
// Nothing to do:
 return $newpath;
}
?>
indytechcook’s picture

Assigned: ahmaddani » Unassigned
Status: Active » Fixed

Setting backed to fixed since issue is resolved.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.