Итак, моя первая запись на drupal.ru Надеюсь кому-нибудь будет полезно
Проблема:
Ссылки на пункты меню, созданные taxonomy_menu, имеют вид:
categories/1/2/3
technology/1/2/3
несмотря на установленный pathauto.
Решение:
Открываем файл taxonomy_menu.inc в sites/all/modules/taxonomy_menu/
Ищем в нем следующие строчки:
foreach ($tree as $term) {
if ($term->depth <= $old_depth) {
$slashes_to_remove = $old_depth - $term->depth + 1;
for ($i = 0; $i < $slashes_to_remove; $i++) {
$old_path = substr($old_path, 0, strrpos($old_path, '/'));
}
}
$path = $old_path .'/'. $term->tid;
$old_depth = $term->depth;
$old_path = $path;
Меняем их на:
foreach ($tree as $term) {
if ($term->depth <= $old_depth) {
$slashes_to_remove = $old_depth - $term->depth + 1;
for ($i = 0; $i < $slashes_to_remove; $i++) {
$old_path = substr($old_path, 0, strrpos($old_path, '/'));
}
}
$path = $old_path .'/'. $term->tid;
if($alias = drupal_lookup_path('alias','taxonomy/term/' . $term->tid)) path_set_alias($path, $alias);
$old_depth = $term->depth;
$old_path = $path;
Решение нашел здесь
Комментарии
да.. только ссылку на сам словарь все таки прийдется ручками в настройки Path дописать
Именно над этим вчера колдовал. Спасибо за решение. Буду пробовать.
Как получится - пишите, интересно узнать что получилось
Как ни странно, я тоже вчера над этим работал. Мне показалось логичнее снести нафиг их упоминания о словаре (это чуть выше вашего кода в модуле):
$path = variable_get('taxonomy_menu_display_page', 'category'); //стало
После этого, в админке можно задать вместо стандартного 'category' обычное 'taxonomy/term' и получить в меню все ссылки уже с алиасами (система меню подгружает алиасы автоматически).
Если делать так как советует ТС - то тогда почему-то в переменной $terms (node.tpl.php) пропадают алиасы.
А если как neochief - то все пункты сливаються, нет разделения на словари.
Вообщем решение все еще ищеться, помогите кто знает как исправить такой досадный баг.
Все то оно так но вот работает только с одноуровневым вложением!
Если есть вложение второго уровня то получаем адрес
taxonomy/term/1/2
Может есть решение и для этого?
Хотя я в шестом друпале тестировал.