作成日:2006/08/07
4B.3.2 HTMLをブラウザに出力する
index.php
require('MySmarty.class.php');
$objSmarty =& new MySmarty;
・・・
$objSmarty->assign('site_lang', $site_lang);
$objSmarty->assign('site_charset',$site_charset);
$objSmarty->assign('site_url', $site_url);
$objSmarty->assign('site_css', $site_css);
$objSmarty->assign('site_title', $site_title);
・・・
foreach($contents as $name)
{
$title = get_page_title( "$conts_dir/$name.html" );
$url = "$site_url/?p=$name";
$menu[] = array('title' => $title, 'url' => $url);
}
$objSmarty->assign('menu', $menu);
・・・
// 出力 //////////////////////////////////////////
header('Content-Type:text/html; charset='.$site_charset);
$objSmarty->display('theme.html');
まず最初に、先に作成したSmartyの派生クラスの定義をインクリードし、 Smartyオブジェクトを作成します。
require('MySmarty.class.php');
$objSmarty =& new MySmarty;
Smartyオブジェクトの準備ができらた、assign メソッドを使ってテンプレート変数をアサインしていきます。 変数アサインの方法はどんな型の変数(スカラー、配列、オブジェクト)でも同じです。
$objSmarty->assign('テンプレート変数名', 式);
// テンプレート変数名に$は不要です。
// 式は変数が指定される場合が多いですか、リテラルや定数などでも可です。
全てのテンプレート変数がアサインできたら、displayメソッドを使ってHTMLを作成しブラウザに表示します。
$objSmarty->display('theme.html');
displayメソッドの中で、テンプレート変数がテンプレートに結合されます。 テンプレートのコンパイルもこの時点で行われます。
