まず、全体レイアウトを定義するビューファイル 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 件のコメント:
コメントを投稿