だから私は asp.net がマスターページを行うのと同じように smarty を使いたいです。すべてのページに必要なドロップダウン メニューがあり、いくつかの動的データがあります。master.tpl ファイルを使用するすべての php スクリプトでこの関数を呼び出したり再現したりしたくありません。ファイルが使用され、さらに正しいスクリプトが実行されます。
私はこれを正しい方法で行うことを検討しているので、{php} などの非推奨のものは使用しません。
ありがとう。
だから私は asp.net がマスターページを行うのと同じように smarty を使いたいです。すべてのページに必要なドロップダウン メニューがあり、いくつかの動的データがあります。master.tpl ファイルを使用するすべての php スクリプトでこの関数を呼び出したり再現したりしたくありません。ファイルが使用され、さらに正しいスクリプトが実行されます。
私はこれを正しい方法で行うことを検討しているので、{php} などの非推奨のものは使用しません。
ありがとう。
だから、私はプラグインを書くことになりました(これは私が最初に思ったよりもはるかに簡単でした)、そして文字列を返すだけで、<li>
アイテムが含まれています、foreachループでこの関数を呼び出すことは可能でしょうか?私はそれを得ることができませんでした昨夜働くために。
別の smarty テンプレートをレンダリングし、構成ファイルに追加します
$smarty->assign('items',getmenuitems());
$menu = $smarty->fetch('mymenu.tpl');
$smarty->assign('dynamic_menu',$menu);
このようなコードを各ページで呼び出される構成ファイルなどに配置すると、必要なことが行われるはずです。次に、{$dynamic_menu} をメイン テンプレートに配置できます。
別のメモとして、スマートに別の区切り文字を使用すると、スクリプトなどに値する使用の苦痛が取り除かれることがわかります。
$smarty-> left_delimiter = '{[';
smarty コールを介して含めるだけです。{include file="path" name_of_variable=$value_of_variable}. PHPコードでは、すべてのページでデータが生成される追加のコードを実行するだけです.