作者:亚艾元技术部
我们在为客户实现一个很复杂的统计功能时,用到了views field view模块,通过多层的嵌套,使用views实现了按照分类统计节点数量、浏览量,还能基于日期筛选查找。
我们在解决问题的时候,遇到了一个问题,由于views创建的页面位于admin的管理界面,我们想给views指定一个主题模板,这个时候,由于使用的是核心主题,所以不能直接将模板文件放到主题的templates目录下面。
经过检查,我们可以这样实现。
Module文件中增加了以下代码:
function mycustom_theme() { $theme['views_view__statistic_helper'] = [ 'base hook' => 'views_view', ]; return $theme; }
创建一个temlates目录,里面放上我们的模板文件:
views-view--statistic-helper.html.twig
注意下划线和连字符之间的转换。
<div{{ attributes.addClass(classes) }}> {{ title_prefix }} {{ title }} {{ title_suffix }} {% if header %} <header> {{ header }} </header> {% endif %} {{ attachment_before }} {% if rows -%} {{ rows }} {% elseif empty -%} {{ empty }} {% endif %} {{ pager }} {{ attachment_after }} {{ more }} {% if footer %} <footer> {{ footer }} </footer> {% endif %} {{ feed_icons }} </div>
模板文件中,我删除了exposed对应代码:
{{ exposed }}
这样通过views field view嵌套进去的数据就干净了很多,同时,多个views之间的同名exposed filter,是可以同时起作用的。上面的日期筛选,就作用于了分类列表的节点统计上面。