Show Menu
TEMAS×

Plantillas de página

Al crear una página, debe seleccionar una plantilla. La plantilla de página se utiliza como base para la nueva página. Una plantilla define la estructura de la página resultante, todo el contenido inicial y los componentes que se pueden utilizar (propiedades de diseño). Esto tiene varias ventajas:
  • Las plantillas de página permiten a los autores especializados crear y editar plantillas .
    • Estos autores especializados se denominan autores de plantillas
    • Los autores de plantillas deben ser miembros del template-authors grupo.
  • Las plantillas de página mantienen una conexión dinámica con cualquier página creada a partir de ellas. Esto garantiza que cualquier cambio en la plantilla se refleje en las páginas mismas.
  • Las plantillas de página hacen que el componente de página sea más genérico para que el componente de página principal se pueda utilizar sin personalización.
Con las plantillas de página, los artículos que crean una página se aislan dentro de los componentes. Puede configurar las combinaciones necesarias de componentes en una interfaz de usuario, eliminando así la necesidad de desarrollar un nuevo componente de página para cada variación de página.
Este documento:
  • Proporciona información general sobre cómo crear una plantilla de página
  • Describe las tareas de administrador y desarrollador necesarias para crear plantillas editables
  • Describe los fundamentos técnicos de las plantillas editables
  • Describe cómo AEM evalúa la disponibilidad de una plantilla
Este documento supone que ya está familiarizado con la creación y edición de plantillas. Consulte el documento de creación Creación de plantillas de página, que detalla las funciones de las plantillas editables tal y como están expuestas al autor de la plantilla.
El tutorial WKND profundiza en cómo utilizar las plantillas de página mediante la implementación de un ejemplo y resulta muy útil para comprender cómo configurar una plantilla en un nuevo proyecto

Creating a New Template

La creación de plantillas de página se realiza principalmente con la consola de plantilla y el editor de plantillas. En esta sección se ofrece una visión general de este proceso y se ofrece una descripción de lo que ocurre a nivel técnico.
Al crear una nueva plantilla editable, realiza estas acciones:
  1. Cree una carpeta para las plantillas . Esto no es obligatorio, pero se recomienda una práctica recomendada.
  2. Seleccione un tipo de plantilla. Se copia para crear la definición de plantilla.
    Se proporciona una selección de tipos de plantilla lista para usar. También puede crear sus propios tipos de plantilla específicos del sitio si es necesario.
  3. Configure la estructura, las políticas de contenido, el contenido inicial y el diseño de la nueva plantilla.
    Estructura
    • La estructura permite definir componentes y contenido para la plantilla.
    • Los componentes definidos en la estructura de la plantilla no se pueden mover a una página resultante ni eliminarse de ninguna página resultante.
    • Si desea que los autores de la página puedan añadir y quitar componentes, añada un sistema de párrafos a la plantilla.
    • Los componentes pueden volver a desbloquearse y bloquearse para que pueda definir el contenido inicial.
    Para obtener más información sobre cómo define la estructura un autor de plantilla, consulte Creación de plantillas de página.
    Para obtener información técnica sobre la estructura, consulte Estructura en este documento.
    Políticas
    • Las políticas de contenido definen las propiedades de diseño de un componente.
      • Por ejemplo, los componentes disponibles o las dimensiones mínimas/máximas.
    • Esto se aplica a la plantilla (y a las páginas creadas con la plantilla).
    Para obtener más información sobre cómo define el autor de una plantilla las políticas, consulte Creación de plantillas de página.
    Para obtener información técnica sobre las políticas, consulte Políticas de contenido en este documento.
    Contenido inicial
    • El contenido inicial define el contenido que aparecerá cuando se cree una página por primera vez en función de la plantilla.
    • A continuación, los autores de las páginas pueden editar el contenido inicial.
    Para obtener más información sobre cómo define la estructura un autor de plantilla, consulte Creación de plantillas de página.
    Para obtener detalles técnicos sobre el contenido inicial, consulte Contenido Contenido inicial inicial en este documento.
    Diseño
    • Puede definir el diseño de la plantilla para una amplia gama de dispositivos.
    • El diseño interactivo para las plantillas funciona tal como lo hace para la creación de páginas.
    Para obtener más información sobre cómo define el diseño de plantilla un autor de plantilla, consulte Creación de plantillas de página.
    Para obtener información técnica sobre el diseño de la plantilla, consulte Diseño en este documento.
  4. Habilite la plantilla y, a continuación, déjela para árboles de contenido específicos.
    • Una plantilla puede habilitarse o deshabilitarse para que esté disponible o no esté disponible para los autores de la página.
    • Una plantilla puede estar disponible o no disponible para determinadas ramas de la página.
    Para obtener más información sobre cómo el autor de una plantilla habilita una plantilla, consulte Creación de plantillas de página.
    Para obtener información técnica sobre cómo habilitar una plantilla, consulte Activación y autorización de una plantilla para uso en este documento
  5. Utilícelo para crear páginas de contenido.
    • Al utilizar una plantilla para crear una página nueva, no existe ninguna diferencia visible ni ninguna indicación entre las plantillas estáticas y las editables.
    • Para el autor de la página, el proceso es transparente.
    Para obtener más información sobre cómo el autor de una página utiliza plantillas para crear una página, consulte Creación y organización de páginas .
    Para obtener información técnica sobre la creación de páginas con plantillas editables, consulte Páginas de contenido resultantes en este documento.
