0

我创建了一个节点队列并将默认部分中的“描述/标签”设置为“娱乐亮点”,当我单击查看主题时:信息它有一个模板建议用于样式输出

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-highlights.tpl.php 制作一个模板,它不会将它绑定到特定的节点队列(基于 dev 和当我上线时)节点队列 ID 可能已更改)但是当我在文件系统上创建文件并单击重新扫描时,它不会突出显示模板名称,表明 drupal 没有找到它。

如果我创建一个名为views-view-list--nodequeue-91.tpl.php 的文件,那么这很好,如果我将“描述/标签”更改为简单的“娱乐”并创建一个views-view-list--entertainment .tpl.php 文件,然后这也被 drupal 拾取,因此问题看起来与“描述/标签”名称中的空格有关

有谁知道我需要更新什么才能使模板正常工作。我意识到这可能是一个核心调整,但如果它能够处理这样的情况,那将非常有帮助。

4

1 回答 1

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));

我意识到这是一项核心修正案,理想情况下我不会在这里进行此更改。

于 2013-05-20T11:32:27.977 回答