Apakah kondisi if-else-mungkin dalam tata letak XML?

9

Saya ingin menampilkan dua CSS yang berbeda

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

Dalam XML kami menggunakan ifconfigtetapi saya ingin menambahkan dua file CSS yang berbeda seperti ini

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

Bagaimana saya bisa melakukan ini?

Pemula
sumber

Jawaban:

16

Tidak ada "inverse directive" untuk ifconfig. Anda masih dapat memiliki parameter nama yang dihitung dengan metode pembantu seperti ini:

XML:

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

helpernameadalah pengidentifikasi yang biasa Anda lewati Mage::helper($name)dan helpermethodmetode yang ingin Anda panggil.

Di kelas pembantu modul Anda (kode semu):

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

gunakan ekstensi ini untuk opsi konfigurasi tambahan

Anda dapat menggunakan conditiontag untuk 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>
Qaisar Satti
sumber