Как сделать разные "префиксы" в адресах разделов сайта

Прислано: Anton L. Safin

сб, 20/03/2010 - 10:03


Вопрос в следующем. Есть сайт, который фактически представляет из себя несколько больших разделов. Нужно, чтобы у каждого раздела был свой адрес, своя тема оформления и breadcrumb. Фактически, это несколько сайтов.

Например:

Раздел "Магазин"

Если бы эти разделы располагались на разных доменных именах, проблем бы не было - благо, есть модуль  domain. Но дело в том, что они должны располагаться именно в "подпапках". Еще одна тонкость - один и тот же материал может отображаться на разных сайтах - соответственно, с различными адресами и в разных темах.

Кому не охота читать, как это сейчас реализовано, может сразу переходить к последнему абзацу.

Итак, как все это сделано сейчас:

Есть словарик таксономии под названием "Сайты", использующийся практически для всех типов материалов. Для привязки различных тем оформления используется  themekey. Остается вопрос с одной страницей, привязанной к различным разделам. Ну да ладно. Самое интересное начинается, когда я пытаюсь разрулить ситуацию с адресами.  PathAuto в теории позволяет сделать то, что мне нужно, но при попытке использовать токен [term-raw] подставляется, соответственно, транслитерация - например, magazin вместо shop. Несколько дуболомно, но это решается добавлением в файлик i18n-ascii.txt в папке модуля patchauto строк вида Магазин=shop.

Едем дальше.

С Breadcrumbs удалось справится при помощи модулей  menu_breadcrumb и  taxonomy_breadcrumb.

Таким образом, единственный оставшийся непонятным момент связан, как ни странно, с Views. Создал страницу, которая принимает в качестве аргумента термин таксономии. Все работает, однако Views не допускает использования маски в качестве первого аргумента: то есть не получается задать маску вида %/content/% для адреса shop/content/1. А вот наоборот - content/%/% - запросто. Как победить сие, пока не решил. Есть идеи?

Новое на сайте

Ссылки партнёров