Esta web utiliza cookies propias y de terceros para su funcionamiento. ¿Aceptas? Leer más
Creación de plugins

Las vistas XML (XMLView)

Los controladores extendidos como ListController y EditController, utilizan archivos XML para definir las columnas, grupos, widgets y botones a mostrar en una pestaña. De esta forma podemos personalizar rápidamente un listado o formulario sin necesidad de editar PHP. Estos archivos se deben almacenar el la carpeta XMLView de su plugin.

Estructura del XML

El elemento raíz del archivo XML será view y se podrán incluir las siguientes etiquetas a modo de grupo:

  • columns: (obligatorio) Para definir la lista de campos que se visualizan en la vista.
  • rows: (opcional) Permite definir condiciones especiales para la filas, así como añadir botones a las vistas.
  • modals: (opcional) Define un formulario modal que será visualizado mediante la interacción con un botón definido en la vista.

Ejemplo: vista para ListController

Aquí podemos ver que se definen 3 columnas a mostrar, más un row status, que sirve para indicar los colores a aplicar.

<?xml version='1.0' encoding='UTF-8'?>
<view>
    <columns>
        <column name='code' order='100'>
            <widget type='text' fieldname='codigo' />
        </column>
        <column name='description' order='105'>
            <widget type='text' fieldname='descripcion' />
        </column>
        <column name='state' display='center' order='110'>
            <widget type='text'>
                <option color='success' fieldname='estado'>ABIERTO</option>
                <option color='warning' fieldname='estado'>CERRADO</option>
            </widget>
        </column>
    </columns>
    <rows>
        <row type='status'>
            <option color='info' fieldname='estado'>Pendiente</option>
            <option color='warning' fieldname='estado'>Parcial</option>
        </row>
    </rows>
</view>

Ejemplo: vista para EditController

Aquí podemos ver que se definen dos grupos de columnas para este formulario.

<?xml version='1.0' encoding='UTF-8'?>
<view>
    <columns>
        <group name='data' numcolumns='8' title='Identificación internacional' icon='fa-globe'>
            <column name='code' numcolumns='4' order='100'>
                <widget type='text' fieldname='codigo' />
            </column>
            <column name='description' numcolumns='8' order='105'>
                <widget type='text' fieldname='descripcion' />
            </column>
        </group>
        <group name='state' numcolumns='4'>
            <column name='state' display='center' order='100'>
                <widget type='text'>
                    <option color='success' fieldname='estado'>ABIERTO</option>
                    <option color='warning' fieldname='estado'>CERRADO</option>
                </widget>
            </column>
        </group>
    </columns>
</view>
Todavía más: