Hero Image
- Sebastian Klus

Grav - Agregar formatos de fecha al Admin plugin

Cuando utiliza el Admin plugin de Grav, sucede que en la configuración del sistema, a la hora de seleccionar el formato para fechas largas o cortas, el formato que busca (especialmente cuando no es un sitio en inglés) no está disponible.

Peor: si lo configuró a mano, modificando el archivo user/config/system.yaml, pero después hizo otro ajuste en la configuración del sitio a través del Admin plugin, su modificación manual de fecha desaparece.

La causa es el Admin plugin como tal. Al igual que cuando hace una modificación manual, el Admin plugin guarda toda la configuración en el archivo user/config/system.yaml. Esto quiere decir que cuando hace una modificación directamente en el archivo system.yaml y posteriormente cambia algo a través del Admin plugin, ese último sobreescribe ese mismo archivo.

Además, va de la mano con que todas las opciones disponibles en la consola de administración se basan en lo que Grav llama "blueprints". Citando de la página de Documentación de Grav:

[Blueprints] are essentially the foundation of a theme or plugin’s interaction with the Grav admin. They tell Grav what a theme or plugin is, its name, where it can be found on GitHub, etc. It also generates the configuration options for that theme or plugin in the Grav admin.

Estos blueprints por default no incluyen necesariamente el formato de fecha que desea utilizar y por ende, no aparecen en las listas de selección para el formato largo o corto de fecha. Aún no aparecen, si los incluyó o modificó manualmente en el archivo system.yaml.

Sin embargo, es posible agregarlos a los blueprints para que aparezcan en la consula de administración, pueden ser seleccionados desde allí y por ende, son guardados permanentemente. Esto se logra de la siguiente manera:

  • Cree un archivo nuevo, llamado system.yaml en la carpeta user/blueprints/config/. Probablemente tendrá que creer estas carpetas; inicialmente tal vez no existan.
  • Agregue lo siguiente al archivo:
@extends:
    '@parent'

     form:
        fields:
            content:
                fields:
                    pages.dateformat.short:
                        options:
                            "d M Y": Date6

                    pages.dateformat.long:
                        options:
                            "d F Y, H:i": Date6

Esto agrega un registro nuevo a cada una de las listas de selección, tanto para el formato de fecha largo como para el corto, en el formato que especificó. Las letras para definir el formato provienen de la función date en PHP.

Créditos