Добрый день,
Дано:
- словарь таксономии с терминами
- url-паттерн в pathauto для этих терминов
Процесс 1:
добавляю новый термин в словарь, создается синоним(url1) согласно паттерну. Все ОК.
Процесс 2:
редактирую этот термин. руками прописываю необходимый синоним(url2) для него. Термин открывается по url2, но url1 так же остался доступен. При этом во всех списках терминов используется именно url1, а не url2.
Вопрос: как сделать так, чтобы url2 был или единственным синонимом или же использовался как "главный" вместо url1?
Комментарии
Согласно чему?)
заходим на admin/config/search/path/settings и настраиваем Pathauto как нужно. хотя судя по описанию это и есть результат настроек Pathauto на создание новых синонимов при обновлении, и оставлении существующих синонимов функциональными, вообще ИМХО единственно правильный вариант этой настройки это "Ничего не делать. Оставлять старый синоним нетронутым."
Согласно шаблону Pathauto
Все перепробовалось. Ощущение, что синоним создаваемый по шаблону, никак не перекрыть через синоним, который задается ручками на странице редактирования.
При этом указанные настройки на странице выше работают, но только для синонимов указываемых при редактировании термина - либо не создаются, либо каждый раз новые и новые.
А может я просто неправильно работаю с Pathauto?
Нужно смотреть таблицу url_alias. Скорее всего при создании и редактировании pathauto просто добавляет новую запись в эту таблицу и не удаляет старые алиасы для термина. Тогда можно в своем модуле на хуке update термина удалять не нужные алиасы.
см http://api.drupal.org/api/drupal/modules--taxonomy--taxonomy.api.php/fun...
Правильно.
Поймите одну простую вещь:
В друпале есть только один правильный адрес node/nid, где nid - номер ноды.
Все остальное - синонимы. Они имеют право на существование. Вы даже можете сделать стотыщмильонов синонимов для одной страницы.
Но вот перефразирую ваш вопрос: "Я хочу, чтобы из статыщмильонов для первой ноды сотый синоним был единственно верным, а для второй ноды - стопицотый." А теперь скажите пожалуйста, как тупой компьютер возьмет и выберет ваш "этот хочу"? Первый попавшийся в базе данных (вы его называете url1) всегда будет выведен системой. Ваш, который вы хотите url2, тоже существует и работает, но он не первый, который найдет система. Удалите url1. А если он нужен, то создайте его заново, чтобы он стал таким же, но уже url3 (он запишется в БД после url2, а url2 станет первым по счету) - и будет вам щасЬе.
Как это реализовать - домашнее задание. Подсказка - чуть выше.