作者:亚艾元技术部
我们在为客户实现一个很复杂的统计功能时,用到了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,是可以同时起作用的。上面的日期筛选,就作用于了分类列表的节点统计上面。