Как применить разные темы для разных страниц сайта?

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

Аватар пользователя ameth ameth 2 июля 2009 в 15:03

Здравствуйте.
Такой вопрос.

Существует тема оформления фиксированной ширины (т.е. верстка не резиновая), трехколоночная.

Задача — на некоторых страницах сайта выводить трехколоночную верстку (т.е. тему, как она есть), а на остальных - двухколоночную (без правой колонки).

Убрать блоки из правой колонки не трудно, но необходимо "растянуть" центральный блок так, чтобы он занял место, освободившееся от третьей колонки.

Как вариант решения вижу создание идентичной темы (фиксированной ширины) но уже с изначально двухколоночной версткой и измененной шириной контент-блока. Но тогда возникает вопрос: как заставить Drupal для одних страниц использовать одну тему оформления, а для других - другую?

В идеале, конечно же, надо создать нормальную тему с "резиновой" версткой, но поскольку они делаются не людьми, а чудо-программой генератором шаблонов, то увы, внести какие то изменения без переработки темы не выйдет.

Комментарии

Аватар пользователя kulikovd kulikovd 2 июля 2009 в 23:21

Правильного ответа может и не дам, но что родилось в голове - изложу.

у любой ноды в друпале системный урл адрес /node/123

Чтобы узнать параметры адресной строки есть функция arg()

например если вызвать arg(0), то она вернет "node"

если вызвать arg(1), то она вернет "123" и т.д.

Идея заключается в том, что если вы заранее знаете, для каких страниц нужна одна верстка, а для остальных например другая, то можно в шаблоне устроить элементарную проверку.

Аватар пользователя DmitryDrozdik DmitryDrozdik 2 июля 2009 в 23:31

Что за бред вы говорите. Для того чтоб на некоторых страницах было 3 колонки, а на некоторых 2 всего лишь необходимо правильно сверстать шаблон, и в нужном месте поставить показывать колонку или нет, делается это элементарно(к примеру возьмите любую тему и посмотрите как она устроена.) Для того чтоб показывать на странице sitename/home например 3 колонки, то выставте в блоках показывать необходимые данные в колонке, для того чтоб на странице sitename/contact(к примеру) не показывать например правую колонку пропишите в настройках блока показывать на таких-то страницах или не показывать на таких-то страницах..
Если хотите менять модулем то модуль sections вам в помощь.