您在這裡

Drupal視圖Views可用的顯示模闆文件

James Qi 在 2017年7月18日 - 10:51 發表

  最近在修改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 標籤。
  • 自動將網址與電子郵件地址轉變為連結。
  • 自動斷行和分段。