it-swarm-id.com

Tata letak modul default tidak dihormati di admin (saat menambahkan modul)

Saya perhatikan bahwa dengan Joomla 3, modul apa pun yang memiliki lebih dari satu tata letak (dalam folder tmpl), dan dalam .xml memiliki tata letak default yang dipilih

contoh:

<field name="layout" type="modulelayout"
label="JFIELD_ALT_LAYOUT_LABEL"
description="JFIELD_ALT_MODULE_LAYOUT_DESC"
default="mylayout" />

Ketika menambahkan modul dalam administrasi, jika saya pergi ke tab Advanced untuk memeriksa/memilih "Tata Letak Alternatif", itu menunjukkan yang pertama menurut abjad dan bukan standar yang ditentukan dalam xml!

Apakah ini karena beberapa perubahan pada cara saya harus mendefinisikan default?

Atau apakah itu terkait dengan bug?

5
jackJoe

Berdasarkan melihat kode modulelayout.php file, sepertinya Anda mungkin harus mengawali nama tata letak dengan _:. Jadi bidang xml Anda akan terlihat seperti ini:

<field name="layout" type="modulelayout"
label="JFIELD_ALT_LAYOUT_LABEL"
description="JFIELD_ALT_MODULE_LAYOUT_DESC"
default="_:mylayout" />

Saya melihat dalam file yang menetapkan opsi pilih seperti itu:

$groups['_']['items'][] = JHtml::_('select.option', '_:' . $value, $text);

Ini, saya kira, digunakan untuk membedakannya dari file dengan nama yang sama persis dengan yang ada di template (sebagai menimpa). Itu akan diawali dengan nama templat, berdasarkan kode ini:

$groups[$template->element]['items'][] = JHtml::_('select.option', $template->element . ':' . $value, $text);

Saya tidak tahu apakah ini benar-benar didokumentasikan di tempat lain. Tetapi untuk lebih menyenangkan, coba teliti kode di libraries/legacy/form/field/modulelayout.php. Itu tidak terlalu gila. :)

3
David Fritsch