Abel Martínez

Plantillas - (Templates) en MODx

Editado el 03-06-2020 a las 02:14:33

En MODX, una Plantilla no está clasificada como un recurso . Técnicamente, una plantilla es un elemento . Solo tienen cuatro campos editables: nombre de la plantilla, descripción, categoría y código de plantilla, pero el único campo obligatorio es el nombre de la plantilla.

Una plantilla de MODX es algo así como un membrete de negocios. Proporciona un modelo sobre el que se construyen las páginas web.

Cuando un navegador solicita una página web, lo primero que hace MODX es ver qué plantilla está asociada con el recurso. MODX recupera la plantilla y procede a completarla reemplazando todas las etiquetas en la plantilla antes de entregar la página web terminada al navegador.

Una plantilla MODX realiza la función de modelo de página. Contiene la información básica que aparecerá repetida en varias páginas web diferentes. Por lo general, contiene el HTML básico para una página web (DOCTYPE, , , etc.), así como el banner en la parte superior de la página, el pie de página en la parte inferior y, a menudo, uno o más barras laterales. También puede contener otros objetos MODX, como veremos en la siguiente sección.

Al igual que el membrete de una empresa, la plantilla probablemente contendrá un encabezado y un pie de página (posiblemente con imágenes) que aparecerán en cada página que use la plantilla. A diferencia de un membrete, sin embargo, una plantilla MODX también puede contener otros objetos MODX. Puede contener un Título de documento (y / o un Título largo) y un menú. Esto cambiará en cada página, pero siempre aparecerán en el mismo lugar y con el mismo estilo para cada página que use esa la plantilla.

Crear una Plantilla

Para crear una plantilla, simplemente haz clic derecho en la carpeta "Plantillas" en el árbol de "Elementos", en el Administrador de MODX y selecciona "Plantilla Nueva". Si deseas crear una plantilla más abajo en la jerarquía de plantillas, puedes hacer clic derecho en una plantilla existente (o nombre de categoría si has creado categorías para tus plantillas) y seleccionar "Crear una nueva Plantilla aquí." Una tercera alternativa es hacer clic en una plantilla existente y seleccionar "Duplicar Plantilla". Este última método es una excelente opción si deseas crear una nueva versión de una plantilla existente, modificar la plantilla de otra persona, o simplemente hacer una copia de seguridad de una plantilla existente antes de jugar con ella.

Veamos una plantilla MODX relativamente simple:



<!doctype html>
<html lang="es">
<head>
<base href="[[++base_url]]">
<meta charset="[[++modx_charset]]">
<title>[[++site_name]] | [[*pagetitle]]</title>
<meta name="copyright" content="&amp;copy;[[*createdon:strtotime:date=`%Y`]]-[[++site_name]]">
<link href="[[++assets_url]]css/simple.css" rel="stylesheet" type="text/css"/>
</head>

<body>
<header>
  <div id="logo"> [[*longtitle]] </div>
 </header>

<main> [[*content]] </main>

<aside> [[$SideBar]] </aside>

<nav> [[Wayfinder?&amp;startId=`0`]] </nav>

<div id="news"> [[!getResources?&amp;parents=`22`&tpl=`MyGrTpl`]] </div>

<p><a href="[[~[[*id]]]]#">Volver arriba</a></p>

<p><a href="[[~[[++site_start]]]]">Página de inicio de MODX</a></p>

<footer> [[$Footer]] </footer>

</body>
</html>

Si estás familiarizado con HTML, te sonará la mayoría de esto. Las etiquetas HTML estándar están ahí ( <DOCTYPE>, <html>, <head>, <body>, <div> <a href> , etc.). Como ya sabrás, las etiquetas HTML tienen el formato: <TagName> . Puedes detectar las etiquetas de MODX Revolution porque todas tienen el formato: [[TagName]].

Si nos centramos en la sección <head>, encontramos varias etiquetas de MODX. En la primera declaración que encontramos, <base href="[[++base_url]]"> , vemos como el valor del atributo href se especifica con una etiqueta de MODX (empieza y finaliza con dobles corchetes: [[...]]). Es una etiqueta de Configuración de Sistema (indicado por el token ++). Esta etiqueta será reemplazada por el valor que tenga el variable de Configuración de Sistema base_url en MODX antes de enviar la página al navegador.

Vemos en esta plantilla que contiene alguna etiqueta de Configuración de Sistema más, en la cabecera ( [[++modx_charset]] , [[++site_name]] y [[++assets_url]] ) y en el último párrafo ( repite  Abel Martínez). Todas ellas serán sustituídas por sus respectivos valores, establecidos en Configuración del Sistema de Modx (tabla modx_system_settings en la base de datos).

Encontramos otro tipo de etiqueta con el formato <strong>[[*etiqueta]] </strong>(notese el asterisco), como son <fixedpre><strong></strong> [[*createdon:strtotime:date=`%Y`]], [[*longtitle]] o [[*content]]. Estas son etiquetas de recurso, y representan nombres de campo de la tabla de recursos en la base de datos (modx_site_content) o Varibles de Plantilla (TV ó Template Variables), y serán remplazadas por el contenido de sus respectivos campos en la tabla de la base de datos. En el caso de [[*createdon]] vemos que se completa con parámetros adicionales (seguidos a dos puntos). Esto son modificadores de salida, que se explicarán más adelante.

Otro tipo de etiqueta Modx que encontramos es [[$etiqueta]] (notese el símbolo del dolar). Estas representan a Chunks, por su nombre, como [[$SideBar]] o [[$Footer]] en el ejemplo. Serán sustituidas por cualquier "pedazo" de código html que hubiéramos guardado con los nombres SideBar o Footer respectivamente (ojo, sensible a mayúsculas/minúsculas). Si estos estuvieran vacíos o no existieran, no se mostraría nada.

Seguimos con el formato [[etiqueta]], (simplemente los corchetes, sin ningún token). Este tipo representa a los Snippets, y serán sustituídos por lo que sea que devuelva el snippet tras ejecutarse.

Encontramos también el formato de etiqueta [[~link]] . Esta sintaxis se para crear enlaces a páginas haciendo referencia a su identificación única (visible entre paréntesis junto al nombre de la página en el árbol de recursos).

Arbol de recursos de Modx

Estos enlaces no se romperán si las páginas se mueven o cambian de nombre. Puedes cambiar el esquema generado del enlace pasando el parámetro &schema (consulta la clave link_tag_scheme en Configuración deSistema de Modx). En el ejemplo vemos que se le están pasando otras etiquetas Modx como valor. Estas deberán devolver un valor numérico correspondiente con el Id de un recurso para que funcione. En el primer caso se le está pasando la etiqueta [[*id]], la cual devuelve el id del recurso actual, con lo que el link se creará a la própia página que estemos viendo. En el segundo caso, [[++site_start]] devuelve el Id del recurso selleccionado en Configuraciones de Sistema como página de inicio del sitio, con lo que creará un link a Inicio en todas las páginas que utilicen esta plantilla.

Nos falta por explicar el token !, como en [[!getResources]]. Este token no define un tipo de etiqueta, en realidad getResources es un snippet, que podría utilizarse como [[getResources]]. Este token se puede utilizar delante de cualquier tipo de etiqueta de Modx para indicar que no se guarde en la caché de Modx, esto es que sea procesado cada vez que se cargue la página. Más adelante profundizaremos sobre esto.

Comentarios 0

Añadir comentario





Vista previa

(anonymous) escribió::
29 de marzo del 2023, a las 21:04


Añadir un nuevo comentario:


Vista previa