Page Layouts
Los Page Layouts son definiciones a nivel de instalación que gestionan la elección del armazón público exterior y los envoltorios de slot gestionados de las páginas.
Alcance de la V1
- Ruta de administración:
Admin -> System -> Page Layouts - Acceso: solo
super_admin - La V1 admite listar, crear, editar, activar, desactivar, ordenar, el CRUD de Page Layout Slots gestionados, la comparación de slots en Edit Page y la aplicación segura de los slots que faltan
- La V1 no admite eliminar layouts del sistema
- En esta versión, las páginas siguen guardando el handle del layout seleccionado en
pages.settings.public_shellpor compatibilidad con versiones anteriores - Los campos visibles del Page Layout son
Name,Handle,Description,Status,Sort OrderyBody Class Shell Type,Slot Schema JSONyWrapper Schema JSONson campos de compatibilidad obsoletos y ya no forman parte del formulario de administración- El
Slot Schema JSONy elWrapper Schema JSONen bruto ya no son el modelo de edición de la administración
Layouts integrados
default/Default Layout: armazón estándar de página públicadocs/Docs Layout: armazón de documentación con mapeo de regiones header, sidebar, main y footer
Estos layouts integrados siguen siendo compatibles con páginas, importaciones, exportaciones y renderizado público anteriores.
Cada layout integrado siembra además Page Layout Slots gestionados:
default:header,main,sidebar,footerdocs:header,sidebar,main,footer
Cómo funciona el renderizado
- Una página guarda un handle de Page Layout en
public_shell - En tiempo de ejecución, ese handle se resuelve a un Page Layout gestionado cuando existe
- El Page Layout resuelto puede aportar un
body_classvalidado al elemento<body>público - En tiempo de ejecución, los envoltorios de slot se resuelven desde
page_layout_slotsrelacionales cuando están disponibles - Cada Page Layout Slot referencia una fila
SlotTypepublicada del CMS y define metadatos del envoltorio como el elemento, el id, las clases y fragmentos de envoltorio de confianza - Si los Page Layout Slots relacionales no están disponibles, las definiciones de reserva integradas mantienen estable el renderizado de
defaultydocs
En la V1, los layouts personalizados siguen reutilizando el comportamiento existente del armazón público default o docs. Por compatibilidad, el runtime deduce ese comportamiento de forma conservadora a partir de las definiciones de slot gestionadas.
Page Layout Slots gestionados
Los Page Layout Slots son los registros de región gestionados asociados a un Page Layout.
- Ruta de administración:
Admin -> System -> Page Layouts -> Edit -> Page Layout Slots - Los Slot Types son el catálogo para añadir Page Layout Slots
- Cada Page Layout Slot guarda
slot_type_id,slot_name,label,description,html_element,html_id,html_classes,before_html,start_html,end_html,after_html,is_required,is_active,is_systemysort_order - La edición en la administración agrupa estos campos en
Slot Identity,Wrapper Markup,Advanced Trusted Layout HTMLyStatus / Ordering - La validación solo permite ids HTML seguros, clases seguras separadas por espacios y fragmentos de envoltorio de confianza, y rechaza scripts, atributos de evento,
javascript:,iframe,objectyembed - Los layouts del sistema mantienen estable su mapeo de slots del sistema: los Page Layout Slots del sistema no permiten cambiar el nombre de slot subyacente ni el Slot Type
- Los Page Layout Slots que no son del sistema ni obligatorios se pueden eliminar
CSS Classesespera tokens de clase separados por espacios- Las clases del envoltorio pueden incluir pistas de layout como
wb-sidebar,wb-dashboard-mainowb-stackcuando encajan con el layout seleccionado - El comportamiento fijo de la Navbar pública debe venir de la primitiva
wb-navbarincluida, no de reglas sticky de cabecera a nivel de sitio - Cuando un slot de cabecera pública por defecto contiene solo un bloque Navbar, el CMS promueve el envoltorio del slot a la raíz
nav.wb-navbarpara que la Navbar quede fija sin CSS específico del sitio Before Slot HTMLse renderiza antes del envoltorio del slotSlot Start HTMLse renderiza dentro del envoltorio, antes de los bloquesSlot End HTMLse renderiza dentro del envoltorio, después de los bloquesAfter Slot HTMLse renderiza después del envoltorio del slot- El HTML de layout de confianza avanzado es solo para marcado de layout adyacente al envoltorio, no para scripts
Comparar y aplicar en Edit Page
- Edit Page muestra ahora una tarjeta
Page Layout Slotsjunto a la gestión de slots - La tarjeta compara los Page Layout Slots gestionados activos del Page Layout seleccionado con los Page Slots actuales de la página
- La comparación informa como mínimo de:
- los Layout Slots definidos por el Page Layout seleccionado
- los Page Slots ya presentes en la página
- los Layout Slots que faltan
- los Page Slots adicionales no definidos por el Page Layout seleccionado
- los Page Slots desactivados
- los Page Slots respaldados por un Shared Slot
Add Missing Layout Slotssolo aparece cuando faltan Layout Slots- La acción es explícita. Guardar los ajustes normales de la página no sincroniza los slots en silencio.
Reglas de seguridad
Add Missing Layout Slotscrea en la página actual únicamente los Page Layout Slots activos que faltan- No elimina los Page Slots adicionales
- No elimina bloques
- No cambia el
page_slots.source_typeexistente - No borra el
shared_slot_idexistente - No activa automáticamente los Page Slots desactivados
- No reordena ni reescribe en silencio los Page Slots existentes
- Los Page Slots adicionales se conservan y se informan por seguridad, aunque el Page Layout seleccionado no los defina
- La compatibilidad de Shared Slot sigue siendo exacta según el handle
public_shellguardado
Valores por defecto de las páginas nuevas
- Las páginas nuevas usan, cuando es posible, los Page Layout Slots gestionados activos del Page Layout seleccionado
- La reserva heredada
slot_schemapermanece solo como reserva segura de compatibilidad cuando no hay definiciones de slot gestionadas relacionales o integradas disponibles - Las páginas nuevas no deberían obligar a los administradores a añadir manualmente los slots estándar tras elegir un Page Layout
Cambios de Page Layout en páginas existentes
- Cambiar el Page Layout seleccionado en una página existente no elimina ni reescribe automáticamente los slots durante un guardado normal
- Tras guardar, Edit Page muestra la comparación actualizada para que los editores revisen con seguridad los slots que faltan o sobran
- La versión actual prefiere deliberadamente el
Add Missing Layout Slotsexplícito antes que la mutación automática
Body Class
Body Classes una lista opcional de tokens separados por espacios que se añade al<body>público- Los valores integrados sembrados son actualmente
layout-defaultylayout-docs - El renderizado público mantiene la clase base
wb-public-bodyy añade las clases de body del Page Layout cuando están disponibles - El CSS específico de layout puede apuntar a combinaciones como
body.layout-docsmás los ids y clases de slot definidos por los Page Layout Slots - Prefiera un bloque Navbar para las cabeceras públicas fijas; el CMS promueve los slots de cabecera por defecto con una sola Navbar a la raíz
nav.wb-navbar, de modo que WebBlocks UI controla el desplazamiento fijo y el apilamiento
Límites de responsabilidad
- El Page Layout es responsable de la elección del armazón público exterior
- El Page Layout también es responsable de los tokens de clase de body públicos de ese armazón
- Los Page Layout Slots son responsables de los metadatos y el orden de los envoltorios de región
- Los Page Layout Slots son responsables del elemento envoltorio público, su id, sus clases y el HTML de confianza opcional adyacente al envoltorio de cada región
- Los nombres de slot son responsables de la semántica del envoltorio de región, como
header,main,sidebaryfooter - Los bloques son responsables del contenido renderizado dentro de esos envoltorios
- El comportamiento fijo de la navbar sigue siendo responsabilidad de
.wb-navbarde WebBlocks UI, no de los Page Layouts del CMS
Layouts desconocidos o ausentes
- Las páginas existentes no se migran fuera de
public_shell - Los handles de layout desconocidos se conservan tal cual
- La edición en la administración se mantiene segura mostrando el handle heredado actual como una opción preservada
- El renderizado público recurre a una alternativa segura en lugar de fallar
- En la V1, los handles desconocidos recurren de forma segura al comportamiento de runtime por defecto
Compatibilidad con Shared Slot
En la V1, la compatibilidad de Shared Slot sigue siendo conservadora.
- Las pantallas de administración de Shared Slot presentan ahora esta restricción como
Page Layout, mientras que el campo de compatibilidad almacenado sigue siendopublic_shellpor compatibilidad con versiones anteriores en esta versión - Se exige una coincidencia exacta del handle
public_shellcuando un Shared Slot definepublic_shell - Un
public_shellvacío sigue siendo genérico - Un handle de layout personalizado que reutiliza el comportamiento de runtime de tipo docs no coincide automáticamente con los Shared Slots restringidos a
docs - Añadir los Layout Slots que faltan crea Page Slots nuevos como
Page Contentpor defecto y no amplía el comportamiento de compatibilidad de los Shared Slots
Límite de portabilidad
- La exportación/importación de sitios y la clonación siguen transfiriendo los handles
public_shella nivel de página como configuración de página - En la V1, las definiciones de Page Layout y de Page Layout Slot a nivel de instalación no se incluyen en la exportación/importación de sitios
- Si una página transferida usa un handle de layout personalizado, la instalación de destino debería tener un handle de Page Layout equivalente para obtener el comportamiento previsto
- Si no existe un layout equivalente en la instalación de destino, el renderizado recurre a una alternativa segura