Я создал модуль, который должен отображать контент определенного типа. Отображение довольно сложное, и чтобы иметь возможность отключить его и сгруппировать все вместе, я создал для этого модуль.
Но в конце он должен просто переопределить обычный файл node.tpl.php с помощью специального файла .tpl.php. Когда я помещаю файл в папку с шаблонами, он берется, и страницы отображаются в соответствии с назначением, но я не могу заставить его работать, когда файл находится в папке модуля.
Я прочитал много вещей о регистре файла .tpl и препроцесса, но ничего, что объединяло бы нужные мне части.
Это то, что я имею до сих пор
function apps_theme($existing, $type, $theme, $path) {
$items = array(
'node--app' => array(
'template' => drupal_get_path('module', 'app') . '/node--app',
'variables' => array('node' => (object)array())
)
);
return $items;
}
function apps_preprocess_node(&$vars) {
$variables['theme_hook_suggestions'][] = 'node__app';
}
Ответы:
В вашем вопросе неясно, размещаете ли вы шаблон в
sites/all/custom/modules
или вsites/all/custom/modules/the_name_of_mymodule
. Это должно быть позже.Однако, если вы:
admin/appearance
путь для принудительного обновления реестра тем.... но все же без кубиков, вы всегда можете указать в своей реализации hook_theme ()
theme_path
ключ:источник
node--app
. Лучшее имя было быnode_app
, и вы бы вызвали функцию создания тем, выполнив.theme('node_app', [$vars]);
Я не уверен, чтоtheme('node--app')
это то, что я когда-либо видел, и почти уверен, что это не будет работать.'node__app'
(двойное подчеркивание) не'node_app'
Думал, что выложу найденное решение:
источник
Я получил это, работая следующим образом:
http://www.metachunk.com/blog/adding-module-path-drupal-7-theme-registry
источник