лучшее расположение для настроек тематики, связанных с функциями
Ниже приведен упрощенный сценарий организационной проблемы, с которой я столкнулся.
У меня есть сайт с одним модулем features
, который обрабатывает все мои типы контента. Мой модуль features
называется foo
, а моя подтема zen
называется bar
.
Одному из моих типов контента (например, event
) требуется специальный класс, поэтому у меня есть 2 варианта.
Добавьте класс с помощью foo.module
:
function foo_preprocess_node(&$vars) {
if ('event'==$vars['type']) {
$vars['classes_array'][] = "extra-class";
}
}
Или добавьте класс через template.php
из bar
тема:
function bar_preprocess_node(&$vars) {
if ('event'==$vars['type']) {
$vars['classes_array'][] = "extra-class";
}
}
Какое из двух мест является лучшим для настройки, связанной с этой темой? Без feature
не будет типа контента event
. Таким образом, создается впечатление, что размещение кода в файле модуля feature
вместе с типами контента является лучшим местом.
С другой стороны, этот класс css связан с темой, поэтому также кажется правильным разместить его в template.php
.
1 answers
Это всего лишь мое мнение...
Сам HTML-класс не связан с темой, он связан с модулем, определяющим элемент, на котором он размещен (если это имя класса, специфичное для функции, как указывает @barraponto в комментариях).
Стиль для элементов с этим классом является обязанностью темы.
Я бы предположил, что ваш код будет более уместен внутри функционального модуля. Если это не так, представьте, что произойдет, если вы измените темы...вы потеряете класс, который был в этом элементе, что означает, что он больше не может быть предназначен для стилизации.