{{-- @intent Conteúdo do manual do Editor Estrutural (incluído dentro do modal de ajuda). @vars Nenhuma — standalone, incluso via @include. --}}

Visão Geral

O Editor Estrutural permite que a equipe de suporte personalize a estrutura do portal adicionando blocos de código personalizados em áreas estratégicas da página. Cada bloco aceita HTML, Blade, PHP, CSS e JavaScript, dando flexibilidade total para ajustar o layout, inserir componentes, ou injetar estilos e scripts.

Dica: Os blocos são processados como templates Blade. Isso significa que você pode usar diretivas Blade (@if, @foreach, @include, etc.) e acessar variáveis do sistema.

Áreas Disponíveis

Existem 5 áreas onde os blocos podem ser inseridos. Cada área é processada em um ponto específico da página:

Área Posição no Portal Uso Típico
Header Antes ou dentro do <header> Barra superior, menu secundário, banner de topo
Main Conteúdo extra entre header e footer Seções promocionais, chamadas para ação, destaques
Footer Antes ou dentro do <footer> Rodapé extra, newsletter, links adicionais
CSS Head Após SEO no <head> Estilos CSS customizados, fontes, meta tags adicionais
JS Foot Antes do </body> Scripts JavaScript, analytics, widgets externos

Componentes do Sistema

O helper {!! sle_component('nome') !!} permite reutilizar componentes nativos do portal dentro dos seus blocos. Use sempre {!! !!} (não escapado) para que o HTML do componente seja renderizado corretamente.

Componente View Descrição
header-logo v2-portal::header.header-logo Logo do header (com variante de alto contraste)
header-nav v2-portal::header.header-nav Menu de navegação principal (até 3 níveis)
header-search v2-portal::header.header-search-area Toggle de busca global
header-accessibility v2-portal::header.header-accessibility Barra de acessibilidade eMAG
footer-services v2-portal::footer.footer-services-area Grid de links do rodapé
footer-logo v2-portal::footer.footer-logo Logos institucionais no rodapé
footer-contact v2-portal::footer.footer-public-contact Bloco de contato (endereço, telefone, email)
footer-social v2-portal::footer.footer-social-network Ícones de redes sociais
footer-lai v2-portal::footer.footer-transparencia-lai Painel de Transparência (LAI)
global-banner v2-portal::base-struct.global-banner Banner de comunicado global
vlibras v2-portal::base-struct.vlibras Widget VLibras (LIBRAS)

Variáveis Disponíveis

As seguintes variáveis estão disponíveis dentro dos blocos durante a renderização:

Variável Tipo Descrição
$siteTitle string Título do site configurado no portal
$portalTheme array Configurações do tema do portal (cores, logo, etc.)
$layoutConfigs collection Configurações do Layout Base (modelo key/value)
$contato array Dados de contato (endereço, telefone, email, horário)
$headerLinks array Links configurados para o header do portal
$footerLinks array Links configurados para o footer do portal
$redes array Links de redes sociais (Facebook, YouTube, etc.)
$logos array Logos institucionais (principal, negativo, alto contraste)
$request Request Objeto de requisição HTTP atual do Laravel

Sintaxe Blade Suportada

Os blocos são compilados pelo motor Blade do Laravel. As seguintes diretivas são suportadas:

Diretiva Uso
@if / @elseif / @else / @endif Condicionais
@foreach / @endforeach Laços de repetição
@php / @endphp Bloco de código PHP puro
@{{ $var }} Saída escapada (HTML seguro)
{!! $html !!} Saída não-escapada (HTML bruto)
@include('view.name') Inclusão de outra view
@extends / @yield / @section Herança de templates
Atenção: A diretiva @extends dentro de um bloco pode causar conflitos com o layout principal do portal. Use-a com cuidado e apenas se souber exatamente o que está fazendo.

Segurança

Siga estas recomendações para manter o portal seguro:

Boas Práticas

Exemplos

1. Barra superior com saudação e data

Insira este código na área Header para adicionar uma barra informativa acima do header principal.

@verbatim<div class="top-bar bg-gradient py-2">
    <div class="container">
        <div class="d-flex justify-content-between align-items-center">
            <span class="text-white small">
                <i class="bi bi-clock me-1"></i>
                {{ date('d/m/Y') }} — Bem-vindo ao {{ $siteTitle }}
            </span>
            <div>
                <a href="/acessibilidade" class="text-white small me-3">Acessibilidade</a>
                <a href="/mapa-do-site" class="text-white small">Mapa do Site</a>
            </div>
        </div>
    </div>
</div>@endverbatim
2. Seção CTA no Footer

Insira este código na área Footer para criar uma chamada para ação antes do rodapé.

<section class="bg-primary text-white py-5 mt-5">
    <div class="container text-center">
        <h2 class="fw-bold mb-3">Fale Conosco</h2>
        <p class="lead mb-4">Estamos prontos para atender você. Entre em contato pelos nossos canais oficiais.</p>
        <a href="/fale-conosco" class="btn btn-light btn-lg px-5 fw-bold">
            <i class="bi bi-envelope me-2"></i>Abrir Chamado
        </a>
    </div>
</section>

<hr class="my-0">
3. Header personalizado usando componentes do sistema

Insira este código na área Header para recriar e customizar o header usando componentes nativos.

@verbatim<header class="site-header">
    <div class="container">
        <div class="d-flex align-items-center justify-content-between py-3">
            {!! sle_component('header-logo') !!}
            <div class="d-flex align-items-center gap-3">
                {!! sle_component('header-search') !!}
                {!! sle_component('header-accessibility') !!}
            </div>
        </div>
        {!! sle_component('header-nav') !!}
    </div>
</header>@endverbatim
Lembre-se: Você pode combinar componentes nativos (sle_component()) com HTML personalizado para criar layouts totalmente customizados. O céu é o limite!