2

我创建了一个视图(让我们称之为my_view)。

在主题:信息部分中,如果我已经注意到建议的模板名称之一(views-view--my-view--default.tpl.php(或接近该名称)),并使用该名称创建了我自己的模板文件。

这一切都很好,当我访问主题注册表时,我可以看到那里有一个带有模板名称的钩子 ( views-view--my-view--default)。然而,这个钩子的类型字段是“引擎”而不是“模块”。我认为这是为了查看视图本身的主题?

我想实现hook_registry_alter修改这个主题钩子(以及以相同方式创建的其他主题),但我不知道如何检索这些钩子的列表。

我尝试使用 array_keys( views_theme()) 来取回所有视图挂钩,但此列表不包含由覆盖模板文件创建的挂钩。它只包含默认的钩子,如 views_views_field 等

有没有办法恢复以这种方式覆盖的视图主题挂钩列表?

4

1 回答 1

1

我在这里回答,因为您的最后一条评论似乎表明您不再对追求您的初始方法感兴趣,无论如何 600 个字符是不够的。

实现您想要的另一种方法可能是使用来自其父主题的子主题的“继承”。换句话说,您可以将您的用户主题定义为admin 主题的子主题。

以这种方式,主题引擎将搜索模板 - 在用户通过用户主题查看站点的情况下- 首先在用户主题文件夹中,然后在管理主题文件夹中,然后在模块目录中。

例如,这与zen用于让您使用入门工具包创建主题的机制相同。

希望这可以帮助!

于 2009-11-26T23:13:03.150 回答