视图3和HTML5-如何覆盖标记的输出?


7

我已经创建了一个视图,该视图根据特定的分类法术语来选择博客帖子,从而创建了一种嵌入到网站首页的“特色帖子”视图。我一直遇到的问题是试图输出视图,以便使用一些新的HTML在语义上标记每个帖子。我已经尝试了内置的“重写此字段的输出”,但是即使我取消选择占位符标签,它也会忽略我使用的标签(即文章,页眉,页脚),并将所有内容包装在div中。

我应该创建一个覆盖视图-view_name.tpl.php重写视图中出现的每个帖子的输出,还是需要在template.php中使用预处理钩子来影响输出?

我应该指出,我具有编写PHP和预处理钩子的基本经验,但是如果我朝着正确的方向发展,我可以利用任何资源将我移到链接上。

Answers:


10

您会注意到,在视图的“样式设置”(Style Settings)块下,有一个主题:信息链接。它将显示为您的视图调用的所有主题文件。您可以使用通用到非常详细的主题文件,这些主题文件将仅用于视图显示。

显示输出中的第一个文件名是views-view.tpl.php。这将适用于所有视图和显示。列表中的下一个是views-view-[视图名称] .tpl.php。它将仅适用于您的视图。它会不断深入,直到变得尽可能具体。views-view-[视图名称]-default.tpl.php是列表中的最后一个,仅适用于视图的默认显示。单击显示输出:链接将显示视图使用的模板代码。只需使用列表中建议的一个复制并创建一个新的模板文件。通常最好尽可能具体。模板文件可以放在主题中的任何位置,并且只要您重新扫描主题信息中的模板文件并保存视图,视图就会拾取它。有视图模板,行模板,字段模板和特定于字段的模板。

一旦您了解了如何操作视图模板文件,它将为您带来真正的设计可能性。


太棒了!感谢您指出了这一点; 这肯定会允许更多的设计控制。
PendragonDev

稍微扩展一下,请考虑本Drupal HTML5指南中提到的HTML5工具模块;它在视图中公开了更多HTML5元素。
Christopher Cooper 2015年

2

栅栏看起来像一个很棒的模块(对于Drupal 7),用于控制视图输出标记:

项目页面:

http://drupal.org/project/fences

从项目页面:

“围栏是一种易于使用的工具,用于为每个字段指定一个HTML元素。此元素选择将传播到使用该字段的所有地方,例如预告片,RSS提要和视图。您不必保持重新配置每次显示该字段时,都会重复相同的HTML元素。”

我特别喜欢这一点(非常适合调试输出):

“最重要的是,Fences提供了比Drupal 7核心更精简的标记!并且可以摆脱多余的类!”

这也很好-减少重复工作:

“为了从Drupal创建语义HTML5输出,需要这种工具。没有这种工具,就必须在主题中为每个字段创建自定义字段模板。:(”

他们也考虑了流行的替代方法:

类似的项目包括语义字段字段包装器Display Suite Extras中的工具。但是我们认为这种方法是Morefasterbetter™。

感谢 Drupal用户raache在对这个问题的评论中提及Fences Drupal模块时语义视图模块是否被Views 3淘汰了?


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.