Drupal 7から標準で実装されたユーザープロフィールの項目を、ノードの投稿者情報に関連づけて出力する方法です。
一般的にユーザーアカウントの名前には英数字のみで構成されるので、それとは別に日本語での名前を、ユーザープロフィールに「field_name」として追加しています。
ユーザープロフィールを出力する一番簡単な方法は、ビューを使うことですが、今回はテーマに組み込む方法で出力を行います。
テーマに変更を加えるのは次の2つです。
- 「template.php」にpreprocess関数を追加
- 「node.tpl.php」にユーザープロフィール変数の出力コードを追加
テーマフォルダの中に含まれている「template.php」ファイルに、次のようにpreprocess関数を追加します。
|
<?php function THEMENAME_preprocess_node(&$variables) { $value = db_query("SELECT field_name_value FROM {field_data_field_name} where entity_id= :uid", array(':uid' =>$variables['uid']))->fetchField(); $variables['alter_name'] = $value; } ?> |
関数名の「THEMENAME」の部分は、実際のテーマ名に置き換えます。
ここでは投稿者の「uid」からユーザープロフィール「field_name」を参照して、「node.tpl.php」に渡す変数の配列に値を追加しています。
次に「node.tpl.php」にて、上記で渡された変数を出力します。
|
<?php print $alter_name; ?> |
「node.tpl.php」ファイルを書き換え後は、「パフォーマンス」でキャッシュのクリアをしないと、うまく反映していないかもしれません。
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
Drupal 7からCCKモジュールが統合されて、Fieldモジュールとして利用できるようになりました。
ですがDrupal 6+CCKで使えたユーザ参照、ノード参照がサポートされなくなり心配していましたが、他の関連モジュールを探したところ「Reference」というモジュールで実現することができるようです。
比較的に新しいプロジェクトでまだ開発バージョンのようですが、Viewsでのリレーションシップにも対応しています。
既存サイトのアップグレードの際には、重要になってくるかもしれません。
本日Drupal 7の正式版が登場して、オフィシャルサイトよりダウンロードが可能になりました。
早速、ローカル環境(MAPP)にインストールし、併せてDrupal 6のころから使っていたモジュールもいくつか試してみました。
今のところ各モジュールのバージョンは正式なものではなく開発版が多くを占めているので、うまく動作しなかったり、インストールの段階でエラーになったりするものもあります。
ざっくり触ってみたところ、一番印象的なのは管理がしやすくなったところでしょうか。Drupal 6のころはメニューが深く、目的の項目にたどり着くまでが煩わしかったですが、Drupal 7ではメニュー構成も含めて、よく考えられているように思います。
またモジュールのアップデートも管理画面上で行えるので、ずいぶん楽になりました。
そして何より、既に日本語版として利用できるのは非常にありがたいです。翻訳していただいている方々には感謝です。
Drupal本体は正式版となりましたが、主要モジュールの正式版が登場するまではもうしばらくかかると思うので、当面はDrupal 6が活躍しそうです。
drupal.org
先日公開されたDrupal 7のベータ版をローカルのテスト環境(MAMP)にインストールしてみました。
インストールの流れは、おおむねDrupal 6のときと同じでした。日本語の言語ファイルはDrupalのTranslateサイトのものを利用させていただきました。
言語ファイルの取り込みは、ダウンロードしたpoファイルを「profiles/standard/translations/」ディレクトリに配置してインストールを行えばよいという認識だったのですが、インストール実行中にエラーが表示され進めることができなかったので、一旦英語版の状態でインストールを完了し、管理画面の「環境設定 > インターフェースの翻訳」よりpoファイルをインポートして、日本語の言語ファイルを取込みました。
インポートには、予めコアモジュール「Locale」を有効にしておく必要があります。
デフォルトのフロントページはこんな感じです。
テーマは新しく導入された「Bartik」というテーマです。
Drupal 6に比べて大きく違うのは、上部に管理メニューが表示されていること、デフォルトテーマが変わったことです。
従来のテーマ「Garland」も含まれているので、メニューの「テーマから」変更することもできます。
管理画面も大きく変わり、通常ページに対してレイヤーで表示されるようになりました。
非同期通信で管理画面を遷移していくので、体感的には表示がクィックになったように思います。
Drupalで最も重要なモジュールの一つ「Views」も、Drupal 7用の開発版が利用可能です。
ViewsのインターフェイスはDrupal 6のものと大きな違いはありません。機能的な部分はまだ触っていませんが、見た感じは若干項目が整頓されています。
Drupal 7になってCCKモジュールは本体に統合されました。フィールドのタイプも、ファイル、画像などが追加されて、より使いやすくなっています。
ノード参照、ユーザー参照が含まれていないようですが、これはベータ版だからかな?
ちなみに管理画面のレイヤー表示はコアモジュールの「Overlay」を無効にすることで、これまで通りの表示に戻すことができます。
レイヤー表示では上下左右に余白ができるので、小さなディスプレイでは使いにくいという場合には、こちらの方がよいかもしれません。
軽く触ってみた感じでは、管理画面のメニューが整頓されたり、レイヤー表示であったりと、サイトの更新においてずいぶん使いやすくなったと思います。
CCKが統合されたことで、これからDrupalを始める方にとっても、Drupalの拡張性の高さを直ぐに感じることができるのではないでしょうか。
現在はまだベータ版なので、バグのようなものも若干見られます。
しばらくはテーマ作成など取り組んでみて、2011年の前半あたりに正式版の登場を期待したいです。
drupal.org