PHP

Drupal 7のテンプレート内でユーザーの権限判定。

2012.11.02 / Notes

Drupal 7での「page.tpl.php」などのテンプレート内で、ユーザーの権限(ロール)によって処理を変えたい場合に、判定するためのコードのメモです。

また、複数の権限を判定したい場合には、下記の様にも書けます。

Drupalのコンテンツ表示について。

2012.07.17 / Notes

Drupalではコンテンツの表示には「$content」という変数を使います。
これは「node.tpl.php」テンプレート内で使うことができますが、汎用的なテーマのテンプレートの場合、次のように記述して、コンテンツに含まれるフィールドをまとめて出力しています。

フィールドの表示順やラベル表示の有無は「サイト構築 > コンテンツタイプ」内の「表示の管理」から変更をすることもできます。

 

もしオリジナルテーマを作成して、レイアウト内で個別にフィールドを出力したい場合には次のように個別指定も可能です。

上記では「field_image」フィールドのみを出力しています。
画像などでは、一つのフィールドに複数点アップするケースもありますが、その内の一つ目の項目のみを出力したい場合は次のようにします。

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で投稿日時の表示のメモ。

2012.05.23 / Notes

Drupal 7でノードのテンプレート内で日時の表示のメモです。
ノードのテンプレート内では「$created」で投稿日時の値を使えますが、Drupalで用意している日時フォーマットで表示するには次のように記述します。

2つ目の引数がフォーマットの名称で、「short」「medium」「long」が入ります。デフォルトでは「medium」なので、省略も可能です。
Drupalで用意しているフォーマット以外の書式にしたい場合は次のようにします。

フォーマットを「custom」として、3つ目の引数で書式を渡します。この場合はdate()関数を使うのと同じ働きになります。

Drupalで表示しているページのパスを配列で取得。

2012.05.16 / Notes

Drupalで表示しているページのパスをスラッシュで分割し、各パートを配列で取得するスクリプトのメモです。

テーマの中の「template.php」にページのプリプロセスとして以下のように記述すると、ページのテンプレート(page.tpl.php)内で「$parts」という変数名で利用できます。

URLエイリアスごとに表示方法をカスタマイズしたい場合に有効です。