Это не очень целевой вопрос, но я не могу найти хорошую информацию по этому вопросу.
Когда считается правильной практикой помещать код в файл template.php, а когда внедрять его в модуль?
Я имею в виду в моем текущем примере мне нужно вызвать hook_preprocess_node и внутри выполнить drupal_get_form и визуализировать эту форму. Я поместил свою логику в template.php.
Это верно? Если нет, можете ли вы дать мне краткий список DOS и DONTS по этой проблеме?
Ответы:
Есть две вещи, которые я стараюсь учитывать при принятии этого решения.
Это функциональная или чисто визуальная функция? Функциональные компоненты входят в модули. Чисто визуальные идут в тему.
Что произойдет, если я изменю или радикально изменит тему в будущем и / или разрешу использовать несколько тем для моего сайта? Если вы не хотите копировать функцию, она должна быть в модуле.
Drupal позволяет легко переплетать контент, бизнес-логику и презентацию. Для долгосрочной поддержки сайта, вам нужно быть осторожным при реализации.
Хорошее эмпирическое правило состоит в том , что тема не должно знать об идентификаторах (
$nid
,$uid
,$tid
, и т.д.) для чего - либо, и должна только знать имена компьютеров , чтобы изменить внешний вид.В вашем случае добавление формы к узлу является функциональным изменением, и я бы действительно поместил это в модуль.
источник