2012-03-19 19 views
0

こんにちは、oxid-esalesのモジュールを開発しています。スマートなテンプレートを使用します。今私は特定の配列インデックスを取得したいと思います。私のコードはスマートテンプレートを使用して配列の特定のインデックスを取得する方法

[{foreach from=$language item=lang}] 
    <div id="stores"> 
    [{if !array_key_exists($lang->id,$language_array)}] 
    <img src="[{$join_image}]" /> <input type="radio" name="sys_lang" id="sys_lang" />[{$lang->name}] 
    [{else}] 
    <img src="[{$join_image}]" /> [{$lang->name}] [{$language_array[$lang->id]}] 
[{/if}] 
</div> 
[{/foreach}] 

のように見えるが、それは私が検索しましたし、すべてのsmaryで変数を取得するための適切な構文のみ{}括弧を入れているところ

Fatal error: Smarty error: [in froomerce_fconnect.tpl line 74]: syntax error: unrecognized tag: $language_array[$lang->id] (Smarty_Compiler.class.php, line 446) in D:\wamp\www\oxid_froomerce\core\smarty\Smarty.class.php on line 1093 

の致命的なエラーを作成しています。しかしCMSの酸化は私に変数のために[{}]を使用するように強制します。 はこの

[{$language_array[$lang->id]}] 

よろしく、 Awais Qarni

+0

参照してください、しかし、あなたが言うとき、正確にあなたが何を意味する "CMSのOXIDは[{}]'変数について '使用するように私を強制しますか"? Smartyは独自の構文とテンプレートを使用し、それに応じて独自のルールを使用します。プレースホルダ内の下位変数と割り当てられたオブジェクトのメソッドを呼び出します。 あなたのコードで '[{}]'を使用すると、何が期待されますか?あなたはそれを使う必要があると確信していますか? –

+0

@ v2pあなたの返事に感謝します。私たちは、私たちが変数の外側に '{}'を使って私たちのクラスによって送られたphp変数をエコーし​​たり、使用したいと思っています。しかし、酸化状態で私は '{}'を '[]'で囲む必要があります。これが私がエラーを受けている理由です –

答えて

1

は、デフォルトのSmartyの区切り文字を変更しようとするように、私は、配列の特定のインデックスの値を取得することができますどのようにすべてのボディを行います。たとえば :

$smarty->left_delimiter = '[{'; 
$smarty->right_delimiter = '}]'; 

は、私は、このようなCMSを知らないhttp://www.smarty.net/docsv2/en/language.escaping.tpl

関連する問題