11. Variables globales
Introducción
Las variables globales son valores compartidos por todas las páginas y componentes del sitio: nombre del club, teléfono de contacto, dirección, redes sociales, IBAN oficial, NIF, eslogan, horarios de atención, etc. En lugar de duplicar estos datos en cada componente, se definen una sola vez aquí y se referencian en los templates con la sintaxis [VAR:nombre_variable].
Editar una variable global propaga el cambio a toda la web en cuanto se publica la siguiente petición, sin necesidad de tocar componente a componente. Esto es la forma más cómoda de mantener actualizados los datos corporativos que aparecen en cabeceras, pies, formularios de contacto y emails transaccionales.
Acceso rápido
- URL:
/variables - Menú: entrada Variables en el menú lateral del panel.
Pantalla principal
El listado muestra las variables organizadas por carpetas / grupos (cada carpeta se corresponde con un ámbito temático: datos del club, contacto, redes, configuración interna…). En este despliegue las carpetas visibles son:
- CLUB: nombre oficial, NIF, dirección, año de fundación, eslogan.
- CONTACTO: email general, teléfono, horario de atención, dirección postal.
- GENERAL: idioma por defecto, zona horaria, moneda, copyright.
- REDES SOCIALES: Facebook, Instagram, Twitter / X, YouTube, LinkedIn, TikTok.
- SYSTEM: variables internas usadas por el propio panel (URLs internas, claves de spritemap, etc.).
Cada fila del listado tiene:
- Nombre (slug interno, lo que se escribe entre corchetes en el template).
- Etiqueta (texto legible que se muestra en el panel).
- Valor actual (truncado si es largo, con un tooltip para ver el valor completo).
- Iconos de acción: editar, duplicar (clonar la variable con otro nombre), eliminar.
Tareas habituales
11.1 Ver el listado de variables
Para localizar una variable concreta o revisar todos los valores definidos:
- Entra en
/variables. - Las variables aparecen agrupadas por carpetas. Usa los encabezados de carpeta para localizar el bloque que te interesa.
- Si hay muchas variables, usa el buscador de la parte superior (busca por nombre o por etiqueta).
- Para ver el valor completo de una variable que aparece truncado, pasa el ratón por encima o toca la celda (en móvil).
11.2 Editar una variable
Para editar el valor de una variable existente:
- Localiza la variable en el listado (o búscala con el buscador).
- Pulsa el icono de editar (lápiz) en la fila correspondiente.
- Se abre la pantalla de edición con los siguientes campos:
- Nombre (slug interno, no editable: cambiar el nombre rompería todas las referencias
[VAR:nombre]de los templates). - Etiqueta (el nombre visible en el panel, editable).
- Valor (el contenido que se inyecta en la web: edita este campo).
- Descripción interna (opcional, ayuda a otros editores a entender para qué sirve la variable).
- Idioma (solo aparece si la variable es traducible; permite mantener un valor distinto por idioma).
- Nombre (slug interno, no editable: cambiar el nombre rompería todas las referencias
- Modifica el valor y pulsa Guardar.
- El cambio se publica al instante en la siguiente petición a la web. Si la web tiene caché activa, puede tardar unos minutos en verse reflejado (ver errores frecuentes).
11.3 Crear una variable nueva
Para añadir una variable global nueva (por ejemplo, el IBAN del club para incluirlo en los emails de pago):
- Entra en
/variables. - Pulsa Nueva variable en la parte superior.
- Rellena:
- Nombre: slug en minúsculas, sin espacios, sin acentos, separado por guiones bajos si hace falta (p. ej.
club_iban). Será la cadena que escribas dentro de los corchetes en el template. - Etiqueta: nombre legible para los editores (p. ej. IBAN oficial del club).
- Carpeta: grupo al que pertenece la variable (CLUB, CONTACTO, GENERAL…). Si no existe la carpeta que necesitas, créala desde la propia pantalla de alta.
- Valor: el contenido inicial.
- Descripción interna (opcional pero recomendado).
- Traducible: marca esta casilla si el valor debe variar según el idioma del visitante. Si la marcas, el sistema abrirá un campo de valor por cada idioma activo.
- Nombre: slug en minúsculas, sin espacios, sin acentos, separado por guiones bajos si hace falta (p. ej.
- Guarda. La variable aparece en su carpeta correspondiente, lista para ser referenciada en cualquier template con
[VAR:nombre].
11.4 Organizar por grupos / carpetas
Para mantener el listado ordenado cuando crece:
- Entra en
/variables. - Pulsa Gestionar carpetas (icono de carpeta en la cabecera del listado).
- Desde esa pantalla puedes:
- Crear una carpeta nueva (nombre, descripción, color identificativo opcional).
- Renombrar una carpeta existente.
- Reordenar las carpetas (el orden aquí es el orden de aparición en el listado).
- Eliminar una carpeta: las variables que contenía pasan a Sin carpeta, no se borran.
- Mover variables de una carpeta a otra.
- Guarda. El listado principal se reordena al instante.
Referencia técnica (webmasters)
Sintaxis de uso en templates
En los templates HTML de los componentes (ver sección 4) y en algunas plantillas de email, una variable se referencia con la siguiente sintaxis:
<a href="mailto:[VAR:club_email]">Escríbenos</a>
<img src="[VAR:base_path]/assets/media/spritemap.svg" alt="">
<p>© [VAR:club_anio_fundacion]–[VAR:club_anio_actual] [VAR:club_nombre]. Todos los derechos reservados.</p>
Reglas:
- El nombre va entre
[VAR:y], sin espacios, exactamente igual al slug definido. - Las variables se pueden combinar con texto literal y con HTML.
- Si la variable no existe (o se borró), el motor de plantillas la sustituye por una cadena vacía. No se lanza un error visible: la web se renderiza igualmente. Esto es fail-soft por diseño.
- Si la variable es traducible, el motor elige el valor del idioma del visitante; si no hay valor en ese idioma, se usa el del idioma por defecto.
Cómo se resuelven en runtime
El motor de plantillas sigue este orden de resolución para cada [VAR:nombre]:
- Busca la variable con el slug dado.
- Si la variable es traducible, intenta obtener el valor del idioma actual del visitante (detectado por URL, cookie o cabecera
Accept-Language; ver sección 12). - Si no hay valor en ese idioma, usa el valor del idioma por defecto configurado en
/languages. - Si la variable no existe, devuelve cadena vacía.
- El resultado se inyecta en el HTML sin escape automático. Por tanto, si el valor puede contener HTML (por ejemplo, un texto con negritas), se debe marcar explícitamente como raw en la definición de la variable; si no, se asume texto plano y los caracteres
<,>,&y"se escapan para evitar XSS.
Variables internas (SYSTEM)
La carpeta SYSTEM contiene variables que no deberían editar los editores de contenido, sino el equipo técnico:
base_path: ruta base del sitio (sirve para construir URLs absolutas a assets, spritemap, etc.).home_url: URL de la página de inicio.spritemap_url: ruta al fichero SVG con todos los iconos del sitio.api_base_url: URL del backendserv/(solo se usa en algunas plantillas JS).- Variables internas para los módulos activos (CRM, abonos, mailing, etc.).
Variables y SEO
Las variables globales también se pueden usar en campos de tipo meta de las páginas (título, descripción, OpenGraph). Esto permite tener, por ejemplo, un <title> distinto por idioma sin duplicar el template de cada página.
Errores frecuentes
- He cambiado una variable pero no se ve en la web: puede deberse a la caché de frontend (la web guarda una versión estática de la página durante minutos u horas). Espera a que expire la caché o purga la caché manualmente desde la sección de páginas. En local, basta con hacer un hard refresh (Ctrl + Shift + R) en el navegador.
- El marcador
[VAR:nombre]aparece tal cual en la web, sin reemplazarse: casi siempre es porque el nombre está mal escrito: revisa que coincide exactamente con el slug definido en el panel (mayúsculas, guiones bajos, sin espacios). El sistema distingue mayúsculas de minúsculas. - Una variable nueva que acabo de crear no se resuelve en una página ya publicada: confirma que la página está publicada (no en borrador) y que el template que la referencia es la versión guardada, no una copia en caché. Si la página usa preview, el marcador se queda visible.
- El valor sale vacío donde debería salir texto: revisa que la variable tiene valor en el idioma actual del visitante. Si es traducible y solo la has rellenado en un idioma, el resto de idiomas salen vacíos (con fallback al idioma por defecto; si tampoco hay valor allí, queda vacío).
- He borrado una variable por error y ahora un componente se ve raro: crea de nuevo la variable con el mismo slug y el valor original. Mientras tanto, el motor de plantillas la sustituye por cadena vacía, así que la web no se rompe: simplemente falta el dato en ese punto.
- La variable traducible muestra siempre el valor del idioma por defecto aunque cambies el idioma en el front: revisa que el visitante está navegando bajo un idioma activo (ver sección 12). Si el idioma no está activo, el front siempre usa el idioma por defecto.
- En el editor de una variable, el campo "Nombre" aparece en gris y no me deja escribir: es el comportamiento esperado: el nombre (slug) no se puede editar para proteger las referencias en templates. Si necesitas un nombre distinto, crea una variable nueva y migra las referencias.