views

モジュール名 Views

Drupal 7 Views module概要

コンテンツのデータをデータベースに保存、検索参照などで大変便利や機能です。自由に、ユーザーがデータベースのデータを登録、検索参照できます。それらの作業はプログラミングなしで、Drupalサイトを構築、運用でき、すばらしい機能です。

スクリーンショット

Viewsの管理画面

インストールDrypal 7 Views モジュール 管理画面

環境

Drupal 6  Drupal 7 Drupal 8

ダウンロード 

http://drupal.org/project/views

インストール手順

  Drupal 6 の場合

  Drupa7の場合

Drupal7では CTools (Chaos Tool Suite) が必要になります。

Drupal 8 の場合は標準コアに含まれています。

環境設定

特にありません

VIEWSの使い方

編集する前に :

既存のVIEWSを編集する場合は、念のために、エクスポートもしくは複製でViewsの名前と説明名を新規作成するなどを行い、そのソースを保存します。もしものときに戻すことができるように。

 

編集操作 :

作成したViewsの検索フィルターは削除するには、Defaults と Page の両方で「取り外す」を選択します

 

フィールドの追加 :

フィールドのプラス矢印をクリック -> グループで、たとえばフィールドを選択 -> デフォルトで更新 -> Viewを保存  

(1) (フィールドで追加できるグループとして : Global, Lightbox, Node revision, Node translation, Nodequeue, Page Titles, タクソノミー、コメント、コンテンツ、ユーザー、検索)

(2) 操作できるフォーマットとして、  数字の場合 :  9999 9,999 9.999 9 999 フォーマットなし

(3) フィールドでよく使う設定として、  「表示しない Exclude from display」 「このフィールドにクリックしてリンク設定 Link this filed to its node」

フィルターの追加 :

フィルターのプラス矢印(追加ボタン)をクリック -> グループで、たとえばコンテンツを選択 -> 追加 -> 属性に応じてフィルターのオペレータ(操作など)を設定しExposeをクリック -> ラベルを設定 -> 更新 -> Viewを保存  

