Drupal6模板文件无法识别

时间:2013-05-17 15:44:34

标签: drupal drupal-6 drupal-theming

我创建了一个nodequeue并将Defaults部分中的“Description / Tag”设置为“Entertainment Highlights”,当我点击查看Theme:Information时,它有一个模板建议的样式输出

views-view-list.tpl.php
views-view-list--nodequeue-91.tpl.php
views-view-list--entertainment-highlights.tpl.php
views-view-list--default.tpl.php
views-view-list--nodequeue-91--default.tpl.php

这看起来很棒,因为我希望在我的主题中为views-view-list - entertainment-highlight.tpl.php创建一个模板,它不会将它绑定到特定的nodequeue(在dev上构建,当我来的时候)实际上,nodequeue ID可能已经改变了)但是当我在文件系统上创建文件并单击重新扫描时,它没有突出显示drupal没有找到它的模板名称。

如果我创建一个名为views-view-list - nodequeue-91.tpl.php的文件,那么这个工作正常,如果我将“描述/标签”更改为“娱乐”并创建一个视图 - 视图列表--entertainment.tpl.php文件然后这也被drupal拾取,所以问题看起来像是在“描述/标签”名称中间隔开来

有没有人有任何想法我需要更新以使模板工作。我意识到它可能是一个核心的调整,但如果它可以处理这样的案例将会非常有用。

1 个答案:

答案 0 :(得分:0)

我发现这与Drupal6没有直接关系,而是与我们正在使用的OpenPublish变体有关。

原来在/sites/modules/views/themes/theme.inc中有一个名为_views_theme_functions()的函数(不要与/includes/theme.inc混淆),它使用以下内容来确定名称。主题模板

$themes[] = $hook . '__' . preg_replace('/[^a-z0-9]/', '-', strtolower($view->tag));

但是如果你检查$ themes,你可以看到所有非a-z0-9字符都被替换为下划线而不是破折号所以需要将其修改为

$themes[] = $hook . '__' . preg_replace('/[^a-z0-9]/', '_', strtolower($view->tag));

我意识到这是一个核心修正案,理想情况下我不会在这里做出改变。