La biblioteca de cliente del editor asume la presencia de la cq.shared Área de nombres en las páginas de contenido y, si no se encuentra, se Uncaught TypeError: Cannot read property 'shared' of undefined producirá el error de JavaScript.
Todas las páginas de contenido de muestra contienen cq.shared , por lo que cualquier contenido basado en ellas incluye cq.shared . Sin embargo, si decide crear sus propias páginas de contenido desde cero sin basarlas en contenido de muestra, debe asegurarse de incluir la cq.shared Área de nombres.
No introduzca nunca en una plantilla información que deba internacionalizarse.

Carpetas de plantilla

Para organizar las plantillas, puede utilizar las siguientes carpetas:
  • global
  • Específico del sitio
Aunque puede anidar las carpetas, cuando el usuario las vista en la consola Plantillas , se presentan como una estructura plana.
En una instancia estándar de AEM, la carpeta global ya existe en la consola de plantillas. Contiene plantillas predeterminadas y actúa como alternativa en caso de que no se encuentre ninguna política ni ningún tipo de plantilla en la carpeta actual. Puede agregar las plantillas predeterminadas a esta carpeta o crear una nueva carpeta (recomendado).
Se recomienda crear una nueva carpeta para albergar las plantillas personalizadas y no utilizar la global carpeta.
Las carpetas deben ser creadas por un usuario con admin derechos.
Los tipos de plantilla y las directivas se heredan en todas las carpetas según el siguiente orden de prioridad:
  1. La carpeta actual
  2. Principal(s) de la carpeta actual
  3. /conf/global
  4. /apps
  5. /libs
Se crea una lista de todas las entradas permitidas. Si alguna configuración se superpone ( path / label ), solo se presenta al usuario la instancia más cercana a la carpeta actual.
Para crear una nueva carpeta, puede hacer lo siguiente:
  • Programáticamente o con CRXDE Lite
  • Uso del navegador de configuración

Uso de CRXDE Lite

  1. Se puede crear una nueva carpeta (en /conf) para su instancia mediante programación o con CRXDE Lite.
    Debe utilizarse la siguiente estructura:
    /conf
        <your-folder-name> [sling:Folder]
            settings [sling:Folder]
                wcm [cq:Page]
                    templates [cq:Page]
                    policies [cq:Page]
    
    
  2. A continuación, puede definir las siguientes propiedades en el nodo raíz de la carpeta:
    <your-folder-name> [sling:Folder]
    • Nombre: jcr:title
    • Tipo: String
    • Valor: Título (para la carpeta) que desea que aparezca en la consola Plantillas .
  3. Además de los permisos y privilegios de creación estándar (p. ej. content-authors ) ahora debe asignar grupos y definir los derechos de acceso requeridos (ACL) para que los autores puedan crear plantillas en la nueva carpeta.
    El grupo template-authors es el grupo predeterminado que se debe asignar. Consulte la sección ACL y grupos para obtener más información.

