web-dev-qa-db-ja.com

<div>タグをビューリストの出力に追加するにはどうすればよいですか?

私が使用しているビューの出力には、次のコードが含まれています。

<li class="views-row views-row-1 views-row-odd views-row-first">  
  <div class="views-field-field-cimg-fid">
    <span class="field-content">....</span>
  </div>

  <div class="views-field-field-yma-value">
    <span class="field-content">...</span>
  </div>

  <div class="views-field-field-price-value">
    <span class="field-content">....</span>
  </div>

  <div class="views-field-changed">
    <span class="field-content">....</div></span>
  </div>
</li>

追加したい<div id="test">....</div> 2つのフィールドをグループ化する次のsnippet.toの周り

   <div id="test">
    <div class="views-field-field-yma-value">
      <span class="field-content">...</span>
    </div>

    <div class="views-field-field-price-value">
      <span class="field-content">....</span>
    </div>
      </div>

ループ

 <?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; ?>

divタグをループに追加する方法

3
enjoylife

[編集の表示]画面で、[詳細]をクリックします。その最下部に、「テーマ:情報」と呼ばれるビットがあります。 「情報」リンクをクリックすると、新しいウィンドウがポップアップし、ビューのテーマのオーバーライドが表示されます。各カテゴリは、ビューのさまざまな部分を変更します。

各タイプにリストされているすべてのファイル名は、このビューをオーバーライドするために使用できる使用可能なファイル名を、特定性の低いものから最も特定性の高いものの順に示します。したがって、最初のビューを選択すると、おそらくすべてのビューがオーバーライドされますが、最後のビューを選択すると、特定のディスプレイでそのビューのみがオーバーライドされます。

オーバーライドするものを選択したら、リンクをクリックして、そこに表示されているすべてのコードをクリップボードにコピーします。次に、テーマディレクトリに移動し、以前に選択したファイル名でファイルを作成し、コピーしたコードに貼り付けます。今すぐ<div>好きな場所に付けたいタグ。

Drupalの[テンプレートファイルの再スキャン]ボタンをクリックして、新しいテーマオーバーライドファイルを取得する必要があります。ビューは、ビューに使用するファイルを1つ配置することで、ビューで使用するファイルを示します太字で使用します。

編集:これを書いているとき、Drupal 7の手順を実行していましたが、Drupalの手順は非常に似ていると思います= 6。

次の編集:貼り付けたコードから、新しいdivタグを配置する最も適切な場所は次のようになります(アスタリスクを参照)。

**<div id="my-custom-div">**
<?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; ?>
**</div>**

私は通常これを少し実験するので、exactスポットをオフハンドで伝えるのは少し難しいですが、うまくいけば、上記は近いでしょう...

6
Frederik

@Frederikの答えは私にはうまくいきませんでした。ビューの特定のフィールドの周りにdivをラップするだけの場合は、いくつかのロジックを組み込む必要があります。コードは、ビューループ全体の周りに追加のdivをラップするだけだと思います。これは私のために働きました:

<?php foreach ($fields as $id => $field): ?>
  <?php if (!empty($field->separator)): ?>
    <?php print $field->separator; ?>
  <?php endif; ?>
  <?php if ($field->class=="title"):?>
    <div class="extra-savoir-faire">
  <?php endif; ?>
  <?php print $field->wrapper_prefix; ?>
    <?php print $field->label_html; ?>
    <?php print $field->content; ?>
  <?php print $field->wrapper_suffix; ?>
  <?php if ($field->class=="field-space"):?>
    </div>
  <?php endif; ?>
<?php endforeach; ?>

キーは$field->classフィールドごとにチェックする識別物として。したがって、これにより、タイトルの前と "field_space"ビューフィールドの後にdivをスローすることができました。これを、「行スタイル出力」のテーマ情報にリストされている最も具体的なtpl.phpファイルとして、views-view-fields.tpl.phpを開始ベースとして使用します。

0
cdmo