web-dev-qa-db-ja.com

無制限の値を受け入れるフィールド内の値の数を数える

無制限の値を含むことができる画像フィールドがあります。このフィールドに含まれる画像値の数をビューに表示するにはどうすればよいですか?

Drupal 7.を使用しています。

7
jeroen

最初に 計算フィールド モジュールをインストールしてから、フィールドの値をカウントする変数内にforループを記述し、この変数を出力するだけです。

4
abd

Drupal 7.でこれをネイティブに行う方法があります。

  1. [集計を使用]を[はい]に設定します
  2. ファイルフィールドなど、複数の値を含むフィールドを追加する
  3. 集計設定をCOUNT DISTINCTに設定します

シンプル。ただし、これによりすべてのフィールドの集計が有効になりますが、他のフィールドのデフォルト設定では、それらのフィールドは正常に動作します。

11
Lomax

良い質問。これを行うにはより良い方法または組み込みの方法があるかもしれませんが、そうでない場合は、最初に、処理しているフィールドのgroup multiple values together構成オプションを確認してから、問題のビューとフィールドのテンプレートを作成します。

<?php
$foo=node_load($row->nid);
if (count($foo->field_photo)) {
  print 'There are ' . count($foo->field_photo) . ' photos in this node.';
}

field_photoを含むfooという名前のビューをすばやくスローすると、これはviews-view-field--foo--field-photo-fid.tpl.phpというテンプレートになります。

2
Jimajamma

ビューを使用すると、ビューにフィールドが表示され、ビューフィールドはエンティティフィールドのデルタになります。

「デルタ」は単にカウントを意味します。

たとえば、サイトの[フィールドの追加]ダイアログの[コンテンツ:添付ファイル(upload:delta)]というフィールドが表示されます。これを追加すると、そのノードに添付されているファイルの数を表示できます。

このフィールドを構成するときは、おそらく「結果の動作なし」セクションに注意を払い、delta = 0などの場合は非表示にする必要があります。

HTH。

1
paul-m

Views PHP module を使用して、Photos/Imagesフィールドを通常どおり追加し、次にGlobal PHPフィールドを追加して追加しました。

$photos = $data->field_field_images;
$count = count($photos);
//dsm($count);
print $count;
0
Lee Woodman