Это условие if-else возможно в макете XML?


9

Я хочу отобразить два разных CSS

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

В XML мы используем, ifconfigно я хочу добавить два разных файла CSS, как это

if (marketplace / general / enable == 1) {
     CSS-1
 } еще {
     CSS-2 
 }

Как я могу это сделать?

Ответы:


16

Не существует «обратной директивы» к ifconfig. Вы все еще можете получить параметр name, рассчитанный вспомогательным методом, например так:

XML:

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

helpernameэто идентификатор, который вы обычно передаете, Mage::helper($name)и helpermethodметод, который вы хотите вызвать.

В классе помощника вашего модуля (псевдокод):

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

4

используйте это расширение для расширенной опции конфигурации

Вы можете использовать conditionтег для тега

<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>
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.