Cette condition if-else est-elle possible dans la mise en page XML?


9

Je veux afficher deux CSS différents

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

En XML, nous utilisons, ifconfigmais je veux ajouter deux fichiers CSS différents comme celui-ci

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

Comment puis-je faire ceci?

Réponses:


16

Il n'y a pas de "directive inverse" à ifconfig. Vous pouvez toujours faire calculer le paramètre de nom par une méthode d'assistance comme celle-ci:

XML:

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

helpernameest l'identifiant auquel vous passez habituellement Mage::helper($name)et helpermethodla méthode que vous souhaitez appeler.

Dans la classe d'assistance de votre module (pseudo-code):

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

4

utiliser cette extension pour l'option de configuration étendue

vous pouvez utiliser conditiontag pour 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>
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.