PHP

Drupal 7でメニューをカスタムに表示する際のメモ。

2011.09.07 / Notes

通常、管理画面で作成したメニューはブロックを使うことで割り当てられた場所に配置ができますが、テンプレート内に直接追加することもできます。

上記では「menu-custom」という名前で作成したメニューを、テンプレートファイル「page.tpl.php」に追加することで、カスタムに表示することができます。

CakePHPで「home.ctp」のレイアウトを変更。

2011.05.25 / Notes

CakePHPでトップページの表示を変更するには「app/views/pages/home.ctp」を書き換えることで可能です。
この場合レイアウトは、自動的に「app/views/layouts/default.ctp」を利用します。

 

通常レイアウトの変更には、コントローラーのアクションに「$this->layout = ‘default’;」といった感じで、任意に変更ができるのですが、もともとコントローラーを作成しないトップページの場合では、簡単にレイアウトの変更ができません。

 

そのための解決方法として、トップページの表示を担うコントローラーをCakePHPコアのライブラリからコピーして、一部修正することにします。
はじめに、コアに含まれるライブラリ「cake/libs/controller/pages_controller.php」を、「app/controllers」にコピーします。

 

「pages_controller.php」内のdisplayアクションは次のようになっています。(バージョン1.3.8)

このdisplayアクションに、レイアウトを指定する記述を追加することで、トップページ用のレイアウトを変更できます。

上記の例では、ページのパスが「home(トップページ)」の場合に、「home」レイアウトを利用するようにしています。
後は「app/views/layouts」フォルダに、テンプレート「home.ctp」を作成すればレイアウトの変更が可能になります。

Drupal 7でユーザープロフィールの項目をノード内に出力。

2011.05.23 / Labs

Drupal 7から標準で実装されたユーザープロフィールの項目を、ノードの投稿者情報に関連づけて出力する方法です。

 

一般的にユーザーアカウントの名前には英数字のみで構成されるので、それとは別に日本語での名前を、ユーザープロフィールに「field_name」として追加しています。
Drupal 7 User Profile
ユーザープロフィールを出力する一番簡単な方法は、ビューを使うことですが、今回はテーマに組み込む方法で出力を行います。

 

テーマに変更を加えるのは次の2つです。

  1. 「template.php」にpreprocess関数を追加
  2. 「node.tpl.php」にユーザープロフィール変数の出力コードを追加

 

テーマフォルダの中に含まれている「template.php」ファイルに、次のようにpreprocess関数を追加します。

関数名の「THEMENAME」の部分は、実際のテーマ名に置き換えます。
ここでは投稿者の「uid」からユーザープロフィール「field_name」を参照して、「node.tpl.php」に渡す変数の配列に値を追加しています。

 

次に「node.tpl.php」にて、上記で渡された変数を出力します。

「node.tpl.php」ファイルを書き換え後は、「パフォーマンス」でキャッシュのクリアをしないと、うまく反映していないかもしれません。

整数を指定桁数に合わせて0で埋めるスクリプト。

2011.01.16 / Notes

PHP、JavaScript、ActionScriptそれぞれで、整数を指定桁数に合わせて0で埋めるスクリプトのメモです。
いずれの場合も一つ目の引数に対象となる整数、二つ目の引数に桁数を渡しています。
JavaScriptとActionScriptは型指定の有無の違いだけで、同じスクリプトで動作します。

 

PHP

 

JavaScript

 

ActionScript

WordPressのページ機能を活用。

2010.12.19 / Notes

WordPressには通常の投稿以外に、固定ページを作成するためのページ機能があります。
通常の利用では投稿した記事ページとあまり差がないようですが、テンプレートを切り替えることで、ページ機能の使い道の幅が広がります。

 

ページ機能で作成したページすべてに利用するためのテンプレートは「page.php」となりますが、各ページ個別にテンプレートを切り替えるには、ページスラッグを後に続けて「page-one.php」「page-two.php」となります。
WordPress
ページ機能テンプレートの本来の使い方は、WordPressの投稿フォームで入力した内容を自由なデザインで表示するためのものですが、WordPressでの入力内容を全く利用せずに、純粋なPHPページを表示するという使い方もあります。
WordPressで用意されているテンプレートタグ「the_title()」「the_content()」を使わないで、直接ページ機能テンプレートに内容を記述していきます。

 

例えば全画面フラッシュのページなど、投稿フォームでは作成が難しい場合や、他のプログラム用にXML出力ページに有効です。
もちろんページ機能テンプレート内ではWordPressのテンプレートタグも使えるので、より柔軟な静的サイトの作成に応用できます。