我正在尝试实施模式和模板建议,但是它不起作用。
这是使用我的模式的hook_theme()的实现:

$theme['nm_home_page_zone'] = array(
  'pattern' => 'nm_home_page_zone__',
  'arguments' => array('nodes_content' => array(), 'nodes' => array()),
  'template' => 'zone-contenu',
),


然后使用以下代码调用theme()

$output .= theme(array('nm_home_page_zone__'.$rowZone->model.'_'.$rowZone->weight, 'nm_home_page_zone__'.$rowZone->model, 'nm_home_page_zone'), array(), array());


我的主题和模块中有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',
),



就是这样!你很好玩模式:)
请记住,您可以将动态模板与theme()一起使用,如下所示:

theme('zone_contenu__fun__here', $hello);


在此示例中,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());


希望对您有所帮助!

09-25 21:10