Almacenando arreglos en un campo

abril 26, 2016 Publicado en Software y Hardware
Etiquetas:

Seguramente ya se habrán topado con el widget para agregar correos a una cuenta. Esta solución es muy interesante desde la óptica de la usabilidad porque se trata de un campo que puede ampliarse conforme se vayan necesitando nuevos items, y si bien uno podría decir que con un relacionamiento es posible simular un elemento de este tipo, también es verdad que para el usuario es mejor tener un listado dentro de la declaración del módulo en vez de un subpanel. Así son los usuarios.

Es necesario también hacer diferencia entre dos tipos de variables. En el caso de los correos se trata de relaciones entre la cuenta y una línea de correo, y esto se hace para que un cambio en un correo se vea reflejado al instante en todos los beans (cuentas, compañías, oportunidades, contactos, etc). La otra opción es un campo encargado de almacenar un arreglo o una matriz y que guardará el dato como una cadena JSON.

Para el presente ejemplo supondremos que vamos a almacenar un arreglo como una cadena JSON dentro del campo.

Declaración de la variable y sus funciones de almacenamiento

El primer paso corresponde al proceso de agregar la variable a la declaración de campos del módulo, labor que se realiza modificando la información en el archivo vardefs correspondiente.

Por tratarse de un campo que almacena una lista de variables deberemos tener especial cuidado en distinguir entre <Variable_Plural> y <Variable>. Esto es necesario para facilitar la lectura del código una vez hayamos reemplazado los elementos con los nombres correspondientes.

/<directorio_crm>/modules/<Módulo>/vardefs.php

Agregamos en el arreglo fields la declaración de la variable.

El elemento interesante del anterior código es la línea function donde se declara un llamado a una función que será la encargada de atender la visualización del campo en las diferentes vistas del módulo. La misma línea declara que la respuesta de esta función deberá ser el código HTML de la vista.

Por lo general esta nueva función se agrega al final del archivo donde se declara el módulo. Agregue el siguiente código fuera de la declaración de la clase <Módulo> y al final del archivo.

Recuerde que la variable se guardará como un JSON así que debemos incluir el archivo de la clase JSON de SuiteCRM al inicio del archivo del módulo.

/<directorio_crm>/modules/<Módulo>/<Módulo>.php

El siguiente paso es extender el módulo para atender el almacenamiento de la variable. Este ajuste se hace en el mismo archivo donde agregamos la función que atiende la generación de las vistas del campo.

/<directorio_crm>/modules/<Módulo>/<Módulo>.php

Recuerde que si ya existe la función deberá agregar estas líneas según su criterio.

Capí­tulos: | 1 | 2 | 3 | Siguiente |

Escriba su comentario