it-swarm-es.tech

El diseño del módulo predeterminado no se respeta en el administrador (al agregar un módulo)

He notado que con Joomla 3, cualquier módulo que tenga más de un diseño (en la carpeta tmpl) y en el .xml tiene un diseño predeterminado elegido

ejemplo:

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

Al agregar el módulo en la administración, si voy a la pestaña Avanzado para verificar/seleccionar el "Diseño alternativo", ¡muestra el primer orden alfabético y no el predeterminado especificado en el xml!

¿Se debe esto a algún cambio en la forma en que debería definir el valor predeterminado?

¿O está relacionado con un error?

5
jackJoe

Basado en mirar el código de la modulelayout.php archivo, parece que es posible que tenga que prefacio el nombre del diseño con _:. Entonces su campo xml se vería así:

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

Veo en el archivo que establece una opción de selección como tal:

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

Supongo que esto se usa para distinguirlo de los archivos con exactamente el mismo nombre que están en la plantilla (como anulaciones). Estos irían precedidos del nombre de la plantilla, basado en este código:

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

No tengo idea si esto está realmente documentado en otro lugar. Pero para más diversión, intenta leer el código en libraries/legacy/form/field/modulelayout.php. No es muy loco. :)

3
David Fritsch