drupal

Lanzamiento del módulo JSON Field Utils - JFU

Hace unos días subimos oficialmente el módulo de Drupal JSON Field Utils (JFU), aún en una versión alpha, aunque es complemente funcional y usable. Nuestra página web aprovecha las características de JFU en muchas secciones.

El módulo JFU permite utilizar un campo de tipo JSON para crear "componentes" reutilizables que pueden agregarse a diferentes contenidos. Tenemos componentes para banners, citas, imágenes con texto, acordeones, tabs, etc.

Para nosotros es un momento muy especial, porque es la primera vez que contribuímos con un proyecto completo a la comunidad Drupal, y al Software Libre en general. Anteriormente hemos contribuido con parches, documentación, organización de eventos, etc.

Pensamos que es el momento de comenzar a devolver a la comunidad todo lo que hemos obtenido con el uso de Drupal, sus módulos y diferentes software con licencia libre. Tenemos otros proyectos, como por ejemplo algunos temas, que esperamos podamos subirlos también a la página oficial de Drupal en un período relativamente corto.

 

¿Por qué creamos JFU?

Haciendo un poco de historia, la idea de crear este módulo surge después de usar paragraph para crear "componentes" y luego crear "features" (o equivalentes) para reutilizarlos en varios proyectos, incluyendo un sistema para automatizar la creación de sitios Drupal.

Todo parecía funcionar bien, hasta que los "features" y sus dependencias comenzó a convertirse en una pesadilla; por no mencionar cuando la actualización de un módulo que era necesario para el funcionamiento cambiaba su forma de configurar. Aún recuerdo ver como mi equipo padecía e invertía mucho tiempo arreglando los problemas que se producían.

El proyecto nos estaba dando más trabajo del que nos ahorraba y la sensación de frustración crecía con el tiempo. Así que en algún momento dejamos de usarlo. Drupal 8, en aquel momento, no estaba preparado para ser empleado de esta manera, tal vez ahora sea diferente.

Por otro lado nos interesaba tener una Interfaz de usuario bastante amigable y fácil de usar para un usuario no técnico. Así que comenzamos a pensar en alternativas para poder crear estos componentes que pudiéramos utilizar para implementar páginas con diferentes estructuras.

Este módulo es muy útil para crear páginas que muestran una combinación de información agrupada de diferente manera como por ejemplo una página de inicio o una página principal de una sección del sitio web.

 

Sabemos que hay otros proyectos que abordan este problema, como por ejemplo stacks o incluso gutenberg, aunque no llegamos a compatibilizar del todo con ellos (o tal vez no los entendemos bien).

Nuestra idea era diseñar una organización donde exisitiera una separación entre la presentación final (que podría ser personalizada según la necesidad) y la estructura de datos que guarde la información. Incluso el control para ingrear la información debería tener la capacidad de ser personalizada. Y esta idea viene de Drupal mismo, donde tenemos "widgets", la información se almacena de determinada manera, y por otra parte tenemos los "formaters" para el marcado html, css, y js.

Un "componente" JFU consta de 3 partes:

  1. Una estructura JSON que representa la información.
  2. Un widget para llenar la información.
  3. Una presentación para el usuario final.

Dentro de nuestros objetivos futuros está hacer que la creación de los componentes y widgets sea modular, para que se puedan agregar a placer. Un reto será tener una forma de tener un repositorio de estas soluciones para que esté al alcance de los que lo necesiten, estableciendo un sistema colaborativo efectivo. De la misma manera tener temas que soporten estos componentes, por lo menos los más comunes para que puedan utilizarse directamente apenas se descarguen. Tenemos ejemplos de temas que ya implementan personalizaciones a los componentes que vienen en el módulo.

Al crear este módulo tuvimos como objetivos:

  • Crear páginas complejas de manera sencilla, reutilizando "componentes"
  • Tener una interfaz de usuario amigable
  • Poder combinar diferente componentes en un solo contenido
  • Que los componentes dentro de una página sean ordenables
  • Reutilizar componentes entre proyectos
  • Facilidad para personalizar la presentación (theming) tanto en el marcado como el css.

Esperamos que les guste el módulo. Cualquier comentario, o ayuda será bienvenido.

 

Me pareció interesante el artículo

Deseo más información

O también puedes comunicarte con nosotros.

por whatsapp por whatsapp

Añadir nuevo comentario

Me gustaría más información sobre:

CAPTCHA