看到群里有人再问有关views模板覆写的问题,那我就分享一个我对views模板覆写的理解,希望能达到抛砖引玉的效果。
比如我打算实现这样的一个区块,如下图:
1.首先创建一个Views的block,例如我命名为latest_news.在格式里选择“无格式化的列表(unformatted list)”,可以对HTML更好的定制输出。
并点击“格式”右侧的“设置”进行如下图的设置,取消勾选后,应用保存,这样可以更好的去除views模板添加的HTML元素。
点击“字段”右侧的“设置”进行如下图的设置,取消勾选后,应用保存,这样可以更好的去除views模板添加的HTML元素。
最后对显示的每个字段进行如下设置:
上面的设置完成后,保存views。
2.下面我们去查看一下当前views应用的默认主题文件,点击展开右侧的“高级(advanced)”,在下面有一个“主题信息(theme)”,点击打开。我们可以看到这个views应用的默认主题文件:
显示输出:views-view.tpl.php
样式输出:views-view-unformatted.tpl.php
行样式输出:views-view-fields.tpl.php
可以看到每个输出都有多个可选的主题文件,越后面的优先级越高。
例如对我创建的这个views进行模板覆写,我们可以在主题中选择创建如下的模板文件:
显示输出:views-view--latest-news--block.tpl.php
样式输出:views-view-unformatted--latest-news--block.tpl.php
行样式输出:views-view-fields--latest-news--block.tpl.php
有模板文件的命名我们可以看出创建的模板文件只对当前的views产生影响。
3.下面我们开始在主题文件夹下创建上面的三个views模板文件。首先我们从views模块文件里面的 views/theme文件夹下面的
views-view.tpl.php、views-view-unformatted.tpl.php、views-view-fields.tpl.php 复制到我们的主题的templates文件夹下。
然后分别重命名:
views-view.tpl.php --> views-view--latest-news--block.tpl.php
views-view-unformatted.tpl.php --> views-view-unformatted--latest-news--block.tpl.php
views-view-fields.tpl.php--> views-view-fields--latest-news--block.tpl.php
重命名完成后,我们回到views的主题信息那,重新检索主题文件,可以发现views已经可以读取到我们覆写的views主题文件,如下图:
4.修改views-view--latest-news--block.tpl.php文件里的代码(55行),如下图:
5. 修改views-view-unformatted--latest-news--block.tpl.php文件的里面的代码,如下图:
6.我们定制输出字段主题文件views-view-fields--latest-news--block.tpl.php:
7.在完成以上的工作后,我们就可以控制views的HTML输出,实现完全的自定义定制输出,如下图的这个views在网页显示后的源码:
支持
很不错,顶一顶