{{-- @intent Conteúdo do manual do Editor Estrutural (incluído dentro do modal de ajuda). @vars Nenhuma — standalone, incluso via @include. --}}
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.
@if, @foreach, @include, etc.)
e acessar variáveis do sistema.
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 |
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) |
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 |
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 |
@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.
Siga estas recomendações para manter o portal seguro:
@{{ $var }} (escapado) para dados que vêm de fontes externas ou do banco de dados. Use {!! $var !!} apenas para HTML confiável ou componentes do sistema.eval(): A função eval() é extremamente perigosa e não deve ser utilizada em nenhuma circunstância.sle_component(): Para saída confiável de componentes do sistema, sempre utilize o helper {!! sle_component('nome') !!} com {!! !!}.css_head para manter a organização e o carregamento adequado.js_foot, antes do fechamento do </body>.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
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">
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
sle_component()) com
HTML personalizado para criar layouts totalmente customizados. O céu é o limite!