カテゴリー : CakePHP

CakePHPでBootstrapを使う方法

CakePHPでTwitter Bootstrapを簡単に使えるようにプラグインを作成された方がいらっしゃいます。

Twitter Bootstrapプラグインの導入方法をまとめました。

1.Twitter Bootstrap本体をダウンロードする

以下のURLから、bootstrap.zipをダウンロードし、解凍します。

http://twitter.github.com/bootstrap/

cssファイル、imgファイル、jsファイルをそれぞれwebroot以下のフォルダに配置します。

2.TwitterBootstrapプラグインをPlugin以下に配置します。

$ cd project
$ git clone git://github.com/slywalker/TwitterBootstrap.git app/Plugin/TwitterBootstrap

もしくは以下からzipファイルをダウンロードします。

https://github.com/slywalker/TwitterBootstrap

ダウンロードしたTwitterBootstrap-master.zipを解凍します。

解凍されたTwitterBootstrap-masterディレクトリをapp/Plugin以下にコピーします。

コピー後のディレクトリ名をTwitterBootstrapにします。

cd /your_app_path
cp TwitterBootstrap-master app/Plugin/TwitterBootstrap

3.プラグインを読み込むように設定します。

app/Config/bootstrap.phpの最後に以下を追加します。

CakePlugin::load(array('TwitterBootstrap'));

4.default.ctpファイルを配置します。

app/Plugin/TwitterBootstrap/View/Layouts/default.ctpをapp/View/Layouts/bootstrap.ctpとしてコピーします。

以下のサイトを参考にさせて頂きました。

otukutunの日記 – CakePHPのTwitter Bootstrapプラグインの使い方

ASKLIFE – CakePHPのデザインをTwitter Bootstrapに変更する作業のメモ

CakePHPのビューファイルで、URLを取得する方法

ビューファイルで、自分のURLを使いたい場合は、以下で取得できます。

$html->url();

第2引数を渡すこともできて、trueにすると、絶対パスを取得できます。

$html->url(’/’, true);

こうすると、コントローラー名までの絶対パスを取得できます。

その他、コントローラー名は $this->name

アクション名は $this->action

Webrootは $this->webroot

色々知っておくと便利ですね。

CakePHPでレイアウトファイルを変える方法

CakePHPでは、View/Layouts/default.ctp がレイアウトファイルとして使われます。

ログイン認証が必要なWEBシステムを構築する際に、ログイン画面は別のレイアウトにしたいというあるかと思います。
同じレイアウトを使用すると、ログインしていなくてもメニューが見えてしまうといった対策のためです。

まず、View/Layouts/以下に、レイアウトファイルを作成します。
例えば、View/Layouts/simple.ctpとします。
上記の例ですと、default.ctpからメニュー部分を削除したものになります。

次は、コントローラーで使用するレイアウトを以下のように指定します。

    public function login() {
        $this->layout = "simple";
        if ($this->request->is('post')) {
            if ($this->Auth->login()) {
                $this->redirect($this->Auth->redirect());
            } else {
                $this->Session->setFlash(__('Invalid username or password, try again'));
            }
        }
    }

$this->layout = “simple”;の部分で、レイアウトを指定しています。

CakePHPのPaginator->sortで、表示を変える方法

CakePHP 2.xのメモ。

index.ctp内で項目名を変更する方法。

項目名は、Paginator->sort(‘name’)で出力され、ソートできるようになっています。
このままだと、「Name」と表示されます。
これを日本語の「名前」と表示したい場合は、以下のようにします。

echo $this->Paginator->sort(‘name’, ‘名前’);

2つ目の引数に表示したいテキストを入力するだけ。