Uso del navegador de configuración

  1. Vaya a Navegación ​global -> Herramientas > Navegador ​de configuración.
    Las carpetas existentes se muestran a la izquierda, incluida la global carpeta.
  2. Haga clic en Crear .
  3. En el cuadro de diálogo Crear configuración se deben configurar los campos siguientes:
    • Título : Proporcionar un título para la carpeta de configuración
    • Plantillas editables: Haga clic para permitir plantillas editables dentro de esta carpeta
  4. Haga clic en Crear
En el navegador de configuración, puede editar la carpeta global y activar la opción Plantillas ​editables si desea crear plantillas dentro de esta carpeta, aunque no se recomienda hacerlo.

ACL y grupos

Una vez creadas las carpetas de plantilla (ya sea a través de CRXDE o con el navegador de configuración), las ACL deben definirse para los grupos adecuados para las carpetas de plantilla a fin de garantizar una seguridad adecuada.
Las carpetas de plantillas del tutorial Introducción al desarrollo de AEM Sites: Tutorial de WKND WKND pueden utilizarse como ejemplo.

El grupo de autores de plantillas

El template-authors grupo es el grupo que se utiliza para administrar el acceso a las plantillas y viene estándar con AEM, pero está vacío. Los usuarios deben agregarse al grupo para el proyecto o sitio.
El template-authors grupo es solo para usuarios que deben poder crear nuevas plantillas.
La edición de plantillas es muy potente y, si no se realiza correctamente, las plantillas existentes se pueden romper. Por lo tanto, esta función debe centrarse y incluir únicamente a usuarios cualificados.
En la tabla siguiente se detallan los permisos necesarios para editar plantillas.
Ruta Función/Grupo Permisos Descripción
/conf/< your-folder >/settings/wcm/templates Autores de plantilla leer, escribir, replicar Creadores de plantillas que crean, leen, actualizan, eliminan y replican plantillas en un espacio específico del sitio /conf
Usuario web anónimo read El usuario web anónimo debe leer las plantillas al procesar una página
Autores de contenido replicar replicateLos autores de contenido deben activar las plantillas de una página al activar una página
/conf/< your-folder >/settings/wcm/policies Template Author leer, escribir, replicar Creadores de plantillas que crean, leen, actualizan, eliminan y replican plantillas en un espacio específico del sitio /conf
Usuario Web anónimo read El usuario web anónimo debe leer las directivas al procesar una página
Autores de contenido replicar Los creadores de contenido deben activar las directivas de una plantilla de una página al activar una página
/conf/<site>/settings/template-types Autor de plantillas read El autor de la plantilla crea una nueva plantilla basada en uno de los tipos de plantilla predefinidos.
Usuario web anónimo ninguno El usuario web anónimo no debe acceder a los tipos de plantilla
Este template-authors grupo predeterminado solo cubre la configuración del proyecto, donde todos template-authors los miembros pueden acceder a todas las plantillas y crearlas. Para configuraciones más complejas, donde se necesitan varios grupos de autores de plantillas para separar el acceso a las plantillas, se deben crear más grupos de autores de plantillas personalizadas. Sin embargo, los permisos para los grupos de autores de plantillas seguirían siendo los mismos.

Template Type

Al crear una nueva plantilla, debe especificar un tipo de plantilla:
  • Los tipos de plantilla proporcionan plantillas para una plantilla. Al crear una nueva plantilla, se utiliza la estructura y el contenido inicial del tipo de plantilla seleccionado para crearlos en la nueva plantilla.
    • El tipo de plantilla se copia para crear la plantilla.
    • Una vez que se ha producido la copia, la única conexión entre la plantilla y el tipo de plantilla es una referencia estática con fines informativos.
  • Los tipos de plantilla le permiten definir:
    • Tipo de recurso del componente de página.
    • La directiva del nodo raíz, que define los componentes permitidos en el editor de plantillas.
    • Se recomienda definir los puntos de interrupción para la cuadrícula adaptable y la configuración del emulador móvil en el tipo de plantilla. Esto es opcional, ya que la configuración también se puede definir en la plantilla individual (consulte la sección Tipo de plantilla y Grupos de dispositivos móviles).
  • AEM ofrece una pequeña selección de tipos de plantilla predeterminados, como Página HTML5 y Página de formulario adaptable.
    • Se proporcionan ejemplos adicionales como parte del tutorial de WKND.
  • Los desarrolladores suelen definir los tipos de plantilla.
