デリミタの表示 {$smarty.ldelim}, {$smarty.rdelim}
テンプレートファイル内では静的コンテンツとSmartyで使用している変数などを区別するために、Smartyで使用する語句はデリミタで囲っています。デリミタはデフォルトでは「{」と「}」ですが、デリミタではなく静的コンテンツの一部として「{」と「}」を記述したい場合に {$smarty.ldelim} と {$smarty.rdelim} を使用できます。
{$smarty.ldelim}
{$smarty.rdelim}
テンプレートファイル内での記述例は次のようになります。
Smartyでのデリミタは {$smarty.ldelim} と {$smarty.rdelim} です。
{$smarty.ldelim}が「{」に該当し、{$smarty.rdelim}が「}」に該当します(デリミタがデフォルトのままの場合)。
テンプレートファイル内に「{」と「}」が文字として両方記述されていた場合や、「{」が記述された後にデリミタを使用したSmartyの変数などが現れた場合はエラーとなります。
なお同じ目的で利用されるものとして組み込み関数の{ldelim},{rdelim}や{literal}{/literal}などを使用することも可能です。こちらは別のページで詳しく見ていきます。
サンプルプログラム
では簡単なサンプルプログラムを作成して試してみます。
<?php
require_once('Smarty.class.php');
$smarty = new Smarty();
$smarty->template_dir = 'd:/smartysample/reserve/templates/';
$smarty->compile_dir = 'd:/smartysample/reserve/templates_c/';
$smarty->config_dir = 'd:/smartysample/reserve/configs/';
$smarty->cache_dir = 'd:/smartysample/reserve/cache/';
$smarty->assign('title', '予約変数のテスト');
$smarty->display('sample4-1.tpl');
?>
上記を「sample4-1.php」の名前で「(Apacheドキュメントルート)¥smarty¥reserve」に保存します。
{* Smarty reserve/sample4-1.tpl *}
<html>
<head>
<title>Smarty Test</title>
</head>
<body>
<h1>{$title}</h1>
<p>Smartyでのデリミタは {$smarty.ldelim} と {$smarty.rdelim} です。</p>
</body>
</html>
上記を「sample4-1.tpl」の名前で「D:¥smartysample¥reserve¥templates」に保存します。
そしてブラウザから「http://localhost/smarty/reserve/sample4-1.php」へアクセスして下さい。
( Written by Tatsuo Ikura )
PHPBook