Plantillas de página page-templates
Al crear una página, debe seleccionar una plantilla. La plantilla de página se utiliza como base para la nueva página. La plantilla define la estructura de la página resultante, cualquier 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 grupo
template-authors
.
-
Las plantillas de página conservan 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 propias páginas.
-
Las plantillas de página hacen que el componente de página sea más genérico, por lo que el componente de página principal se puede utilizar sin personalización.
Con las plantillas de página, las partes que componen una página están aisladas dentro de los componentes. Puede configurar las combinaciones necesarias de componentes en una interfaz de usuario, lo que elimina la necesidad de desarrollar un nuevo componente de página para cada variación de página.
Este documento:
- Ofrece información general sobre la creación de una plantilla de página
- Describe las tareas de administrador/desarrollador necesarias para crear plantillas editables
- Describe los fundamentos técnicos de las plantillas editables
- AEM Describe cómo evalúa la disponibilidad de una plantilla de manera
Creación de una nueva plantilla creating-a-new-template
La creación de plantillas de página se realiza principalmente con la consola de plantillas y el editor de plantillas por un autor de plantillas. En esta sección se ofrece una descripción general de este proceso y se incluye una descripción de lo que sucede a nivel técnico.
Al crear una plantilla editable, debe hacer lo siguiente:
-
Crear una carpeta para las plantillas. Esto no es obligatorio, pero es una práctica recomendada.
-
Seleccione un tipo de plantilla. Esto se ha copiado para crear la definición de plantilla.
note note NOTE Se proporciona una selección de tipos de plantillas listas para usarse. También puede crear sus propios tipos de plantilla específicos del sitio si es necesario. -
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 eliminar de ninguna página resultante.
- Si desea que los autores de páginas puedan añadir y quitar componentes, agregue un sistema de párrafos a la plantilla.
- Los componentes se pueden volver a desbloquear y bloquear para permitirle definir el contenido inicial.
Para obtener más información sobre cómo define la estructura un autor de plantillas, consulte Creación de plantillas de página.
Para obtener detalles técnicos de 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.
-
Se aplican a la plantilla (y a las páginas creadas con la plantilla).
Para obtener más información sobre cómo define las directivas un autor de plantillas, consulte Creación de plantillas de página.
Para obtener detalles técnicos de las directivas, 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.
- Los autores de la página pueden editar el contenido inicial.
Para obtener más información sobre cómo define la estructura un autor de plantillas, consulte Creación de plantillas de página.
Para obtener detalles técnicos sobre el contenido inicial, consulte Contenido 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 igual que para la creación de páginas.
Para obtener más información sobre cómo define el diseño de la plantilla un autor de plantillas, consulte Creación de plantillas de página.
Para obtener detalles técnicos sobre el diseño de la plantilla, consulte Diseño en este documento.
-
Habilite la plantilla y déjela para árboles de contenido específicos.
- Una plantilla se puede habilitar o deshabilitar para que esté disponible o no disponible para los autores de páginas.
- Una plantilla puede estar disponible o no disponible para determinadas ramas de la página.
Para obtener más información sobre cómo un autor de plantillas habilita una plantilla, consulte Creación de plantillas de página.
Para obtener detalles técnicos sobre cómo habilitar una plantilla, consulte Habilitar y permitir una plantillae en este documento
-
Úselo para crear páginas de contenido.
- Cuando se utiliza una plantilla para crear una página, no hay ninguna diferencia visible ni indicación entre las plantillas estáticas y editables.
- Para el autor de la página, el proceso es transparente.
Para obtener más información sobre cómo un autor de páginas usa plantillas para crear una página, consulte Creación y organización de páginas.
Para obtener detalles técnicos sobre la creación de páginas con plantillas editables, consulte Páginas de contenido resultante en este documento.
cq.shared
en las páginas de contenido y, si no existe, se producirá el error de JavaScript Uncaught TypeError: Cannot read property 'shared' of undefined
.cq.shared
, por lo que cualquier contenido basado en ellas incluye automáticamente cq.shared
. Sin embargo, si decide crear sus propias páginas de contenido desde cero sin basarlas en contenido de ejemplo, debe asegurarse de incluir el área de nombres cq.shared
.Carpetas de plantilla template-folders
Para organizar las plantillas, puede utilizar las siguientes carpetas:
global
- Específico del sitio
AEM En una instancia estándar, 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 carpeta (recomendado).
global
.admin
derechos.Los tipos de plantilla y las directivas se heredan en todas las carpetas según el siguiente orden de prioridad:
- La carpeta actual
- Página principal de la carpeta actual
/conf/global
/apps
/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 carpeta, puede hacer lo siguiente:
- Mediante programación o con el CRXDE Lite
- Usando el Explorador de configuración
Uso del CRXDE Lite using-crxde-lite
-
Se puede crear una nueva carpeta (en /conf) para su instancia mediante programación o con el CRXDE Lite.
Se debe utilizar la siguiente estructura:
code language-xml /conf <your-folder-name> [sling:Folder] settings [sling:Folder] wcm [cq:Page] templates [cq:Page] policies [cq:Page]
-
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 (de la carpeta) que desea que aparezca en la consola Plantillas.
- Nombre:
-
Además de los permisos y privilegios de creación estándar (por ejemplo,
content-authors
), ahora debe asignar grupos y definir los derechos de acceso (ACL) necesarios 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 explorador de configuración using-the-configuration-browser
-
Vaya a Navegación global > Herramientas > Explorador de configuración.
Las carpetas existentes se muestran a la izquierda, incluida la carpeta
global
. -
Haga clic en Crear.
-
En el cuadro de diálogo Crear configuración deben configurarse los siguientes campos:
- Título: proporcione un título para la carpeta de configuración
- Plantillas editables: Marque esta opción para permitir plantillas editables dentro de esta carpeta
-
Haga clic en Crear
ACL y grupos acls-and-groups
Una vez creadas las carpetas de plantilla (ya sea mediante CRXDE o con el Explorador de configuración), se deben definir ACL para los grupos adecuados para las carpetas de plantilla para garantizar la seguridad adecuada.
Las carpetas de plantillas para el tutorial de WKND se pueden usar como ejemplo.
El grupo de autores de plantillas the-template-authors-group
AEM El grupo template-authors
es el grupo que se usa para administrar el acceso a las plantillas y viene de serie con las plantillas, pero está vacío. Los usuarios deben agregarse al grupo para el proyecto o sitio.
template-authors
es exclusivo para usuarios que deben poder crear nuevas plantillas.La siguiente tabla detalla los permisos necesarios para editar plantillas.
Este grupo predeterminado de template-authors
solo cubre las configuraciones de proyecto, en las que se permite a todos los miembros de template-authors
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 grupos de autores de plantillas más personalizados. Sin embargo, los permisos para los grupos de autores de plantillas seguirían siendo los mismos.
Tipo de plantilla template-type
Al crear una plantilla, debe especificar un tipo de plantilla:
-
Los tipos de plantilla proporcionan plantillas para una plantilla de forma eficaz. Al crear una plantilla, se utiliza la estructura y el contenido inicial del tipo de plantilla seleccionado para crear la nueva plantilla.
- El tipo de plantilla se copia para crearla.
- Una vez realizada 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 permiten definir lo siguiente:
- El 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 en el tipo de plantilla.
-
AEM proporciona una pequeña selección de tipos de plantillas listas para usar, como Página de HTML5 y Página de formulario adaptable.
- Se proporcionan ejemplos adicionales como parte del tutorial de WKND.
-
Los desarrolladores suelen definir los tipos de plantillas.
Los tipos de plantilla predeterminados se almacenan en:
/libs/settings/wcm/template-types
/libs
. AEM Esto se debe a que el contenido de /libs
se puede sobrescribir en cualquier momento mediante una actualización de la dirección de correo electrónico de la dirección de correo electrónico de.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 (recomendado) o, alternativamente, 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
/settings/wcm/...
); de lo contrario, no se encontrarán los tipos de plantilla.Creación de tipos de plantilla creating-template-types
Si ha creado una plantilla que puede servir de base a otras plantillas, puede copiar esta plantilla como un tipo de plantilla.
- Cree una plantilla como lo haría con cualquier plantilla de página. Consulte Creación de plantillas de página. Esto servirá de base para el tipo de plantilla.
- Con el CRXDE Lite, copie la plantilla creada desde el nodo
templates
al nodotemplate-types
en la carpeta de plantillas. - Elimine la plantilla del nodo
templates
en la carpeta de plantillas. - En la copia de la plantilla que se encuentra bajo el nodo
template-types
, elimine todas las propiedadescq:template
ycq:templateType
de todos los nodosjcr:content
.
También puede desarrollar su propio tipo de plantilla con una plantilla editable de ejemplo como base, disponible en GitHub.
CÓDIGO EN GITHUB
Puede encontrar el código de esta página en GitHub
- Abrir proyecto aem-sites-example-custom-template-type en GitHub
- Descargar el proyecto como archivo ZIP
Definiciones de plantilla template-definitions
Las definiciones para plantillas editables se almacenan en carpetas definidas por el usuario (recomendado) o, alternativamente, 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 básica 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:contenido jcr-content
Este nodo contiene propiedades para la plantilla:
-
Nombre:
jcr:title
-
Nombre:
status
- "Tipo:
String
- Valor:
draft
,enabled
odisabled
- "Tipo:
Estructura structure
Define la estructura de la página resultante:
-
Se combina con el contenido inicial (
/initial
) al crear una página. -
Los cambios realizados en la estructura se reflejan en cualquier página creada con la plantilla.
-
El nodo
root
(structure/jcr:content/root
) define la lista de componentes disponibles en la página resultante.- Los componentes definidos en la estructura de la plantilla no se pueden mover ni eliminar de ninguna página resultante.
- Después de desbloquear un componente, la propiedad
editable
se establece entrue
. - Después de desbloquear un componente que ya contiene contenido, este contenido se mueve a la rama
initial
.
-
El nodo
cq:responsive
contiene definiciones para el diseño interactivo.
Contenido inicial initial-content
Define el contenido inicial que tendrá una nueva página al crearla:
- Contiene un nodo
jcr:content
que se copia en las páginas nuevas. - Se combina con la estructura (
/structure
) al crear una página. - Las páginas existentes no se actualizarán si el contenido inicial cambia después de la creación.
- El nodo
root
contiene una lista de componentes para definir lo que está disponible en la página resultante. - Si el contenido se añade a un componente en modo de estructura y dicho componente se desbloquea posteriormente (o a la inversa), este contenido se utiliza como contenido inicial.
Diseño layout
Al editar una plantilla, puede definir el diseño, que usa diseño interactivo estándar.
Políticas de contenido 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. Se aplican a la plantilla (y a las páginas creadas con la plantilla). Las políticas de contenido se pueden crear y seleccionar en el editor de plantillas.
-
La propiedad
cq:policy
, en el nodoroot
/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 de componente enroot
, proporciona vínculos a las directivas de los componentes individuales. -
Las definiciones de directivas reales se almacenan en:
/conf/<your-folder>/settings/wcm/policies/wcm/foundation/components
cq:policy
contiene una referencia relativa a la propia configuración.Políticas de la página page-policies
Las directivas de página le permiten definir la directiva de contenido para la página (parsys principal), en la plantilla o en las páginas resultantes.
Habilitar y permitir el uso de una plantilla enabling-and-allowing-a-template-for-use
-
Habilitar la plantilla
Para poder utilizar una plantilla, debe habilitarse mediante lo siguiente:
-
Habilitando la plantilla desde la consola Plantillas.
-
Estableciendo la propiedad status en el nodo
jcr:content
.-
Por ejemplo, en:
/conf/<your-folder>/settings/wcm/templates/<your-template>/jcr:content
-
Defina la propiedad:
- Nombre: estado
- Tipo: cadena
- Valor:
enabled
-
-
-
Plantillas permitidas
-
Defina las rutas de plantilla permitidas en Propiedades de página de la página o página raíz apropiada de una subrama.
-
Establezca la propiedad:
cq:allowedTemplates
En el nodojcr:content
de la rama requerida.
Por ejemplo, con un valor de:
/conf/<your-folder>/settings/wcm/templates/.*
-
Páginas de contenido resultantes resultant-content-pages
Páginas creadas a partir de plantillas editables:
-
Se crean con un subárbol que se combina de
structure
yinitial
en la plantilla -
Tener referencias a información contenida en la plantilla y el tipo de plantilla. Esto se logra con un nodo
jcr:content
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 se interrelacionan las plantillas, el contenido y los componentes:
- Controlador -
/content/<my-site>/<my-page>
- La página resultante que hace referencia a la plantilla. El contenido controla todo el proceso. Según las definiciones, accede a la plantilla y a los componentes adecuados. - 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.
- Ver -
/apps/<my-site>/components
- Tanto en el entorno de creación como de publicación, los componentes procesan el contenido.
Al procesar una página:
-
Plantillas:
- Se hace referencia a la propiedad
cq:template
de su nodojcr:content
para obtener acceso a la plantilla que corresponde a esa página.
- Se hace referencia a la propiedad
-
Componentes:
-
El componente de página combinará el árbol
structure/jcr:content
de la plantilla con el árboljcr:content
de la página.- El componente de página solo permitirá al autor editar los nodos de la estructura de la plantilla que se han marcado como editables (y los secundarios).
- Al procesar un componente en una página, la ruta relativa de ese componente se toma del nodo
jcr:content
; a continuación, se buscará la misma ruta de acceso en el nodopolicies/jcr:content
de la plantilla.- La propiedad
cq:policy
de este nodo señala a la directiva de contenido real (es decir, contiene la configuración de diseño para ese componente).- Esto permite tener varias plantillas que reutilizan las mismas configuraciones de directiva de contenido.
- La propiedad
-
Disponibilidad de la plantilla template-availability
Al crear una página en la interfaz de administración del sitio, la lista de 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 se permite utilizar una plantilla T
para colocar una nueva página 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 la coincidencia con rutas:
-
La propiedad
cq:allowedTemplates
del subnodojcr:content
deP
o un antecesor deP
. -
La propiedad
allowedPaths
deT
. -
La propiedad
allowedParents
deT
. -
La propiedad
allowedChildren
de la plantilla deP
.
La evaluación funciona de la siguiente manera:
-
Se comparó la primera propiedad
cq:allowedTemplates
que no está vacía al ascender la jerarquía de páginas que comienza porP
con la ruta de acceso deT
. Si ninguno de los valores coincide,T
se rechaza. -
Si
T
tiene una propiedadallowedPaths
que no está vacía, pero ninguno de los valores coincide con la ruta de acceso deP
, se rechazaT
. -
Si ambas propiedades están vacías o no existen, se rechaza
T
a menos que pertenezca a la misma aplicación queP
.T
pertenece a la misma aplicación queP
solo si el nombre del segundo nivel de la ruta de acceso deT
es el mismo que el nombre del segundo nivel de la ruta de acceso deP
. Por ejemplo, la plantilla/apps/wknd/templates/foo
pertenece a la misma aplicación que la página/content/wknd
. -
Si
T
tiene una propiedadallowedParents
que no está vacía, pero ninguno de los valores coincide con la ruta de acceso deP
, se rechazaT
. -
Si la plantilla de
P
tiene una propiedadallowedChildren
que no está vacía, pero ninguno de los valores coincide con la ruta de acceso deT
, se rechazaT
. -
En todos los demás casos, se permite
T
.
El diagrama siguiente muestra el proceso de evaluación de la plantilla:
-
solo la propiedad
cq:allowedTemplates
-
solo en la raíz del sitio
/content/wknd/jcr:content
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 fácil definir más propiedades de cq:allowedTemplates
en subsecciones del sitio si es necesario restringir aún más las plantillas permitidas.cq:allowedTemplates
en la ficha Avanzadas de Propiedades de página. Las demás propiedades de la plantilla no se pueden actualizar mediante la interfaz de usuario (estándar), por lo que se necesitaría un desarrollador para mantener las reglas y una implementación de código para cada cambio.Limitación de plantillas utilizadas en páginas secundarias limiting-templates-used-in-child-pages
Para limitar qué plantillas se pueden usar para crear páginas secundarias en una página determinada, use la propiedad cq:allowedTemplates
del nodo jcr:content
de la página para especificar la lista de plantillas que se permitirán como 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 usar la propiedad cq:allowedTemplates
en el nodo jcr:content
de la plantilla para aplicar esta configuración a todas las páginas creadas que usen esta plantilla.
Si desea agregar más restricciones, por ejemplo, con respecto a la jerarquía de plantillas, puede utilizar las propiedades allowedParents/allowedChildren
en la plantilla. A continuación, puede especificar explícitamente que las páginas creadas a partir de una plantilla T tengan que ser páginas principales o secundarias de páginas creadas a partir de una plantilla T.