Ist diese If-else-Bedingung in Layout-XML möglich?

9

Ich möchte zwei verschiedene CSS anzeigen

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

In XML verwenden wir, ifconfigaber ich möchte zwei verschiedene CSS-Dateien wie diese hinzufügen

if (Marktplatz / allgemein / aktivieren == 1) {
     CSS-1
 } else {
     CSS-2 
 }}

Wie kann ich das machen?

Neuling
quelle

Antworten:

16

Es gibt keine "inverse Direktive" zu ifconfig. Sie können den Parameter name weiterhin mit einer Hilfsmethode wie der folgenden berechnen lassen:

XML:

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

helpernameist die Kennung, an die Sie normalerweise übergeben, Mage::helper($name)und helpermethoddie Methode, die Sie aufrufen möchten.

In der Hilfsklasse Ihres Moduls (Pseudocode):

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

Verwenden Sie diese Erweiterung für die erweiterte Konfigurationsoption

Sie können conditionTag für Tag verwenden

<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
quelle