试图用我自己的覆盖 View 的 views-exposed-form,但是它不会显示我的主题
Posted
技术标签:
【中文标题】试图用我自己的覆盖 View 的 views-exposed-form,但是它不会显示我的主题【英文标题】:Trying to override View's views-exposed-form with my own, however it will not show my theme 【发布时间】:2015-09-24 17:41:55 【问题描述】:我已经从视图模块的主题文件夹:views-exposed-form.tpl.php 复制到了主题/mytheme/views(也尝试过主题/mytheme)并重命名为views-exposed-filter--commerce_reports_products.tpl .php(和视图暴露过滤器--commerce-reports-products.tpl.php)。
刷新缓存并重新扫描视图中的模板后,它仍然不会显示。如果我编辑原始views-exposed-form.tpl.php,它将显示更改。
我从视图中的主题链接获得视图名称:views-view-field--commerce-reports-products.tpl.php
有谁知道我还需要做什么,或者为什么这不起作用?
【问题讨论】:
【参考方案1】:实际上,视图不会像为字段本身那样自动为公开的过滤器提供模板建议。所以你需要为此做更多的事情:
-
使用devel_themer 模块找出暴露过滤器的主题是什么函数/模板
为该主题函数/模板创建预处理器。然后,在您的预处理器中,您可以插入动态模板建议,这些建议将根据您想要的任何条件触发。您可以在自定义主题的 template.php 文件或自定义模块之一中创建此预处理器。此D.O. article 将指导您创建动态模板建议。
假设您将根据 URL 路径显示不同的视图。如果是这种情况,那么您可以在预处理器中使用 Drupal 的 arg() 函数来确定您当前正在显示的视图显示是什么,并使用该信息构建您的模板建议。
一旦你正确设置了你的建议,Drupal 会自动调用适当的模板,你有不同的基于路径的过滤器模板。
【讨论】:
所以我尝试了 1 号,开发模块向我显示名称应该是 views-exposed-form--commerce-reports-products--page.tpl.php 但这对我没有任何作用,第二个我尝试添加:function thevault_preprocess_views_exposed_form(&$variables) watchdog('notice', "test"); dpm($变量, "va"); 在 template.php 文件中,这对我也没有任何作用。以上是关于试图用我自己的覆盖 View 的 views-exposed-form,但是它不会显示我的主题的主要内容,如果未能解决你的问题,请参考以下文章