Los tipos de plantilla predeterminados se almacenan en:
  • /libs/settings/wcm/template-types
No debe cambiar nada en la /libs ruta. Esto se debe a que el contenido de /libs se puede sobrescribir en cualquier momento mediante una actualización a AEM.
Los tipos de plantilla específicos del sitio deben almacenarse en la ubicación comparable de:
  • /apps/settings/wcm/template-types
Las definiciones de los tipos de plantillas personalizadas deben almacenarse en carpetas definidas por el usuario (recomendadas) o bien en global . Por ejemplo:
  • /conf/<my-folder-01>/<my-folder-02>/settings/wcm/template-types
  • /conf/<my-folder>/settings/wcm/template-types
  • /conf/global/settings/wcm/template-types
Los tipos de plantilla deben respetar la estructura de carpetas correcta (por ejemplo: /settings/wcm/... ), de lo contrario no se encontrarán los tipos de plantilla.

Creación de tipos de plantilla

Si ha creado una plantilla que puede servir de base para otras plantillas, puede copiar esta plantilla como un tipo de plantilla.
  1. Cree una plantilla como lo haría con cualquier plantilla de página como se documenta aquí , que servirá como base para el tipo de plantilla.
  2. Con CRXDE Lite, copie la plantilla recién creada del templates nodo en el template-types nodo situado debajo de la carpeta de plantillas.
  3. Elimine la plantilla del templates nodo situado debajo de la carpeta de la plantilla.
  4. En la copia de la plantilla que se encuentra bajo el template-types nodo, elimine todas cq:template las propiedades y cq:templateType jcr:content .
También puede desarrollar su propio tipo de plantilla utilizando como base una plantilla editable de ejemplo, disponible en GitHub.
CÓDIGO DE GITHUB
Puede encontrar el código de esta página en GitHub

Definiciones de plantilla

Las definiciones de las plantillas editables se almacenan en carpetas definidas por el usuario (recomendadas) o de forma alternativa en global . Por ejemplo:
  • /conf/<my-folder>/settings/wcm/templates
  • /conf/<my-folder-01>/<my-folder-02>/settings/wcm/templates
  • /conf/global/settings/wcm/templates
El nodo raíz de la plantilla es del tipo cq:Template con una estructura de esqueleto de:
<template-name>
  initial
    jcr:content
      root
        <component>
        ...
        <component>
  jcr:content
    @property status
  policies
    jcr:content
      root
        @property cq:policy
        <component>
          @property cq:policy
        ...
        <component>
          @property cq:policy
  structure
    jcr:content
      root
        <component>
        ...
        <component>
      cq:responsive
        breakpoints
  thumbnail.png