(1) フィルターで追加できるグループとして : (Noded access, Node revison, Node translation, Page Title, タクソノミー、コメント、コンテンツ、ユーザ、検索

(2) 設定できる演算子として、数字の場合は、 Is less than, Is less than or equal to, Is eaual to, Is not equal to, Is greater than or equal to, Is greater than, Is between, Is not between, Is empty (NULL), Is not empty (NOT NULL)

(3) 選択可能なテキストの場合は、 フォールド名で - Allowed values がついたフィールド名を選択します。 その後、 フィルターの設定では、演算子(Operator)として、 Is one of, Is all of, Is none of, Is empty (NULL), Is not empty (NOT NULL) から選択し、 「任意」 「Force single」 をチェックします。

 

 

備考

• Viewsを複数の人で編集した場合、最初に編集している人が優先されるようです。

・Viewsの管理画面で、 環境設定 -> Advanced , Debuging の項目で「Disable JavaScript with Views 」を有効にすることで、Viewsの各機能を保存したときに表示されるエラーなどが解決される場合があります。 Drupal 7.24 Views 7.x-3.7 での場合。

お役立ち情報

インストール関連のマニュアル(英語)

・ Viewsを使ったイメージアプリケーションはたくさんありますが、代表的な応用として、イメージ(画像)のスライドショウがあります。 

views_slideshow

ダウンロード drupal.org/project/views_slideshow

マニュアル(英語) drupal.org/node/755010   

How to  drupal.org/documentation/modules/views

インストール手順 www.brightwebsitedesign.com/how-to-install-views-slideshow-module-on-drupal7

オンラインビデオ 基本操作(英語) buildamodule.com/video/build-your-first-drupal-7-web-site-how-to-work-with-pathauto-and-introduction-to-views-what-the-views-module-is-for-and-how-to-install-it?pc=VIEWS3882751

チュートリアルビデオ

Durpal 7 のViewsとTaxonomyのブロック作成手順 http://www.youtube.com/watch?v=PhTdTUiblS4

オープンソースソフトウェア: 

CMS: 

Views extension modules

Views関連モジュール

 

Viewsで表計算のように四則演算

 

  • Drupal 7 ではViews Calcがありますが、Drupal 8 版はまだ開発していないようなので

https://www.drupal.org/project/views_calc

 

  • Views Calc - Calculations for Your Fields in Views

https://www.ostraining.com/blog/drupal/views-calc

 

  • Computed Field (Drupal 8 Alphaですがあります)

https://www.drupal.org/project/computed_field

 

  • Views PHP(Drupal8はまだのようです)

https://www.drupal.org/project/views_php

 

  • Math Field (Drupal 7 だけ)

https://www.drupal.org/project/mathfield

 

  • Views Aggregator Plus (Drupal 7 だけ)

https://www.drupal.org/project/views_aggregator

 

  • Viewsとは連携しないようですが、ブロックで四則演算ができる GPA Calculator

https://www.drupal.org/project/gpa_calculator

 

参考情報として

  • Best ways to compute and aggregate views fields

https://www.drupal.org/node/1219356

 

  • How to count or add all values for an integer field in Views

http://renaudjoubert.com/en/article/how-count-or-add-all-values-integer-field-views

 

 

 

Views data export

Viewsを使って、contentやさまざまデータをデータベースから出力させるモジュールです。

モジュールの概要: https://www.drupal.org/project/views_data_export

使い方

Drushコマンドで出力 drush views-data-export [view-name] [display-id] [output-file]

※ [display-id] は、Viewsの編集画面で、Displayのタイトルの下にある、Master Page Data export +Add 欄の data export をクリックするとそのURLがわかります。デフォルトでは、最初は views_data_export_1 になります。

 

Better Exposed Filters

Viewsの検索条件の設定などを改善させる拡張モジュールです。

モジュールの概要: https://www.drupal.org/project/better_exposed_filters

追加のBetter Exposed FiltersのWidgetとして、select2モジュールを追加インストール select2モジュールの概要: https://www.drupal.org/project/select2

Drupal 7の場合のインストール手順: https://www.drupal.org/docs/8/modules/select-2/drupal-7-installation 

drush select2-download と  drush select2-download --tag=master  Select2ライブラリは3.5.4 を使います。4.0はDrupal7では未対応です。

select2モジュールをインストールして、sites/all/librariles/select2 のディレクトリに、select2の3.5.4 をダウンロード、解凍後のファイルを保存します。

 

 

タグ: 

CMS: 

Viewsの設定サンプル

Viewsのさまざまな設定方法の概要

Viewsモジュールでは、いろいろな設定が可能です。あとでサンプルを活用できるように記載します。

 

時間で表示させるコンテンツ

動作環境: Drupal 7 Views-7.x-3

たとえば、過去20日に発行されたコンテンツのみ表示させたい、とか。

ViewsモジュールのFILTER CRITERIAで

コンテンツ: 掲載(はい)

コンテンツタイプ: 表示させたいコンテンツタイプ

日付: 制御したい日付のフィールドを指定、例えばPost date(コンテンツ作成日)

以下のサンプルは 30日以前に作成したコンテンツを選択

 

 

テーブル表示などで本文をそのページへリンク設定

動作環境: Drupal 7 Views-7.x-3

標準でフィールド追加した場合、タイトルはそのページへリンクされますが、本文や概要を表示させて、そのテキストをそのページへリンクさせる方法について。

一つの方法として、フィールド追加で、「コンテンツ: パス  (The aliased path to this content)」を使います。

「コンテンツ:パス」を追加し、ラベルを本文で使う名称に変更

REWRITE RESULTSの「Rewrite the output of this field」をチェック、テキスト欄に [body] を記入、「Output this field as a link」をチェック、Link path に [path] を記入

Bodyのフィールドは、「Exclude from display」をチェックし、非表示に設定

これで、コンテンツ:パスだけが表示され、テキストをクリックするとそのページへ移動します。

 

検索(Filter Criteria)でApplyの翻訳やリセットボタン

動作環境: Drupal 7 Views-7.x-3

Fiter Criteria では標準がApplyボタンで表示されるので、その動作に合わせてボタンのテキストを変更できます。

さらに、リセットボタンや幾つかの設定も可能です。

Views管理画面 -> Exposed Form -> Exposed form style -> 環境設定

 

Views Filter Criteria Apply translate add Reset button Drupal 7

実際のサンプル

Views Filter Criteria Apply translate add Reset button Drupal 7

 

ノード(ページ)を作成・更新した場合にNewマーク表示

動作環境: Drupal 7.54 Views-7.x-3.16

たとえば、過去7日以内に作成されたノード(ページ)にNewのマークを表示

Drupal 7 has new content NEW mark

 

Drupal 7にはViewsモジュールをインストールすると、「Content: Has new content」フィールドを使えるようになります。

この「Content: Has new content」を使って実装しようと考えましたが、この機能の動作設定が未確認なので、調査しました。

Drupal 7 + Views環境では、そのコアプログラムに、ノード新規作成で「New」赤字マーカーが表示される設定について、その新規作成期間は、30日になっています。

 詳細は ここを参考に  

 「New」赤字マーカーが表示される条件は、新規作成、update、readなどです。

 Drupal 7ではソースプログラム(modules/node/node.module, line 45と350)に記述されています。

 /**
 * Nodes changed before this time are always marked as read.
 *
 * Nodes changed after this time may be marked new, updated, or read, depending
 * on their state for the current user. Defaults to 30 days ago.
 */
 define('NODE_NEW_LIMIT', REQUEST_TIME - 30 * 24 * 60 * 60);

 詳細は、Drupal APIの function node_mark ここから 

 NODE_NEW_LIMITを使った場合は、node_mark で表示される機能は、ログインユーザーのみです。サイト訪問者には許可されていないようです。

サイト訪問者がだれでもこのノード(ページ)更新ステータスを見れるようにNewを表示させる方法は、詳細は ここを参考に

Views PHPモジュールをインストール PHPをViewsを使って操作できるようになりますので、セキュリティに注意しましょう。

 ダウンロード ここから 

Views PHPモジュールをインストール後、Viewsでフィールドに Global:PHP を追加します。

Output code に以下のサンプルを挿入 <?php  ?> を追加して

$my_now = time(); 
  $diff = abs($data->node_changed - $my_now);
  $days = floor($diff / (60*60*24));

 if($days <= 7)
    print "New";

この設定で7日以前のノード(ページ)にNewが追加表示されます。

 

●参考情報

 for how long is Content considered “new” by the filter criteria “Content: has new content”? ここから 

 Difference between create new and edit node in form alter ここから 

 Mark New Nodes in Views via Template ここから ただしログインユーザーのみマーク表示です

 Markモジュール ここから  

 Drupal Commerceモジュールで製品の新規マークなどの設定 Viewsのフィルター、date rangeでフィルターさせる ここから 

 Drupal 8 の admin/content View does not have "new"/"update" indicators ここから 

 Drupal 6 でベータ版モジュールでした。コンセプトは、”Node: Has new content"を使って、サイト訪問者でもNewやUpdatedを見れる 

 コメント表示で "New" を表示させたいときは How to display “NEW” label in comments list ここから 

 views/modules/comment/views_handler_field_node_new_comments.inc を追加修正すると"New"が表示される概要の説明 ここから 

 

タイトル以外でノード(ページ)へのリンク

動作環境: Drupal 8.3.3   Views core

たとえば、Viewを新規作成(コンテンツタイプを選択)すると、タイトルがデフォルトでフィールドに登録されます。

そのタイトルのリンクを使わないで、他の文字や文章をリンクに使う場合、いくつかの方法があります。

本文の「概要」を使って、その概要の文章をタイトルの代わりに表示させリンクを設定します。

  • フィールドに本文(Body)を追加、カラムとフォーマットは概要を選択、
  • フィールドにパス(Path)を追加、書き換え(Rewrite)上書きテキストに{{body}} カスタムリンクのパスに{{path}}
  • フィールドのタイトルで、非表示に
  • フィールドの本文(Body)で、非表示に

Drupal 8 Views Tips タイトル以外の文字や文章にリンクを設定する場合

これで{{Path}}で指定したURLで本文の概要がリンクになります。

この設定を有効にするには、フィールドの順番で、下にあるフィールドに対してその上のフィールドしかトークンなどの引数が有効になりません。

 

 

 

オープンソースソフトウェア: 

CMS: