Czy ten warunek „if-else” jest możliwy w układzie XML?

9

Chcę wyświetlić dwa różne CSS

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

W XML używamy, ifconfigale chcę dodać dwa różne pliki CSS w ten sposób

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

W jaki sposób mogę to zrobić?

Nowicjusz
źródło

Odpowiedzi:

16

Nie ma „odwrotnej dyrektywy” dla ifconfig. Nadal możesz mieć parametr nazwy obliczony za pomocą metody pomocniczej, takiej jak ta:

XML:

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

helpernameto identyfikator, który zwykle przekazujesz, Mage::helper($name)i helpermethodmetoda, którą chcesz wywołać.

W klasie pomocniczej modułu (pseudo kod):

public function helpermethod()
{
    if ($enabled) {
        return 'module/app1.css';
    } else {
        return 'module/app2.css';
    }
}
mam08ixo
źródło
4

użyj tego rozszerzenia do rozszerzonej opcji konfiguracji

możesz użyć conditiontagu jako tagu

<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>
Qaisar Satti
źródło