ImpressCMS
SMARTYSET  > Smartyテンプレート > 変数

 3 - 2 : 変数

テンプレート変数は、先頭にドル記号 $ を付けます。
変数名には 同様に英数字およびアンダースコア(アンダーバー)が使用できます。
配列の参照には、インデックスの数値もしくはそれ以外の文字を使用できます。 オブジェクトのプロパティとメソッドの参照も同様です。
変数の殆どは、テンプレートを参照する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にて定義済みの変数はこのようなものがあります。

(1) フォームやクッキーなどのデータ
 
<{$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"の値を表示

(2)impressCMS本体で定義されている変数でよく使うもの
<{$todaymonth}> 今日の月
<{$todayday}> 今日の日
<{$todayyou}> 今日の曜日
<{$uname}>
<{$icms_uname}>
ログインしている人の名前
<{$xoops_meta_keywords}> metaキーワード
<{$xoops_meta_description}> metaデスクリプション
<{$icms_pagetitle}> ページタイトル
<{$icms_imageurl}> テーマ画像
<{$icms_sitename}> サイト名
<{$icms_isuser}> ログインユーザかどうか
<{$icms_isadmin}> 管理者かどうか
 

Draft : 5286 bytes - updated 2022-05-30 by 管理人