it-swarm-eu.dev

Layout del modulo predefinito non rispettato nell'amministratore (quando si aggiunge un modulo)

Ho notato che con Joomla 3, qualsiasi modulo che ha più di un layout (nella cartella tmpl) e nel .xml ha un layout predefinito scelto

esempio:

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

Quando aggiungo il modulo nell'amministrazione, se vado nella scheda Avanzate per controllare/selezionare il "Layout alternativo", mostra il primo in ordine alfabetico e non quello predefinito specificato nell'xml!

Ciò è dovuto a qualche modifica al modo in cui dovrei definire l'impostazione predefinita?

O è legato a un bug?

5
jackJoe

Basato sull'esame del codice di modulelayout.php file, sembra che potresti dover prefigurare il nome del layout con _:. Quindi il tuo campo XML sarà simile al seguente:

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

Sto vedendo nel file che imposta un'opzione di selezione in quanto tale:

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

Questo è, suppongo, usato per distinguerlo dai file con lo stesso identico nome che si trovano nel modello (come sostituzioni). Quelli sarebbero preceduti dal nome del modello, basato su questo codice:

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

Non ho idea se questo sia effettivamente documentato altrove. Ma per maggiore divertimento, prova a leggere il codice in libraries/legacy/form/field/modulelayout.php. Non è troppo pazzo. :)

3
David Fritsch