まず、全体レイアウトを定義するビューファイル fuel/app/views/template.php を作成します。
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <title><?php echo $title; ?></title> </head> <body> <div id="contents"> <?php echo $content; ?> </div> <div id="footer"> <?php echo $footer; ?> </div> </body> </html>
変数が $title , $content , $footer 3つあることがわかります。
この3つの変数にそれぞれ値をセットして1ページを作っていきます。
まずは $content の部分に読み込ませるビューファイル fuel/app/views/layout/index.php を作成します。
<h2><?php echo $title; ?></h2> <p>Hello, <php echo $user; ?>!</p>
次に $footer の部分に読み込ませるビューファイル fuel/app/views/footer.php を作成します。
<p>Copyright©2012</p>
ビューにはこの3つのファイルを作成します。
説明はあとにしてコントローラ fuel/app/classes/controller/layout.php を作成します。
<?php class Controller_Layout extends Controller_Template { public function action_index() { $data = array(); $data['user'] = 'hayashida'; $this->template->set_global('title', 'テンプレートコントローラの練習'); $this->template->content = View::forge('layout/index', $data); $this->template->footer = View::forge('layout/footer'); } }
こんなかんじになります。
てことで簡単に説明。
変数 $title は template.php と layout/index.php の2つのビューファイルで使われています。
複数のビューファイルで同じ変数を使用する場合 set_global メソッドを使います。
変数 $content と $footer はビューファイルの中身が入ります。
それぞれのビューファイルで変数を使用する場合は、第2引数に値を入れてあげます。
http://127.0.0.1/fuelphp/public/index.php/layout
また、今回はテンプレートとなるビューファイル fuel/app/views/template.php としましたがこれはデフォルトです。
もちろん変更することも可能です。
テンプレートファイルを変更する場合は
<php class Controller_Layout extends Controller_Template { public $template = 'template_view'; public function action_index() { } }こんなかんじで変数 $template にテンプレートファイルを指定するだけです。
ただ、テンプレートはコントローラ単位でしかできないみたいです。
(メソッド単位では変更できない)
参考までドキュメント
http://docs.fuelphp.com/general/controllers/template.html
0 件のコメント:
コメントを投稿