What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
PHP の予約変数 {$smarty}
を使用すると、
環境変数やリクエスト変数にアクセスすることができます。
アクセスできる内容について、以下に説明します。
$_GET
、$_POST
、
$_COOKIE
、$_SERVER
、
$_ENV
および $_SESSION
(
$request_vars_order
および
$request_use_auto_globals
を参照してください)
といった リクエスト変数
にアクセスするには、下の例のようにします。
Example 4.7. リクエスト変数の表示
{* ($_GET) http://www.example.com/index.php?page=foo から page の内容を表示 *} {$smarty.get.page} {* ($_POST['page']) フォームから送信された変数"page"の値を表示 *} {$smarty.post.page} {* クッキーに登録された"username"の値を表示 ($_COOKIE['username']) *} {$smarty.cookies.username} {* サーバ変数"SERVER_NAME"の値を表示 ($_SERVER['SERVER_NAME']) *} {$smarty.server.SERVER_NAME} {* 環境変数"PATH"の値を表示 *} {$smarty.env.PATH} {* phpのセッション変数"id"の値を表示 ($_SESSION['id']) *} {$smarty.session.id} {* get/post/cookies/server/envの値から、変数"username"の値を表示 *} {$smarty.request.username}
歴史的な理由から、{$SCRIPT_NAME}
には直接アクセスできます。
しかし、この値にアクセスする方法としては
{$smarty.server.SCRIPT_NAME}
が推奨されています。
<a href="{$SCRIPT_NAME}?page=smarty">click me</a> <a href="{$smarty.server.SCRIPT_NAME}?page=smarty">click me</a>
現在の タイムスタンプ
にアクセスするには {$smarty.now}
を使用します。
この値は、いわゆるエポック (1970年1月1日) からの経過秒数が含まれます。
また、これを直接
date_format
修飾子に渡して表示させることができます。実行するたびに
time()
がコールされることに注意しましょう。つまり、全体を処理するのに3秒かかるスクリプトがあったとして、
その最初と最後でそれぞれ $smarty.now
をコールすると、その値には2秒の差が生じます。
{* date_format 修飾子を用いて、現在の日付と時刻を表示します *} {$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
PHP 定数の値に直接アクセスできます。smarty 定数 も参照してください。
<?php // php で定義されている定数 define('MY_CONST_VAL','CHERRIES'); ?>
定数を出力するテンプレート
{$smarty.const.MY_CONST_VAL}
組み込みの
{capture}..{/capture}
関数でキャプチャしたテンプレートの出力にアクセスするには
{$smarty.capture}
変数を使用します。
詳細は
{capture}
のページを参照してください。
{$smarty.config}
変数は、読み込まれた
config 変数
を参照するのに使用できます。
{$smarty.config.foo}
は
{#foo#}
と同義です。詳細は
{config_load}
のページを参照してください。
{$smarty.section}
変数および
{$smarty.foreach}
変数は、
{section}
および
{foreach}
のループプロパティを参照するために使用します。
この中には .first
、.index
といった有用な値が含まれます。
現在処理中のテンプレートの名前を返します。
次の例の container.tpl
と、そこからインクルードしている
banner.tpl
の両方で
{$smarty.template}
を使用しています。
<b>Main container is {$smarty.template}</b> {include file='banner.tpl'}
出力は、このようになります。
<b>Main page is container.tpl</b> banner.tpl
このテンプレートをコンパイルした Smarty のバージョンを返します。
<div id="footer">Powered by Smarty {$smarty.version}</div>
これらの変数を使用して、左右のデリミタをそのまま表示します。
{ldelim}、{rdelim}
と同じです。
assigned variables および config variables も参照してください。