Archive for 11月, 2007

CakePHP 静的なページの作成方法

2

CakePHP で静的なページを作成する方法です。
正確には CakePHP が出力するページなので静的ではなく動的なのですが、ページを簡単に作成することができます。

  • 出力するページをテンプレートとして /views/pages/ ディレクトリ以下に作成します。
  • 作成したテンプレートが hoge.thtml だとすると http://exmaple.com/pages/hoge でアクセスできます。

これだけで簡単にページを追加することができます。
コンテンツは静的なものですが、ビューなので例えばログイン状態によって表示を変更したりなどできますね。

なぜ /pages/hoge でアクセスできるかというと /app/config/routes.php
$Route->connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
と定義されているからです。
pages_controller.php/cake/libs/controller/pages_controller.php にあります。
上のルーティングで pages コントローラへのアクセスは全て pages コントローラの display アクションに渡されます。

また、/views/pages/hoge/foo/fuga.thtml というテンプレートを作成すると
http://example.com/pages/hoge/foo/fuga という URL でアクセスすることができます。

ちなみにページタイトルはテンプレートの名前が title タグに入れられます。
タイトルを指定する場合は
<? $this->pageTitle = 'ここにタイトルを指定する'; ?>
とビューでタイトルを指定します。

参考サイト:21 things I learned about CakePHP – Avatar Financial Group

Firefox タブを新しいウィンドウで開くTab Mix Plus のショートカット Ctrl + Shift+ N

1

Going My Way: 今開いているタブを新しいウィンドウで開く、Tab Mix Plus のショートカット Ctrl + Shift+ N

Going My Way さんで紹介されていた Firefox で現在開いているタブを新しいウィンドウで開くショートカットが紹介されていました。
Tax Mix Plus が必要ですが、Ctrl + Shift + N で出来ます。

これやりたいことが多かったです。
いつもCtrl + N で新しいウィンドウを開いてから URL をコピペしてました。。。

CakePHP select タグの選択していないときの状態を指定する

0

Cute CakePHP Trick of the Day – GenerateList Empty Slot In List | Web Development 2.0: Web Design, CakePHP, Javascript
で select タグの選択していないときの状態の値を指定する方法が書かれていますが、この方法は間違っています。

元のエントリのコメントでも指摘されていますが、ヘルパーのメソッドの使い方が違います。コードを実際に書いて検証してみれば、動かないのがすぐに分かります。

元の紹介されている方法はそもそも PHP の文法的におかしいのでそこは適当に修正して紹介します。(変数名に $ がなかったり、generateList() を出力をどこにも保存していないかったりします。)

コントローラで下記のように generateList でリストを取得して
$state_id = $this->State->generateList();
ビューで
echo $form->input($state_id, array('empty' => '--'));
と紹介されています。

CakePHP1.1 の Formヘルパーには input メソッドがないので CakePHP 1.2 でのやり方だと思いますが、実際に Form ヘルパーの input メソッドは
function input($fieldName, $options = array())
と定義されています。上記のように書くと

で、実際にはどう書けばいいかというと
echo $form->input('Model/Field', array('empty'=>'---', 'type'=>'select', 'options'=>$state_list));
または、
echo $form->select('Model/Field', $state_list, null, null, array('empty'=>'---'));
と書けば select タグの先頭に
<option value=''>---</option>
と入ります。

CakePHP1.1 では 「CakePHP HTMLヘルパーで select タグを表示する」のエントリで書いたように結構面倒だったので新しい Form ヘルパーは使いやすいですね。

10月に読んだ本

1

先月少なかった分、今月は結構読めました。

なぜ、週4時間働くだけでお金持ちになれるのか?

なぜ、週4時間働くだけでお金持ちになれるのか?

ダメなら、さっさとやめなさい! ~No.1になるための成功法則~

ダメなら、さっさとやめなさい! ~No.1になるための成功法則~

レバレッジ勉強法

レバレッジ勉強法

スタバではグランデを買え! ―価格と生活の経済学

スタバではグランデを買え! ―価格と生活の経済学

佐藤可士和の超整理術

佐藤可士和の超整理術

パーソナルブランディング 最強のビジネスツール「自分ブランド」を作り出す

パーソナルブランディング 最強のビジネスツール「自分ブランド」を作り出す

SAMURAI佐藤可士和のつくり方

SAMURAI佐藤可士和のつくり方

無理なく続けられる年収10倍アップ時間投資法

無理なく続けられる年収10倍アップ時間投資法

勝手サイト 先駆者が明かすケータイビジネスの新機軸 (ソフトバンク新書 52) (ソフトバンク新書 52)

勝手サイト 先駆者が明かすケータイビジネスの新機軸 (ソフトバンク新書 52) (ソフトバンク新書 52)

プログラマー現役続行 (技評SE新書 12)

プログラマー現役続行 (技評SE新書 12)

月に100万稼げるドロップシッピング

月に100万稼げるドロップシッピング

図解 SEO対策がわかる (知りたい!テクノロジー)

図解 SEO対策がわかる (知りたい!テクノロジー)

ネット未来地図 ポスト・グーグル時代 20の論点 (文春新書 595)

ネット未来地図 ポスト・グーグル時代 20の論点 (文春新書 595)

ケータイハックス-いつでもどこでも仕事術 [マイコミ新書] (マイコミ新書)

ケータイハックス-いつでもどこでも仕事術 [マイコミ新書] (マイコミ新書)

Go to Top