Drupal7の強力なViewsモジュールを使ってみよう!(前編)
今年の最初の記事は、Drupalで最も使われているモジュールであるViews(ビューズ)モジュールを説明します。
説明は2部構成で、前編ではViewsモジュールの機能説明、インストール方法について説明します。後編では、実際にViewsモジュールの使い方を説明します。
それでは、Viewsモジュールの機能説明、インストール方法について説明します。
おそらくDrupal7をインストールすると、まずインストールする追加モジュールがViewsモジュールになると思います。
Viewsモジュールは、Drupal の次バージョンであるDrupal 8で標準(Core)に組み込まれますので、Drupal 8では追加でインストールする必要がなくなります。
Viewsモジュールは、とても高機能で使いこなせるとコンテンツの表示方法が様々な方で表示することが簡単に実現できます。逆に、高機能な故に使いこなすことがとても難しいと言えます。
Viewsは使えば使うほどいつも新しい発見があります。最初からすべての機能を理解することは難しいと思います。まずは基本的な機能でも十分便利だと思いますので、Viewsの基本機能を理解し、その後にViewsの高度な設定を理解していくことがよいと思います。
Viewsモジュールの機能紹介
Viewsの基本機能は、入力されたコンテンツ、タクソノミー、登録しているユーザ、ユーザの役割を自由自在に抽出して、かつ柔軟に表示する機能と言えます。
今回は、よく利用するコンテンツを自由自在に扱う方法について説明していきます。
例えば、Viewsを利用してコンテンツを次のような形で表示することができます。
- 最近に登録したコンテンツを新着として表示したい。例えば、先頭5件を表示したい。
- 登録したコンテンツのタイトル一覧を表示したい。あるいはリードとして本文の最初だけ表示するなど。
- コンテンツに登録した写真のみを表示したい。あるいは、コンテンツで入力した特定の項目のみ抜き出して一覧を作りたい。
- 入力したコンテンツを年/月で集計して表示したい。よくブログサイトである年月単位の件数表示です。
- コンテンツからメニューを作成したい。
- Google Mapと連携して地図上にマーカーを表示したい。マーカーをクリックして、さらに詳細をマーカーを表示したい。
などなど、あります。
また、Viewsモジュールを利用した追加モジュールもあります。弊社でよく使っているのが、アコーディオンの形でメニューを実現するViews Accordionモジュールがあります。このモジュールでは、Views機能を使って、メニューを作成することもできます。
Viewsを利用したホームページの例
文章だけの説明ではイメージしづらいと思いますので、具体的に動作しているページから一部の機能を説明します。
最近、弊社で構築した横浜市会議員 伊藤ひろたかさんのブログページのトップを例に説明します。
トップページでは、四角で囲った4カ所でViewsの機能を使っています。
①はメニューのようですが、実際はDrupalのタクソノミーをViewsを使って利用しています。タクソノミーは、20分でわかる!Drupalの基本機能講座で説明していますので、参照してください。
Viewsでタクソノミーを取得して、クリックするとそのタクソノミーを含むブログの一覧表示を実現しています。
②は写真の一覧です。これは、最近登録されたブログページから写真のみを抽出して4件を並べています。マウスカーソルを当てるとそのブログのタイトルが表示されるようにしています。Viewsで写真データ抽出し、CSSでタイトル表示は制御しています。
③、④は、それぞれブログの種類毎の最近のブログ登録日付とタイトルを6件を表示しています。「すべて見る」をクリックすると、すべて表示してページ遷移で過去に遡れるようにしています。
トップページ以外でも利用していますが、トップページだけでもViewsの機能がご理解いただけたのではないでしょうか。
Drupalを利点の1つとして、トップページ用の見せ方でコンテンツを登録することなくViewsを使うことで登録されたブログのコンテンツを様々な形で表示を変えて実現していいます。コンテンツを登録するとすぐにトップページに反映されますので、大きな利点だと思います。
Viewsモジュールのインストール方法
では実際にViewsモジュールのインストール方法と簡単な使い方を説明します。
Viewsモジュールは、Chaos tool suite (ctools)モジュールが必要です。
こちらのモジュールとViewsモジュールをインストールします。
インストール方法は、Drupalをもっとつかいやすくしよう!の内容を参考にしてください。
Viewsモジュールをインストールすると一部、英語表記のままとなります。Viewsモジュールはよく使われていることもあり日本語に翻訳(完全ではありませんが)されていますので登録方法を説明します。日本語の翻訳は必須ではありません。また、翻訳しなくてもViewsで日本語を扱うことはできます。
DrupalをVPSにインストールしてみようでも説明した、Drupalの日本語翻訳ページに翻訳しているファイルがあります。
Viewsの内容から、7.x-3.8をクリックして、ファイルをダウンロードします。アクセスしているブラウザによっては、ダウンロードされずブラウザに表示される場合があります。「リンク先を別名で保存」などでダウンロードしてください。
ダウンロードしたファイルは「views-7.x-3.8.ja.po」というファイル名になります。参照した時期によっては、3.8のバージョンは上がっているかもしれません。
ダウンロードしたファイルをDrupalの管理メニュー「環境設定」を選択して、左下のある「インターフェースを翻訳」を選択します。
インタフェースを翻訳の画面から、「インポート」のタブをクリックして、「言語ファイル」に先ほどダウンロードしたファイルを指定して、インポートボタンをクリックすると翻訳ファイルが登録されます。
Viewsモジュールの基本
さて、Viewsモジュールのインストールが終わりましたので、Viewsの基本について説明します。
Viewsは「入力されたコンテンツを自由自在に抽出して、かつ柔軟に表示する機能」と言いました。
まず、その表示する方法が、大きく2つあります。それは、ページとして表示する方法とブロックとして表示する方法の2つのパターンです。
ページとして表示した場合は、Viewsで取得したコンテンツ自体がコンテンツを表示するページとして表示されます。
ページとして表示するとそれ自体にURLを持つことができ、また表示される場所は、「コンテンツ」を登録した時と同じ位置に表示されます。
(Drupalでは、表示する位置はテーマのリージョンで決まります。リージョンのコンテンツの箇所に表示されます)
また、Viewsをコンテンツとして表示することで、コンテンツとして表示するフィールドやフィールドの配置が柔軟に対応することができます。Viewsを使わないDrupal標準のコンテンツ表示より使いやすい反面、Drupal標準でのコンテンツの機能が使えないというデメリットがあります。例えば、コンテンツを表示している画面から、そのまま内容を編集する機能などあります。
次にブロックとして表示した場合は、Drupalのテーマで配置されているブロックの1つとして表示されます。URLは持つことができませんが、常に特定の場所に表示する場合に利用できます。
例えば、コンテンツを表示する毎に右サイドメニューに最近のコンテンツ一覧を表示したり、メニューを表示したりという場合にブロックを利用します。
ブロックを使う上でのアドバイスは、Drupalではブロック自体の表示・非表示は、URLに含まれる文字よって制御が容易です。例えば、http://xxx/blog/yyy と http://xxx/news/yyy という2つのURLで分けて、URLに「blog」が含まれている場合にのみ最近のブログ一覧を右サイドメニューに「Viewsのブロック」で表示することができます。newsのURLが含まれている場合は、年月毎にニュースの件数を表示するコンテンツを右サイドメニューにViewsのブロックで表示するという使い方ができます。
Viewsのブロック表示は使うことが多いと思いますので、URLの階層と名前は最初に決めておくと実装がスムーズになります。
Viewsをページとブロックの使い分ける目安としては、サイドメニューなどに常に表示する場合はブロックで表示、コンテンツを抽出して一覧表示する場合はページとして表示します。
前編では、Viewsの機能の説明を実施しました。実際のViewsモジュールの使い方は後編に続きます。