theming

Выбор цветовой схемы в настройках темы

Для добавления выбора цветовой схемы темы в друпале имеется модуль color. Но возможно также и создать собственные настройки в своей теме для выбора цветовой схемы, для которой в css файле заранее описаны стили. Самый простой вариант, в зависимости от настроек темы, добавлять тегу body уникальный для каждого цвета класс. Для этого нужно внести в тему следующие изменения:

Добавим в форму настроек темы селект с выбором цветовой схемы. Для этого создаем в папке с темой файл theme-settings.php и туда добавляем код:

Объединение нескольких шаблонов views в один

При темизации вьюса иногда бывает необходимость сделать вывод полей для нескольких вьюх одинаковый, при этом не затрагивая шаблоны для других представлений. К примеру для темизации вывода полей в шаблоне views-view-fields.tpl.php для списка необходимых представлений views нам предлагает использовать следующие шаблоны: views-view-fields--new-articles.tpl.php, views-view-fields--top-articles.tpl.php и views-view-fields--related-articles.tpl.php для представлений с соответствующими именами - new_articles, top_articles и related_articles.

Темизация формы комментариев в Drupal 7

Форма комментариев в друпале для большинства случаев избыточна. Посетителям сайта не нужны подсказки к форматам ввода, как и сама возможность выбирать какие то ему неизвестные форматы. Когда человек видит кучу полей , которые ему нужно заполнить, чтобы оставить комментарий, у него сразу же отпадает желание что-либо комментировать. Но по-умолчанию форма комментариев в друпал 7 не имеет ни своего шаблона, ни функции темизации. Чтобы это исправить, нужно в hook_theme() добавить темизацию формы комментариев.

Drupal 7 - Темизация файлового поля (file field)

По-умолчанию функция темизации файлового поля theme_file_link() выводит иконку файла, соответствующую mime типу файла, и ссылку на сам файл. Директория расположения иконок - modules/file/icons. Для добавления расширенной разметки вывода файлового поля нужно добавить следующий код в template.php файл используемой темы:

Добавление классов страницам материалов на основе терминов таксономии

Для темизации страниц материалов на основе прикрепленных терминов таксономии можно добавлять тегу body классы с именами терминов. Если же термины имеют русские(кириллические) символы, то можно делать классы на основе tid терминов. Классы будем добавлять в preprocess_html функции используемой темы. Для получения всех терминов ноды в Drupal 7 нужно написать вспомогательную функцию _MYTHEME_taxonomy_node_get_terms(). В Drupal 6 для выполнения данной задачи есть функция taxonomy_node_get_terms().

Использование html кода в заголовках меню

При добавлении нового пункта меню в название ссылки меню, которое будет анкором для ссылки, невозможно добавить html код. Это связано с тем, что текст при темизации пропускается через функцию chek_plain() и соответственно все теги будут выводиться как обычный текст. Но иногда нужно добавить дополнительную разметку для некоторых пунктов меню. Это бывает нужным, когда в качестве анкора нужно использовать изображение или анкор нужно обернуть дополнительно тегами. Для решения данной задачи нужно в файле template.php переопределить функцию темизации пункта меню theme_menu_link().