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

Главные вкладки

Аватар пользователя Anton L. Safin Anton L. Safin 20 марта 2010 в 13:03

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

Например:

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

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

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

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

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

Едем дальше.

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

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