当前位置

Drupal视图Views可用的显示模板文件

James Qi 在 2017年7月18日 - 10:51 提交
内容摘要:最近在修改Drupal网站广告投放的时候遇到需要在Views页面的标题、描述文字下方插入广告代码,以前的做法有两种:一是在Views的Header里面插入广告代码;二是加一个带有广告代码的Block,......

  最近在修改Drupal网站广告投放的时候遇到需要在Views页面的标题、描述文字下方插入广告代码,以前的做法有两种:一是在Views的Header里面插入广告代码;二是加一个带有广告代码的Block,让其放置在Views页面的标题下。

  当Views数量不多,或者在module中容易集中修改的时候,就用上面两种办法之一比较方便,但如果需要手工修改的Views太多就麻烦了,我今天尝试了一下Views的模板文件修改,是可以很方便实现的,下面就来介绍一下。

  去年10月我写过一篇《Drupal网站用Views模板来替代Views PHP修改字段内容》,当时是需要使用views-view-field.tpl.php 这个模板来修改Views中某个字段的显示,也非常方便,解决了一个疑难问题。

  今天找了Drupal 7 Views 3的官方资料《Views template files》,发现Views的显示模板非常灵活强大,可以修改的模板很多、很细,列出如下:

  • sites/all/modules/views/theme/
  • theme.inc
  • views-view-field.tpl.php
  • views-view-summary.tpl.php
  • views-exposed-form.tpl.php
  • views-view-grid.tpl.php
  • views-view-summary-unformatted.tpl.php
  • views-more.tpl.php
  • views-view-grouping.tpl.php
  • views-view-table.tpl.php
  • views-ui-display-tab-bucket.tpl.php
  • views-view-list.tpl.php
  • views-view.tpl.php
  • views-ui-display-tab-setting.tpl.php
  • views-view-row-comment.tpl.php
  • views-view-unformatted.tpl.php
  • views-ui-edit-view.tpl.php
  • views-view-row-rss.tpl.php
  • views-view-fields.tpl.php
  • views-view-rss.tpl.php

  我们这次只需要修改views-view.tpl.php,代码如下:

<div class="<?php print $classes; ?>">
  <?php print render($title_prefix); ?>
  <?php if ($title): ?>
    <?php print $title; ?>
  <?php endif; ?>
  <?php print render($title_suffix); ?>
  <?php if ($header): ?>
    <div class="view-header">
      <?php print $header; ?>
    </div>
  <?php endif; ?>

  <?php print ad_code(); ?>

  <?php if ($exposed): ?>
    <div class="view-filters">
      <?php print $exposed; ?>
    </div>
  <?php endif; ?>

  <?php if ($attachment_before): ?>
    <div class="attachment attachment-before">
      <?php print $attachment_before; ?>
    </div>
  <?php endif; ?>

  <?php if ($rows): ?>
    <div class="view-content">
      <?php print $rows; ?>
    </div>
  <?php elseif ($empty): ?>
    <div class="view-empty">
      <?php print $empty; ?>
    </div>
  <?php endif; ?>

  <?php if ($pager): ?>
    <?php print $pager; ?>
  <?php endif; ?>

  <?php if ($attachment_after): ?>
    <div class="attachment attachment-after">
      <?php print $attachment_after; ?>
    </div>
  <?php endif; ?>

  <?php if ($more): ?>
    <?php print $more; ?>
  <?php endif; ?>

  <?php if ($footer): ?>
    <div class="view-footer">
      <?php print $footer; ?>
    </div>
  <?php endif; ?>

  <?php if ($feed_icon): ?>
    <div class="feed-icon">
      <?php print $feed_icon; ?>
    </div>
  <?php endif; ?>

</div><?php /* class view */ ?>

  其中<?php print ad_code(); ?>就是插入广告代码在header之后,例子页面“赞列表”、“书签列表”  ,我的博客中可以全部Views都加入(实际测试对Json数据Views的输出无影响),其它站还可以在模板文件中添加一些判断来实现指定的要求。

 

自由标签:

添加新评论

Plain text

  • 不允许使用HTML标签。
  • 自动将网址与电子邮件地址转变为链接。
  • 自动断行和分段。
验证码
本问题用于测试您是否为人类访问者,避免自动垃圾发贴。
图形验证
键入显示在图片中的字符