Caminho no Gestor modulos/admin-layouts/
Edita a moldura HTML completa que recebe o conteúdo de uma página, inclusive <head>, <body>, CSS e escolha de framework. O núcleo consulta o layout por id e idioma e funde o corpo da página em @[[pagina#corpo]]@.
Como usar
Abra admin-layouts/, crie em admin-layouts/adicionar/ ou edite em admin-layouts/editar/?id=<slug>. Dê um nome, escolha o framework CSS e edite o HTML/CSS no componente html-editor. Depois associe o layout à página que deve usá-lo. As rotas são iguais nos dois idiomas.
Referência técnica
O controlador trata listar, adicionar e editar; status e exclusão vêm da interface compartilhada. O switch AJAX não tem caso ativo. Na gravação, os marcadores textuais de variáveis globais são convertidos para a forma interna; o processo é invertido na edição. A edição preserva backup dos campos de conteúdo alterados, registra histórico, incrementa versão, marca user_modified e calcula css_source_hash a partir de HTML/CSS. O JS do módulo delega o editor à biblioteca html-editor. Não há widget, template, hooks ou hooks.api definidos no JSON.
layouts tem id_layouts numérico, nome, id, language, modulo, html LONGTEXT, css MEDIUMTEXT, status, versao, datas, user_modified, file_version, checksum; migrações acrescentam framework_css, css_compiled, css_precompiled, projeto e hash de procedência. (id, language) é único. gestor_layout() lê o HTML/CSS do banco para o idioma, inclui CSS pré-compilado com papel layout-precompiled antes dos recursos da página e devolve o HTML; em desenvolvimento também pode ler os arquivos físicos correspondentes. gestor_pagina_layout() troca pagina#corpo pelo conteúdo da página e ajusta o título.