通过模块为管理主题的views列表提供模板文件

 作者:亚艾元技术部

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


Drupal版本: