Drupal: изменение цветовой схемы на основе узла - PullRequest
1 голос
/ 13 августа 2010

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

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

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

Я также думал об использовании CCK для добавления поля в тип содержимого моей страницы, а затем изменения цветасхема основана на этом настраиваемом поле.Это избавит от необходимости добавлять код в мой JavaScript для каждой новой страницы.

Или есть модуль для изменения цветовых схем на странице?

Ответы [ 4 ]

2 голосов
/ 14 августа 2010

Возможно, вы захотите взглянуть на модуль ThemeKey , который позволяет вам определить, какая тема используется на основе таких условий, как тип узла или путь.

1 голос
/ 13 августа 2010

Вы можете добавить некоторые CSS в функцию hook_preprocess_page на основе узла или других критериев и добавить CSS в шаблон страницы в качестве встроенных стилей.

Идея будет такая же, как в JavaScript, но у вас будет php, drupal и т. Д., Чтобы делать то, что вам нужно. Это должно быть намного проще, так как вы можете проверить тип узла или значение, установленное для объекта узла.

0 голосов
/ 14 августа 2010

Я бы предложил реализовать hook_preprocess_page в вашей теме и применить класс тела, основанный на отображаемом типе узла (или типах).Или, потенциально, поместите эти классы в препроцессоре узла для отображения.Так, например, если вы просматриваете узел 'project', введите:

<body class="... node-type-project">...

Тогда разработчик может ориентироваться на стили в зависимости от того, какие классы имеет тело.Это довольно легко автоматизировать, просто выполните "node-type-". strreplace("_", "-", $node->type), чтобы преобразовать любой тип будущего узла в класс, который затем будет передан либо в тело, либо в узел.

0 голосов
/ 14 августа 2010

Модуль CSS выполняет CSS для конкретных узлов, так что вы можете использовать его для настройки цветов.

...