5

以下のような多くの変数を持つ行を含む「links.tpl」ファイルがあります

{assign var=link_main value="index.php"}    
{assign var=link_login value="?a=login"}  

{include file="file.tpl"} しかし、変数 を使用してこのファイルをhome.tplに含めると、{$link_main}, {$link_login} 含まれません

{assign var=link_main value="index.php"} はhome.tplに入れて動作しますが、含まれているファイルからではありません

scope=global含める変数と親に追加しようとしましたが、何も起こりませんでした

過去数時間、解決策を見つけようとしましたが、助けていただければ幸いです

4

2 に答える 2

4

あなたがしていることはうまくいくはずです。Mac でのテスト:

ファイル test/testInclude.tpl

{assign var='assignedVar' value='foo' scope='global'}

assignedVar in child is {$assignedVar}

<br/>

ファイル test/test.tpl

{include file='test/testInclude.tpl'}

{if isset($assignedVar)}
    assignedVar is set in parent {$assignedVar}
{else}
    assignedVar is not set in parent
{/if}

<br/>

出力

   assignedVar in child is foo 
   assignedVar is set in parent foo 

それは本当にうまくいくはずです - そうでない場合は、Smarty のインスタンスで何か本当に奇妙なことが起こっています。テンプレートがキャッシュされていて、変数が変更されたときに再生成されていない可能性がありますか?

明らかに何が問題なのかを把握する必要がありますが、他のすべてが失敗した場合は、別のキャプチャ機能を使用することもできます。

于 2012-12-11T11:02:23.597 に答える