3

ビュー2を使用してページを作成しようとしています。このページには、すべてのノードとその分類用語によるグループ化が一覧表示されます。このビューでは、スタイルはフォーマットされておらず、行スタイルはフィールドです。次のようなフィールド:

Node: Title 
Node: Teaser 
Taxonomy: Term 

問題は、各用語の下の最初の行にタイトルとティーザーの両方を表示し、残りの行にタイトルのみを表示することです。例:

-ニュース

  1. タイトルとティーザー
  2. タイトル
  3. タイトル

-スポーツ

  1. タイトルとティーザー
  2. タイトル
  3. タイトル

-エンターテイメント

  1. タイトルとティーザー
  2. タイトル
  3. タイトル

使ってテーマを作ってみました

  • views-view-unformatted.tpl.php
  • views-view-fields.tpl.php
  • views-view-field.tpl.php

運がない上記の3つのファイル。私はしばらくの間この問題に苦しんでいます、どんな助けでもありがたいです。ありがとうございました。

4

4 に答える 4

4

「行スタイルの出力」テンプレートを使用する必要があります(例:views-view-fields.tpl.php)。

ビューに固有にするために、そのセクションに表示されている最後の可能なテンプレート名など、それよりも具体的なテンプレート名を使用することをお勧めしますviews-view-fields--myview--default.tpl.php

そこに到達したら、現在の行を追跡するためのグローバル変数が必要になります。たとえば、次のようになります。

<?php 
  global $is_first_of_term;

  if(!isset($is_first_of_term)){
    $is_first_of_term = TRUE;
  } else {
    $is_first_of_term = FALSE;
  }


  // Then use $is_first_of_term below (unmodified original script)
  // to print whatever you want.
?>
<?php foreach ($fields as $id => $field): ?>
  <?php if (!empty($field->separator)): ?>
    <?php print $field->separator; ?>
  <?php endif; ?>

  <<?php print $field->inline_html;?> class="views-field-<?php print $field->class; ?>">
    <?php if ($field->label): ?>
      <label class="views-label-<?php print $field->class; ?>">
        <?php print $field->label; ?>:
      </label>
    <?php endif; ?>
      <?php
      // $field->element_type is either SPAN or DIV depending upon whether or not
      // the field is a 'block' element type or 'inline' element type.
      ?>
      <<?php print $field->element_type; ?> class="field-content"><?php print $field->content; ?></<?php print $field->element_type; ?>>
  </<?php print $field->inline_html;?>>
<?php endforeach; ?>
于 2009-11-09T13:34:12.247 に答える
0

各ビュー表示を「コンテンツ ペイン」として設定します。複数のビューを持つパネル (panels3 モジュール) を使用します。最初のビューにはタイトルとティーザーがあり (制限 1)、次のビューはタイトルのみです (制限 2 または 3)。同じパネルに複数のビューを「積み重ねる」ことができます。

分類法ごとに繰り返します。引数に分類法を使用します。

于 2009-11-09T22:40:54.960 に答える
0

$id を取得して、それが 1 かどうかを確認できるはずです。例:

<?php if (!empty($title)): ?>
  <h3><?php print $title; ?></h3>
<?php endif; ?>
<?php foreach ($rows as $id => $row): ?>
 <?php if (%id == 1): ?>
  <?php print [items you want] ?>
 <?php endif; ?>
  <div class="<?php print $classes[$id]; ?>">
    <?php print $row; ?>
  </div>
<?php endforeach; ?>

私が直面している問題は、1 行あたり 15 項目に基づいて分割できるように、ページャーが使用するものとほとんど同じようにグローバル行番号が必要なことです。私は一生、その番号を見つけることはできません。

于 2010-11-18T21:58:12.727 に答える