Questa condizione if-else è possibile nel layout XML?


9

Voglio visualizzare due diversi CSS

<action method="addItem" ifconfig="module/general/enable">
    <type>js_css</type>
    <name>module/app.css</name>
</action>

In XML usiamo ifconfigma voglio aggiungere due diversi file CSS come questo

if (marketplace / general / enable == 1) {
     css-1
 } altro {
     css-2 
 }

Come posso fare questo?

Risposte:


16

Non esiste una "direttiva inversa" per ifconfig. Puoi ancora avere il parametro name calcolato da un metodo helper come questo:

XML:

<action method="addItem">
    <type>js_css</type>
    <name helper="helpername/helpermethod"/>
</action>

helpernameè l'identificatore a cui si passa di solito Mage::helper($name)e helpermethodil metodo che si desidera chiamare.

Nella classe helper del tuo modulo (pseudo codice):

public function helpermethod()
{
    if ($enabled) {
        return 'module/app1.css';
    } else {
        return 'module/app2.css';
    }
}

4

usa questa estensione per l'opzione di configurazione estesa

puoi usare conditiontag per tag

<action method="addItem" ifconfig="module/general/enable" condition="1">
    <type>js_css</type>
    <name>module/app.css</name>
</action>
<action method="addItem" ifconfig="module/general/enable" condition="0">
    <type>js_css</type>
    <name>module/app1.css</name>
</action>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.