Eu criei um módulo que deve ser capaz de exibir o conteúdo de um determinado tipo de conteúdo. A exibição é meio complexa e para poder desligá-lo e agrupar tudo, criei um módulo para isso.
Mas no final, ele deve substituir o node.tpl.php normal por um arquivo .tpl.php personalizado. Quando coloco o arquivo na minha pasta de modelo, ele é selecionado e as páginas são exibidas conforme o esperado, mas não consigo fazê-lo funcionar quando o arquivo está na pasta do módulo.
Eu li muitas coisas sobre regsiter o arquivo .tpl e o pré-processo, mas nada que combine as peças necessárias.
Isto é o que eu tenho até agora
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';
}
Respostas:
Não está claro na sua pergunta se você está colocando seu modelo dentro
sites/all/custom/modules
ou dentrosites/all/custom/modules/the_name_of_mymodule
. Precisa ser o mais tarde.No entanto, se você:
admin/appearance
caminho para forçar uma atualização do registro de tema.... mas ainda sem dados, você sempre pode especificar em sua implementação hook_theme () a
theme_path
chave:fonte
node--app
. Um nome melhor serianode_app
, e você chamaria a função de tema fazendotheme('node_app', [$vars]);
Não sei setheme('node--app')
é algo que já vi e quase certo de que não funcionaria.'node__app'
(sublinhado duplo) não #'node_app'
Pensei em publicar a solução que encontrei:
fonte
Comecei a trabalhar seguindo este procedimento:
http://www.metachunk.com/blog/adding-module-path-drupal-7-theme-registry
fonte