2017-07-02 5 views
0

ich so etwas wie dieses:Smarty Variablen Verkettung

<select class="form-control" name="activ"> 
{if {$smarty.session.admin['access']['pages:list:activ']} == '1'} 
    <option value="1">{#L_YES#}</option> 
    <option value="0">{#L_NO#}</option> 
{else} 
    <option value="0">{#L_NO#}</option> 
{/if} 
</select> 

I ['pages:list:activ'] zu ['{$smarty.get.module}:list:activ']

Wie ändern müssen kann ich das tun?

Antwort

0

Sie haben hier mehrere Optionen ..

Zum einen wird PHP-Variablen nicht analysieren, wenn Sie einfache Anführungszeichen verwenden.

So

$a = 'string'; 
echo '$test with something'; 

Will Ausgang:

$test with something 

Aber wenn Sie verwenden:

$a = 'string'; 
echo "$test with something"; 

oder

echo "{$test} with something"; 

Es wird ausgegeben:

string with something 

Aber für Smarty das wird nicht funktionieren, wenn Sie . oder -> im Namen verwenden, da Sie Backticks um die Variable, wie diese (man beachte die doppelten Anführungszeichen um es) verwenden müssen werden :

{if {$smarty.session.admin['access']["`$smarty.get.module`:list:activ"]} == '1'} 

Für weitere Informationen siehe: Smarty Embedding Vars in Double Quotes


Sie können auch Katze Modifikator und die concatena zuweisen tek Wert zu einem var:

{assign var = "moduleList" value = $smarty.get.module|cat:":list:activ"} 
{if {$smarty.session.admin['access'][$moduleList]} == '1'} 
+0

Danke - es funktioniert :) – pat15

Verwandte Themen