Smarty の組み込み関数: Smarty にはいくつかの組み込み関数が付属しています。組み込み関数はテンプレート言語の一部です。ユーザーは、組み込み関数と同じ名前のカスタム関数を作成したり、組み込み関数を変更したりすることはできません。
Smarty の組み込み関数を以下に説明し、例を示します:
Smarty テンプレート エンジンの初期化ファイル init.inc.php と例で使用されるメイン ファイル Index.php
init.inc.php
Define('ROOT_PATH', dirname(__FILE__)) // Web サイトのルート ディレクトリを設定します
require ROOT_PATH.'/libs/Smarty.class.php' //Smarty テンプレート エンジンをロードします
;$_tpl = new Smarty() // インスタンス オブジェクトを作成します
$_tpl->template_dir = ROOT_PATH.'/tpl/' //テンプレートディレクトリを再指定します
;$_tpl->compile_dir = ROOT_PATH.'./com/' //コンパイルディレクトリを再指定します
;$_tpl->left_delimiter = '<{' //左区切り文字を再指定します
;$_tpl->right_delimiter = '}>' //正しい区切り文字を再指定します
;?>
インデックス.php
require 'init.inc.php' // テンプレート初期化ファイルを導入します
;グローバル $_tpl;
$_tpl->display('index.tpl') //テンプレートを紹介します?>
1.キャプチャ
プロパティ | を入力してください | 必要ですか | デフォルト値 | 説明 |
---|---|---|---|---|
名前 | 文字列 | いや | デフォルト | データ収集エリア名 |
割り当てる | 文字列 | いいえ | なし | [テスト対象]変数名に割り当てられたデータ収集領域はどこですか |
キャプチャ関数の機能は、テンプレートによって出力されたデータをページに出力するのではなく、キャプチャして変数に格納することです。{capture name="foo"} と {/capture} の間のデータはすべて In に格納されます。変数 $foo 。変数は name 属性で指定され、テンプレート内の $smarty.capture.foo を通じてアクセスされます。 name 属性が指定されていない場合、関数はデフォルトでパラメータとして「default」を使用します。{capture} はペアで指定する必要があります。つまり、関数はネストできません。以下のテンプレート ファイルの例を参照してください。
/tpl/index.tpl
<{キャプチャ名="foo"}>
デフォルトでは表示されないキャプチャ機能内の内容です。
<{/キャプチャ}>
<{$smarty.capture.foo}>
本文>
2.config_load
プロパティ | を入力してください | 必要ですか | デフォルト値 | 説明 |
---|---|---|---|---|
ファイル | 文字列 | はい | なし | インクルードする設定ファイルの名前 |
セクション | 文字列 | いいえ | なし | 設定ファイルに読み込む部分の名前 |
範囲 | 文字列 | いや | 地元 | データをロードするスコープ。値はローカル、親、またはグローバルである必要があります。ローカルは、変数のスコープが現在のテンプレートであることを示します。parent は、変数のスコープが現在のテンプレートおよび現在のテンプレートの親テンプレートであることを示します。現在のテンプレートを呼び出すテンプレート) .global は、この変数のスコープがすべてのテンプレートであることを示します。 |
グローバル | ブール値 | いいえ | いいえ | ロードされた変数がグローバルに表示されるかどうかを示します。scope=parent と同等です。 注: スコープ属性が指定されている場合、この属性を設定できますが、テンプレートは属性値を無視し、スコープ属性を基準として使用します。 |
config_load 関数は、設定ファイルから変数をロードするために使用されます。config_load 関数の使用方法については、「PHP での Smarty の使用 パート 2: テンプレート変数での設定ファイルの使用」を参照してください。
3.含む
プロパティ | を入力してください | 必要ですか | デフォルト値 | 説明 |
---|---|---|---|---|
ファイル | 文字列 | はい | なし | インクルードするテンプレートファイル名 |
割り当てる | 文字列 | いいえ | なし | この属性は、含めるテンプレートの出力を保持する変数を指定します |
[var...] | [var 型] | いいえ | なし | 含めるテンプレートに渡されるローカルパラメータは、含めるテンプレート内でのみ有効です |
include 関数は、現在のテンプレートに他のテンプレートを含めるために使用されます。現在のテンプレートの変数は、テンプレート リソースの場所を指定するファイル属性を指定する必要があります。 assign 属性が設定されている場合、この属性に対応する変数名が組み込まれるテンプレートの出力を保存するために使用されるため、組み込まれるテンプレートの出力は直接表示されません。以下の例をご覧ください:
/tpl/index.tpl
{include file="header.tpl"}
{* テンプレートの本文がここに入ります *}
{include file="footer.tpl"}
4. if、elseif、else
Smarty の if ステートメントは、PHP の if ステートメントと同じくらい柔軟で使いやすく、テンプレート エンジンに合わせていくつかの機能が追加されています。if は /if 句とペアで使用する必要があります。
次の条件修飾子を使用できます: eq、ne、neq、gt、lt、lte、le、gte、ge、iseven、isodd、isnoteven、isnotodd、not、mod、div by、even by、奇数 by、==、!=、>、<、<=、>=。これらの修飾子を使用する場合は、変数または定数とスペースで区切る必要があります。
これらの修飾子の意味は以下で説明されています:
条件修饰符 | 作用描述 |
エク | == |
ね | != |
ねく | != |
GT | > |
て | |
LTE | |
ル | |
ぐて | >= |
げ | >= |
均等です | 偶数ですか |
奇妙です | 奇数ですか |
均等ではありません | 偶数じゃないですか |
変じゃないよ | 奇数じゃないですか |
違います | != |
モッド | モデルさん募集中 |
による分割 | 割り切れるのか? |
までに | 商は偶数ですか? |
商は奇数ですか | |
と | |
または | |
括弧は優先順位を変更します |