Theme

Drupal 7のViewsによる月別アーカイブの表示をカスタマイズ。

2014.08.03 / Labs

Drupal 7でブログやニュースなどの記事一覧で、月別アーカイブを設置することがあります。
Viewsではデフォルトでこの機能が搭載されていて、「contextual filter」の作成年月のフィルターをかけたブロックを作成することで実現できます。
標準の月別アーカイブブロックは、次のように表示されます。

 

  • 8月 2014
  • 7月 2014
  • 6月 2014

 

月が始めにくる英語圏に合わせた表記なので、日本語サイトでは違和感があります。
「2014年 8月」のように順番を逆にするには、Views内の設定画面では行えず、Views自体のモジュールを変更する必要があります。
将来的なモジュールのバージョンアップを考えると、モジュール本体に手を加えるのは避けたいところです。
他の方法としては、Viewsで作成されたブロックのテンプレートファイルを修正する方法もあります。

 

下記はシステムデフォルトのブロックテンプレートファイル(modules/block/block.tpl.php)です。

このテンプレートファイルをお使いのテーマディレクトリにコピーして、Viewsの月別アーカイブブロックに合わせてファイル名を書き換えます。
例えば「news」という名称のViewsで「block-1」の場合には「block–views–news-block-1.tpl」というファイル名に変更します。
テンプレートのファイル名を変更することによって、月別アーカイブでのみ使用するブロックとなります。

 

この中の「<?php print $content ?>」という部分がブロックの本文になります。
今回はブロック本文を正規表現で「8月 2014」を「2014年 8月」に書き換える処理を施します。

上記の変更により、月別アーカイブの表示が次のようになります。

 

  • 2014年 8月
  • 2014年 7月
  • 2014年 6月

Drupal 7のテーマでIE向けのJavaScriptの読み込み。

2014.04.05 / Notes

Drupalのテーマで、古いIE向けに条件コメント付きのJavaScriptの読み込み方法です。

 

テーマディレクトリ内の「template.php」ファイルにプリプロセスとして次のように記述します。

実際のレンダリングでは次のようになります。

Drupal 7での主要テンプレート一覧。

2012.06.01 / Notes

Drupal 7のコアモジュールで利用されている、主要テンプレートファイルの一覧です。
DrupalではPHPテンプレートエンジンにより「.tpl.php」という拡張子を持つテンプレートファイルをもとにHTMLをレンダリングされます。

 

これらのファイルはシステム側にデフォルトのものが用意されていますが、オリジナルのテーマを作成する際には、このテンプレートファイルを自分のテーマディレクトリに同じ名前で格納することで、デフォルトよりも優先的に読み込み、レンダリングに反映させることができます。
ですので、オリジナルのテーマを作成する際には、これらのテンプレートファイルの編集が重要になってきます。

 

またデフォルトの各テンプレートファイルには、テンプレートファイル内で使える変数の説明をコメントに記載されていますので、編集の際に参考になります。

 

HTML(DOCTYPE、HEADなどBODYの外側) /modules/system/html.tpl.php
ページ(BODYの内側) /modules/system/page.tpl.php
領域(ヘッダー、コンテンツなど、レイアウト内の各領域) /modules/system/region.tpl.php
ノード /modules/node/node.tpl.php
フィールド(ノード内の本文や画像、その他追加フィールド) /modules/field/theme/field.tpl.php
ブロック /modules/block/block.tpl.php
コメント(コメント一覧、および各コメント) /modules/comment/comment-wrapper.tpl.php
/modules/comment/comment.tpl.php
検索(検索フォーム、および検索結果) /modules/search/search-block-form.tpl.php
/modules/search/search-result.tpl.php
/modules/search/search-results.tpl.php
サイトメンテナンス時のHTML /modules/system/maintenance-page.tpl.php
タクソノミー /modules/taxonomy/taxonomy-term.tpl.php
ユーザー(アバターや、ユーザー名などの各情報) /modules/user/user-picture.tpl.php
/modules/user/user-profile-category.tpl.php
/modules/user/user-profile-item.tpl.php
/modules/user/user-profile.tpl.php

Drupal 7のスクラッチテーマ作成。

2011.05.21 / Labs

Drupal 7正式版が登場して5ヶ月あまり経ちますが、そろそろ主要モジュールも整ってきたので、Drupal 6からDrupal 7へ移行を進めています。
Drupal 7でサイトを構築するにあたり重要となるテーマ作成ですが、基本的な構成のみをまとめたスクラッチテーマを作成してみました。
Drupal 7のスクラッチテーマ

 

drupal 7ではテーマを継承してサブテーマを作ることができるので、上記の基本構成以外はサブテーマにて装飾を加えていくことで、効率的なサイト構築が可能です。

 

テーマ制作の流れは、おおむねDrupal 6の場合と変わっていないように感じました。
ただしテンプレートファイル内で利用するメソッド、パラメータには変更があったので、Drupal 6のテーマをDrupal 7用に書き換えるのは、少し大変かもしれません。

 

またDrupalオフィシャルサイトでは、テーマ作成のためドキュメントが充実しているので、とても参考になりました。
Theming Drupal 6 and 7 | drupal.org