Уважаемое сообщество, обращаюсь так как мои попытки решить проблему ни к чему не приводят уже сутки.
Создаю первый сайт на Drupal. Создал словарь таксономии:
Разделы:
Косметология
- Уход за кожей
- Маски для лица и волос
....
Красивое тело
- Секреты красоты
- Красивая грудь
....
...
Установил pathauto, у каждого термина есть свой url алиас, каждому термину принадлежит по одной статье.
Проблема в следующем - я хочу чтобы у нод был Url по типу: {термин таксономии}/{дочерный термин таксономии}/{алиас ноды}
В настройках pathauto не нашел подходящей переменой из токена, чтобы можно было это реализовать, поэтому сейчас алиас это просто название ноды в транслите
Пожалуйста подскажите каким образом это реализовать.
Кроме этого есть еще два вопроса, на которые очень хотелось бы узнать ответ:
1. По переходу на страницу термина таксономии не отображаются ноды, которые принадлежат дочерным терминам. Это можно решить без Views?
2. Каким модулем необходимо пользоваться чтобы создать многоязычность, построенную по принципу сайта - www.family-budget.su
Комментарии
1. Ждать http://drupal.org/node/691078 или использовать патч оттуда, чтобы появились нужные токены
2. Можно к примеру сохранять в ноде не конечный термин, а всю цепочку, тогда нода будет и там и там, но для этого нужен Hierarchical Select, а он не готов
3. i18n / Internationalization
Спасибо.
В 6-ой версии такая же ситуация ?) Или там можно реализовать иерархию?
Для отображения всех нод у дочерних терминов
taxonomy/term/N/all
N - id термина. либо выборочно вместо all - 1+2 и т.д
Создайте свой токен и не мучайтесь, что то типа [full-term-path-with-alias-for-node-raw].
Спасибо за идею, сейчас попробую.
Дело в том что друпал только изучаю и хочется делать всё "правильно", не ломаю логику и т.п. ) Думаю токены не противоречат логике системы
Вот на всякий http://www.drupal.ru/node/57673, если все таки будете делать свой токен для использования в pathauto, там есть одна не большая особенность в названии самого токена.
Теме уже больше года, но все равно напишу как я решил подобную проблему.
Итак, дано:
1) Словарь "Категории" со структурой:
- Пневматическое оружие (pnevmaticheskoe-orujie)
-- Винтовки (vintovki)
-- Пистолеты (pistoleti)
-- Пульки (pulki)
-- Прицелы (priceli)
- Травматическое оружие (travmaticheskoe-orujie)
-- Короткоствольное (korotkostvolnoe)
-- Бесствольное (besstvolnoe)
-- Патроны (patroni)
ну и так далее
2) Для материала типа "Статья" добавлено поле "Категория" с машинным именем "field_category" и типом хранения данных "Ссылка на термин". (При добавлении новой статьи соответственно необходимо будет указать к какой категории она принадлежит.)
Задача:
Создать трехуровневую структуру, то есть:
1) Для терминов словаря "Категории" добиться следующей структуры url:
а) http://www.site.ru/{Родительский термин}
Например: _http://www.site.ru/pnevmaticheskoe-orujie
б) http://www.site.ru/{Родительский термин}/{Дочерний термин}
Например: _http://www.site.ru/pnevmaticheskoe-orujie/vintovki
2) Для материалов типа "Статья", классифицированных по терминам словаря "Категория" добиться следующей структуры url: http://www.site.ru/{Родительский термин}/{Дочерний термин}/{Заголовок статьи}.html
Например: _http://www.site.ru/pnevmaticheskoe-orujie/vintovki/izh-60.html
Решение:
1) Потребуются следующие модули:
- Token (включает токены, необходим для работы Pathauto)
- Entity (дополнительные токены, состоит из Entity API и Entity tokens)
- Transliteration (транслитерация кириллических символов)
- Pathauto (собственно формирует url)
Как установить и настроить каждый из этих модулей писать не буду, ибо эту информацию найти достаточно просто.
2) В настройках Pathauto (вкладка "Шаблоны") необходимо с помощью токенов задать вид url для терминов таксономии и для материалов.
Для терминов таксономии прописываем: [term:parent]/[term:name]
Пример: _http://www.site.ru/pnevmaticheskoe-orujie/vintovki
[term:parent] = pnevmaticheskoe-orujie
[term:name] = vintovki
Для материалов решение тоже простое, но найти его труднее. Тут нам помогает модуль Entity (Entity API + Entity tokens), именно он добавляет дополнительные токены: [node:field-category:parent] и [node:field-category]. (Змаечание: "field-category" тут соответствует классификации материалов типа "Статья" с помощью поля "Категория" с машинным именем "field_category". Подчеркивание заменили на дефис.)
Таким образом для материалов прописываем: [node:field-category:parent]/[node:field-category]/[node:title].html
Пример: _http://www.site.ru/pnevmaticheskoe-orujie/vintovki/izh-60.html
[node:field-category:parent] = pnevmaticheskoe-orujie
[node:field-category] = vintovki
[node:title] = izh-60
Более сложная структура
В принципе, благодаря Entity можно реализовать и четырехуровневую структуру:
_http://www.site.ru/pnevmaticheskoe-orujie/vintovki/pruzinno-porshnevie/i...
Соответственно для терминов: [term:parent:parent]/[term:parent]/[term:name]
Для материалов: [node:field-category:parent:parent]/[node:field-category:parent]/[node:field-category]/[node:title].html
а у вас можно выбрать Пневматическое оружие и не выбирать под уровни ?
пи.сэ. есть ли для 7ки решение что бы родителя неактивным сделать для выбора...
Извиняюсь, если не совсем правильно понял вопрос, но попробую ответить.
Да, существует такой url: _http://www.site.ru/pnevmaticheskoe-orujie и в нем будут отображены все материалы классифицированные термином "Пневматическое оружие", но не будет материалов относящихся к терминам "Винтовки", "Пистолеты" и тд. Т.е. когда прописывается [term:parent]/[term:name] и оказывается что родительского термина [term:parent] нет, то выводится только /[term:name]
На счет того, чтобы сделать родительский термин неактивным - не могу сказать, с друпалом работаю чуть больше недели.