Как изменить URI термина в зависимости от типа контента
У меня есть 2 типа контента (фотографии, видео), и оба имеют ссылку на таксономию "тема". Термины темы отображаются на страницах отображения узлов, и я хотел бы сослаться на "/фото/%" для фотографий и "/видео/%" для видео вместо "/таксономия/термин/%" по умолчанию.
Как я могу это сделать?
4 answers
Эта проблема сложна, если реализована способом, предложенным в вопросе. С pathauto это становится проще, если вы используете два отдельных словаря: video_topic и photo_topic. Затем у video_topic могут быть пути pathauto, которые начинаются с видео/%, а у фотографий могут быть пути, которые начинаются с фото/%.
Учтите: если вы используете один словарь, то при нажатии на ссылку видео/% будут показаны как видео, так и фотографии. То же самое с фотографией/%. Если это то, чего вы хотите, то, возможно, путь, который вы следует использовать должно быть тема/% вместо видео/% и фото/%. Если вы действительно хотите, чтобы результаты отображались отдельно, то, безусловно, следует использовать отдельные словари.
Если вы хотите синхронизировать словари видео/% и фото/%, вы можете добавлять тему видео в код каждый раз, когда нажимается тема фотографии, и наоборот. Однако важно учитывать, как вы хотите, чтобы ваша система вела себя, поскольку это будет определять решение и реализацию, которые вы захотите выбирать.
В моем ответе будут использоваться два модуля, которые являются инструментами, а не решениями. Вы получите гибкость, позволяющую делать с путями практически все, что захотите, за счет необходимости понимать, как работают модули. Я приведу краткое описание требуемой конфигурации ниже, здесь есть полезные видео, и я постараюсь обновить ответ, если вы застряли в каком-либо конкретном месте.
- Установите и включите Менеджер страниц , а также Панели
- Перейдите в раздел администратор/структура/страницы/добавить и добавьте страницу с путем видео/%video_term
- На следующей странице нажмите "Изменить" и выберите "Термин таксономии: идентификатор", затем выберите идентификатор или имя, как вам подходит.
- Выберите любой макет и просто двигайтесь дальше, пока не сможете нажать "Готово", чтобы завершить работу мастера. Теперь заполните свой макет любым контентом, который вы пожелаете.
- Повторите шаги 1-4 для вашей страницы "фото".
Поскольку Drupal не позволяет вам использовать переменную в на первом уровне вы не можете использовать /%content_type/% термин, поэтому вместо этого мы создаем две страницы. Лично я бы предпочел сделать что-то вроде /products/%content_type/%term, так как одна страница снизит вашу нагрузку на обслуживание в будущем. Это, однако, потребует понимания "Вариантов", чтобы вместить две страницы в одну. Видео объяснит это.
Я почти уверен, что вы можете настроить это с помощью Pathauto. Я точно знаю, что вы можете задавать собственные пути таксономии. Я только что сделал это для своего коммерческого сайта Drupal.
Http://drupal.org/project/pathauto
Просто убедитесь, что при установке шаблона он не перекрывается с шаблоном, который вы установили для другого типа контента.
В Drupal 6 я сделал это с помощью модуля pathauto, и быстрый взгляд на код Drupal 7 предполагает, что он работает и там. В D6 вы переходите к admin/build/path/pathauto
и выбираете Taxonomy term paths
и меняете его на то, что хотите, чтобы что-то подобное работало в D7.