Plu*_*rge 4 drupal drupal-6 drupal-theming
我正在尝试实现模式和模板建议,但它不起作用.
这是hook_theme()我的模式的实现 :
$theme['nm_home_page_zone'] = array(
'pattern' => 'nm_home_page_zone__',
'arguments' => array('nodes_content' => array(), 'nodes' => array()),
'template' => 'zone-contenu',
),
Run Code Online (Sandbox Code Playgroud)
我theme()用以下代码调用:
$output .= theme(array('nm_home_page_zone__'.$rowZone->model.'_'.$rowZone->weight, 'nm_home_page_zone__'.$rowZone->model, 'nm_home_page_zone'), array(), array());
Run Code Online (Sandbox Code Playgroud)
我在我的主题和模块中有2个模板文件(zone-contenu.tpl.php和zone-contenu - one.tpl.php)(只是为了确定).
在我的情况下,模式和模板建议应该使用zone-contenu - one.tpl.php,但它不起作用.
我在这里缺少什么?
我得到了答案(虽然这很简单):模板文件必须命名为主题钩子(键)
所以更改在hook_theme中:
$theme['zone-contenu'] = array(
'pattern' => 'zone-contenu__',
'arguments' => array('nodes_content' => array(), 'nodes' => array()),
'template' => 'zone-contenu',
),
Run Code Online (Sandbox Code Playgroud)
就是这样!你很高兴玩模式:)
请记住,你可以使用带有theme()的动态模板,其中包含以下字符串:
theme('zone_contenu__fun__here', $hello);
Run Code Online (Sandbox Code Playgroud)
在这个例子中,Drupal将自动尝试查找zone-contenu - fun - here.tpl.php然后是zone-contenu - fun.tpl.php,最后是zone-contenu.php
如果你想控制建议的顺序,给出如上所示的数组(FIFO):
$output .= theme(array('nm_home_page_zone__'.$rowZone->model.'_'.$rowZone->weight, 'nm_home_page_zone__'.$rowZone->model, 'nm_home_page_zone'), array(), array());
Run Code Online (Sandbox Code Playgroud)
希望这有帮助!