Los elementos principales son:
  • <template-name>
    • [initial](#initial-content)
    • jcr:content
    • [structure](#structure)
    • [policies](#policies)
    • thumbnail.png

jcr:content

Este nodo contiene propiedades para la plantilla:
  • Nombre : jcr:title
  • Nombre : status
    • `` Tipo : String
    • Valor : draft , enabled o disabled

Estructura

Define la estructura de la página resultante:
  • Se combina con el contenido inicial ( /initial ) al crear una página nueva.
  • Los cambios realizados en la estructura se reflejarán en cualquier página creada con la plantilla.
  • El nodo root ( structure/jcr:content/root ) define la lista de los componentes que estarán disponibles en la página resultante.
    • Los componentes definidos en la estructura de plantilla no se pueden mover ni eliminar de ninguna página resultante.
    • Una vez desbloqueado el componente, la editable propiedad se establece en true .
    • Una vez desbloqueado un componente que ya contiene contenido, este contenido se moverá a la initial rama.
  • El cq:responsive nodo contiene definiciones para el diseño interactivo.

Contenido inicial

Define el contenido inicial que tendrá una página nueva al crearla:
  • Contiene un jcr:content nodo que se copia en cualquier página nueva.
  • Se combina con la estructura ( /structure ) al crear una página nueva.
  • Las páginas existentes no se actualizarán si se cambia el contenido inicial después de la creación.
  • El root nodo contiene una lista de componentes para definir lo que estará disponible en la página resultante.
  • Si se agrega contenido a un componente en modo de estructura y dicho componente se desbloquea posteriormente (o viceversa), este contenido se utiliza como contenido inicial.

Diseño

Content Policies

Las políticas de contenido definen las propiedades de diseño de un componente. Por ejemplo, los componentes disponibles o las dimensiones mínimas/máximas. Esto se aplica a la plantilla (y a las páginas creadas con la plantilla). Las directivas de contenido se pueden crear y seleccionar en el editor de plantillas.
  • La propiedad cq:policy , en el root nodo /conf/<your-folder>/settings/wcm/templates/<your-template>/policies/jcr:content/root Proporciona una referencia relativa a la directiva de contenido para el sistema de párrafos de la página.
  • La propiedad cq:policy , en los nodos explícitos del componente debajo de root , proporciona vínculos a las políticas de los componentes individuales.
  • Las definiciones de directiva reales se almacenan en: /conf/<your-folder>/settings/wcm/policies/wcm/foundation/components
Las rutas de las definiciones de políticas dependen de la ruta del componente. cq:policy contiene una referencia relativa a la configuración misma.

Políticas de la página

Las políticas de página permiten definir la directiva de contenido para la página (parsys principal), ya sea en la plantilla o en las páginas resultantes.

Habilitar y permitir el uso de una plantilla

  1. Habilitar la plantilla
    Para poder usar una plantilla, debe habilitarla:
    • Activación de la plantilla desde la consola Plantillas .
    • Definición de la propiedad status en el jcr:content nodo.
      • Por ejemplo, en:
        /conf/<your-folder>/settings/wcm/templates/<your-template>/jcr:content
      • Defina la propiedad:
        • Nombre: status
        • Tipo: Cadena
        • Value: enabled
  2. Plantillas permitidas
    /conf/<your-folder>/settings/wcm/templates/.*

Páginas de contenido resultantes

Páginas creadas a partir de plantillas editables:
  • Se crean con un subárbol que se combina desde structure y initial en la plantilla
  • Tenga referencias a la información contenida en la plantilla y el tipo de plantilla. Esto se logra con un jcr:content nodo con las propiedades:
    • cq:template - Proporciona la referencia dinámica a la plantilla real; permite que los cambios realizados en la plantilla se reflejen en las páginas reales.
    • cq:templateType - Proporciona una referencia al tipo de plantilla.
El diagrama anterior muestra cómo las plantillas, el contenido y los componentes se interrelacionan:
  • Controlador: /content/<my-site>/<my-page> : la página resultante que hace referencia a la plantilla. El contenido controla todo el proceso. De acuerdo con las definiciones, accede a la plantilla y los componentes correspondientes.
  • Configuración: /conf/<my-folder>/settings/wcm/templates/<my-template> : la plantilla y las directivas de contenido relacionadas definen la configuración de la página.
  • Modelo: paquetes OSGi: los paquetes OSGI implementan la funcionalidad.
  • Vista: /apps/<my-site>/components : tanto en los entornos de creación como de publicación, los componentes representan el contenido.
Al procesar una página:
  • Plantillas :
    • Se hará referencia a la cq:template propiedad de su jcr:content nodo para acceder a la plantilla que corresponde a esa página.
  • Componentes :
    • El componente de página combinará el structure/jcr:content árbol de la plantilla con el jcr:content árbol de la página.
      • El componente de página solo permitirá al autor editar los nodos de la estructura de plantilla que se han marcado como editables (así como cualquier elemento secundario).
      • Cuando se procesa un componente en una página, la ruta relativa de dicho componente se toma del jcr:content nodo; se buscará la misma ruta bajo el policies/jcr:content nodo de la plantilla.
        • La cq:policy propiedad de este nodo apunta a la directiva de contenido real (es decir, contiene la configuración de diseño para ese componente).
          • Esto le permite tener varias plantillas que reutilizan las mismas configuraciones de directiva de contenido.

Disponibilidad de la plantilla

Al crear una nueva página en la interfaz de administración del sitio, la lista de las plantillas disponibles depende de la ubicación de la nueva página y de las restricciones de colocación especificadas en cada plantilla.
Las siguientes propiedades determinan si T se permite utilizar una plantilla para que una nueva página se coloque como elemento secundario de la página P . Cada una de estas propiedades es una cadena de varios valores que contiene cero o más Expresiones regulares que se utilizan para hacer coincidir con rutas:
  • La cq:allowedTemplates propiedad del jcr:content subnodo de P o un antecesor de P .
  • La allowedPaths propiedad de T .
  • La allowedParents propiedad de T .
  • La allowedChildren propiedad de la plantilla de P .
La evaluación funciona de la siguiente manera:
  • La primera propiedad no vacía cq:allowedTemplates encontrada al ascender la jerarquía de páginas empezando por P se compara con la ruta de T . Si ninguno de los valores coincide, T se rechaza.
  • Si T tiene una propiedad no vacía allowedPaths , pero ninguno de los valores coincide con la ruta de P , T se rechaza.
  • Si las dos propiedades anteriores están vacías o no existen, T se rechaza a menos que pertenezcan a la misma aplicación que P . T pertenece a la misma aplicación que P si el nombre del segundo nivel de la ruta de T acceso es el mismo que el nombre del segundo nivel de la ruta de P . Por ejemplo, la plantilla /apps/geometrixx/templates/foo pertenece a la misma aplicación que la página /content/geometrixx .
  • Si T tiene una propiedad no vacía allowedParents , pero ninguno de los valores coincide con la ruta de P , T se rechaza.
  • Si la plantilla de P tiene una propiedad no vacía allowedChildren , pero ninguno de los valores coincide con la ruta de T , T se rechaza.
  • En todos los demás casos, T se permite.
El diagrama siguiente muestra el proceso de evaluación de la plantilla:
AEM oferta varias propiedades para controlar las plantillas permitidas en Sitios . Sin embargo, combinarlos puede llevar a reglas muy complejas que son difíciles de rastrear y administrar.
Por lo tanto, Adobe recomienda que el inicio sea sencillo, definiendo:
  • solo la cq:allowedTemplates propiedad
  • solo en la raíz del sitio
Para ver un ejemplo, consulte el contenido del tutorial Introducción al desarrollo de AEM Sites: Tutorial de WKND WKND: /content/wknd/jcr:content
Las propiedades allowedPaths , allowedParents y allowedChildren también se pueden colocar en las plantillas para definir reglas más sofisticadas. Sin embargo, cuando es posible, es mucho más sencillo definir más cq:allowedTemplates propiedades en las subsecciones del sitio si es necesario restringir aún más las plantillas permitidas.
Una ventaja adicional es que un autor puede actualizar las cq:allowedTemplates propiedades en la ficha Avanzadas de las Propiedades de la página . Las demás propiedades de plantilla no se pueden actualizar con la IU (estándar), por lo que sería necesario que un desarrollador mantuviera las reglas y una implementación de código para cada cambio.

Limitación de plantillas utilizadas en páginas secundarias

Para limitar qué plantillas se pueden utilizar para crear páginas secundarias en una página determinada, utilice la cq:allowedTemplates propiedad del jcr:content nodo de la página para especificar la lista de las plantillas que se permitirán como páginas secundarias. Cada valor de la lista debe ser una ruta absoluta a una plantilla para una página secundaria permitida, por ejemplo /apps/wknd/templates/page-content .
Puede utilizar la cq:allowedTemplates jcr:content propiedad en el nodo de la plantilla para que esta configuración se aplique a todas las páginas creadas recientemente que utilicen esta plantilla.
Si desea agregar más restricciones, por ejemplo en relación con la jerarquía de plantillas, puede utilizar las allowedParents/allowedChildren propiedades de la plantilla. A continuación, puede especificar explícitamente que las páginas creadas a partir de una plantilla T deben ser páginas principales/secundarias de páginas creadas a partir de una plantilla T.