Drupal, вопрос по настройке модулей - PullRequest
1 голос
/ 25 июня 2010

Я только начал создавать свои собственные модули для создания своих пользовательских функций, таких как hook_form_alter () и т.д.модули.Например, рассмотрим модуль View, я хочу изменить файл: "views-view.tpl.php" .. скажем, изменить имя класса этого div

...
<div class="view-filters">
      <?php print $exposed; ?>
    </div>

Как я могу сделатьэто без взлома кода?

спасибо

Ответы [ 3 ]

3 голосов
/ 25 июня 2010

Чтобы изменить класс CSS для .views-filters div, вам необходимо предоставить альтернативный views-view.tpl.php (или views-view--VIEWNAME.tpl.php или views-view--VIEWNAME--DISPLAYID.tpl.php). Это обычно и легко делается в теме . Но при необходимости это можно сделать и из модуля:

function YOURMODULE_registry_alter($theme_registry) {
  $originalpath = array_shift($theme_registry['TEMPLATE']['theme paths']);
  $modulepath = drupal_get_path('module', 'YOURMODULE') .'/themes');
  array_unshift($theme_registry['TEMPLATE']['theme paths'], $originalpath, $modulepath);
}

Это позволяет вам разместить перезаписывающий файл шаблона views-view.tpl.php в каталоге тем вашего модуля. Чтобы это работало, ваша функция должна иметь вес больше, чем у модуля, предоставляющего переопределенный шаблон. Таким образом, в файле установки вашего модуля (YOURMODULE.install) у вас будет что-то вроде

function YOURMODULE_install() {
   db_query("UPDATE {system} SET weight = 10 WHERE name = 'YOURMODULE'");
}
1 голос
/ 25 июня 2010

Редко, когда вам нужно отредактировать добавленный модуль или ядро ​​(если вы это подразумеваете под взломом).

Ответ - да!

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

1 голос
/ 25 июня 2010

Самый простой способ изменить используемый tpl для представления - это предоставить TPL для представления. Если щелкнуть «Тема: информация в представлении», в нем будут перечислены различные способы переопределения вывода всего представления до уровня поля.

...