лучшее расположение для настроек тематики, связанных с функциями


Ниже приведен упрощенный сценарий организационной проблемы, с которой я столкнулся.

У меня есть сайт с одним модулем 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.

Author: cherouvim, 2012-06-28

1 answers

Это всего лишь мое мнение...

Сам HTML-класс не связан с темой, он связан с модулем, определяющим элемент, на котором он размещен (если это имя класса, специфичное для функции, как указывает @barraponto в комментариях).

Стиль для элементов с этим классом является обязанностью темы.

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

 2
Author: Clive, 2012-06-28 20:21:09