投稿記事のカテゴリ表示をアイコンにするためのモジュールを作りましたので公開します

BBSite

drupal.org に公開する程でもないが、自分のサイトで使ってるだけじゃもったいないモジュールを公開するシリーズ第二弾。今回は、 bbsite_term_icon というモジュール。このモジュールも Field API を利用したモジュールで、投稿記事のカテゴリの表示をアイコンにするためのモジュール。Drupal 6 とかだと普通にあったような気がするのだが、drupal.org で探すのが大変なので数時間もかけて作ってしまった。

このモジュールでできること

記事本文中に、カテゴリと関連付けられた画像(アイコン)を表示する。
記事本文中にカテゴリと関連付けられたアイコンを表示

フィールドタイプが Term reference の場合、Drupal 標準のままだと表示方法に Link, Plain Text, RSS Category の 3種類しか選べないが、このモジュールをインストールすることで Icon Link を選ぶことが出来るようになる。
Term Reference の表示切り替え
この Icon Link を選択したコンテンツタイプの場合、カテゴリがアイコンで表示 される。

コンテンツタイプ毎に表示パラメータを変更可能

表示フォーマットが Icon Link の場合、下記画像のように Image style や、Term に関連付けられた 画像フィールドのどれをアイコンとして表示するか ( Icon Field ) を変更することができる。
表示パラメータ設定

その他機能

基本的には、 SNS ボタンフィールド と同じである。

  • コンテンツタイプごとに「表示」、「非表示」の切り替えが可能
  • コンテンツタイプごとにボタンの表示位置を変更できる
  • ページ表示(全文表示) と 一覧表示(部分表示) で表示位置や表示するしないの切り替えが可能

ただし、このモジュール用の管理画面は存在しない。

実際の設定

実際の設定方法を見ていこう。ここでは、 Vocabulary (カテゴリ) として アイコン付きカテゴリ というものをすでに作ってあり、Image Style として icon が存在しているものとする。ちなみに、当サイトでは icon スタイルは Scale and crop で、幅と高さを 56ピクセルに設定している。

まずは、下記画像のように アイコン付きカテゴリ に二つの画像フィールドを追加する。
ひとつのカテゴリに複数の画像フィールドを追加

次にコンテンツタイプ Article のフィールド設定で、 アイコン付きカテゴリTerm Reference として設定する。
Article コンテンツタイプのフィールド画面に Term Reference として「アイコン付きカテゴリ」を設定同じように、コンテンツタイプ Blog にも アイコン付きカテゴリTerm Reference として設定する。

そしてコンテンツタイプ Article フィールド表示設定で、 アイコンカテゴリ の表示フォーマットを Icon Link に変更する。
Article コンテンツタイプの表示フィールド管理画面で Icon Link に切り替えさらに表示オプションの Image Style, Icon Field をそれぞれ iconお知らせ用アイコン に設定する。
Article コンテンツタイプの表示フィールド管理画面のオプション設定画面

コンテンツタイプ BLOG のフィールド表示設定でもおなじように設定し、 Icon Fieldブログ用アイコン に設定する。

このように設定することで、ひとつの Vocabulary を複数のコンテンツタイプに関連付け、それぞれのコンテンツタイプでどの画像(アイコン)フィールドを表示するかを切り替えることが出来るようになる。

ただし、作った者が言うのは変だとは思うが、一つの Vocabulary (カテゴリ) を複数のコンテンツタイプに共通で使うことはあっても、それぞれのコンテンツタイプでアイコン画像を変えて表示するようなケースは少ないと思っている。ただ、システム的にはこのように作ってあったほうが親切だというのが私の考え。

バグ

このモジュールをインストールすることで、 Vocabulary にアイコン用フィールドを自動的に付与するほうが良いと思っているのだが、そこまで作る時間的余裕はなかった。ご要望があればそのうち対応するだろう。

モジュールの配布元

モジュールは下記よりダウンロードしてお使いいただくことが出来る。ライセンスは GPL v2。 要望、不具合などは、コメント欄や GitHub などでご連絡いただけると幸いである。

Repository: https://github.com/smiyabe/bbsite_term_icon

このエントリーをはてなブックマークに追加
Pocket