テンプレート変数は、先頭にドル記号 $ を付けます。
変数名には 同様に英数字およびアンダースコア(アンダーバー)が使用できます。
配列の参照には、インデックスの数値もしくはそれ以外の文字を使用できます。 オブジェクトのプロパティとメソッドの参照も同様です。
変数の殆どは、テンプレートを参照するPHPのプログラムで設定を行いますが、ImpressCMSでは標準で設定されている様々な変数があります。
通常変数は、PHPプログラムから与えられます。モジュールのPHPファイルですね。
PHPファイルの中で、
$xoopsTpl->assign('seminar_id', 125);
と書いてあれば、Smarty側では、 <{$seminar_id}>と書くと125が表示されることになります。
連想配列をassignした場合は、PHPとは書き方が異なります。
例えば
$myseminar['ID'] = 1;
$myseminar['name'] = "名前";
$xoopsTpl->assign('seminar', $myseminar);
となっていた場合は、
$myseminar['ID'] -> <{$myseminar.ID}>
$myseminar['name'] -> <{$myseminar.name}>
という形で、'.'ピリオド記号を使って表記します。
単なる配列(数字で管理)する場合は、同じような形で表記をします。
$mynum[0] = 125;
$mynum[1] = 225;
$mynum[2] = 300;
$xoopsTpl->assign('num', $num);
となっていた場合は、<{$num[1]}> という形で書きます。$num.1とは書きません。
オブジェクトの場合は、PHPと同じように "->"を使って表記します。
<{$foo}> | 単純な変数 (配列やオブジェクト以外) を表示します。 |
<{$foo[4]}> | 0から始まるインデックスを持った配列の5番目の要素を表示します。 |
<{$foo.bar}> | "bar"というキーに対応する配列の値を表示します。PHP の $foo['bar'] と同じです。 |
<{$foo->bar}> | オブジェクトのプロパティ "bar"を表示します。 |
<{$foo->bar()}> | オブジェクトのメソッド"bar"の返り値を表示します。 |
すでに、Smartyにて定義済みの変数はこのようなものがあります。
<{$smarty.get.myid}> | ($_GET) http://www.example.com/index.php?myid=5 から myid の内容を表示 |
<{$smarty.post.page}> | ($_POST) フォームからpostで送信された変数"page"の値を表示 |
<{$smarty.const.名前}> | PHPで、define関数で定義された定数を表示します。 |
<{$smarty.cookies.username}> | ($_COOKIE['username']) クッキーに登録された"username"の値を表示 |
<{$smarty.server.SERVER_NAME}> | サーバ変数のうちの"SERVER_NAME"の値を表示 |
<{$smarty.session.id}> | ($_SESSION['id']) phpのセッション変数のうちの"id"の値を表示 |
<{$todaymonth}> | 今日の月 |
<{$todayday}> | 今日の日 |
<{$todayyou}> | 今日の曜日 |
<{$uname}> <{$icms_uname}> |
ログインしている人の名前 |
<{$xoops_meta_keywords}> | metaキーワード |
<{$xoops_meta_description}> | metaデスクリプション |
<{$icms_pagetitle}> | ページタイトル |
<{$icms_imageurl}> | テーマ画像 |
<{$icms_sitename}> | サイト名 |
<{$icms_isuser}> | ログインユーザかどうか |
<{$icms_isadmin}> | 管理者かどうか |