PHP の smarty テンプレートに関する質問です。テンプレート変数をテンプレート内で書き換え不能にするオプションはあるのでしょうか? テンプレートをレンダリングする前にテンプレート変数を設定して、それがテンプレートにはいってから変更されるのを防ぎたいのです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2007/08/31 16:23:08
  • 終了:2007/09/05 23:51:28

回答(2件)

id:oboist No.1

oboist回答回数4ベストアンサー獲得回数02007/08/31 17:03:16

ポイント35pt

http://www.google.com/

初参加なので、はずしていたらごめんなさい。

多分、PHPファイル内で変数を定義すれば、書き換わることはないと思うのですが・・・?

hoge.php

(中略)

/** ここでテンプレート変数を設定する */

$smarty->assign("test","hogehoge");

/** テンプレートを呼び出す */

$smarty->display("hoge.tpl");

?>

hoge.tpl

<body>

{$test}←ここにhoge.phpで設定した値「hogehoge」が入る

</body>

id:isogaya

<{assign var="test" value="別のデータ" }>

で変更できませんか?

2007/08/31 17:07:41
id:toyoshi No.2

toyoshi回答回数67ベストアンサー獲得回数12007/09/01 21:35:39

ポイント35pt

どうやってもPHPなので変更はできてしまいます。

しかし、相手が「PHPは読めない、でもSmartyの使い方は知っている」ということなら

テンプレートからassign関数を使えなくする(名前を変えてしまう)だけで十分だと思います。

http://smarty.m-takagi.org/language.custom.functions.html#langua...

id:isogaya

メソッドを上書きして違うものにするしかないみたいですね。

2007/09/02 20:38:36

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません