@inject('activityLogger', 'V2\Services\ActivityLogger\ActivityLoggerService')
{{ csrf_field() }} @php $configModel = $configs->has('logos') ? $configs['logos'] : null; $payload = $configModel ? $configModel->payload : []; $img = function ($key) use ($payload) { $raw = $payload[$key] ?? null; return is_array($raw) ? ($raw['path'] ?? '') : $raw; }; $imgId = function ($path) { return $path ? \Illuminate\Support\Facades\DB::table('v2_gallery_media')->where('file_path', $path)->value('id') : ''; }; @endphp {{-- ═══════════════════════════════════════════════════════════ ÁREA 1 — IDENTIDADE VISUAL (Favicon + Logo Header) ═══════════════════════════════════════════════════════════ --}}
Identidade Visual
@php $faviconCurrent = $img('favicon'); $faviconUrl = $faviconCurrent ? v2_storage_url($faviconCurrent) : ''; @endphp
@if($faviconUrl)
Favicon atual Favicon atual (32×32)
@else
Nenhum favicon personalizado. Será usado o fallback favicon.ico padrão.
@endif
Formato obrigatório: ICO (.ico). Dimensão: 32×32px. Salvo diretamente no storage, sem galeria.
@include('v2-service-media::components.media-input', [ 'name' => 'logo_header', 'label' => 'Logo Principal (Header)', 'accept' => 'image/*', 'help' => 'SVG ou PNG colorido, fundo transparente. 60px altura.', 'currentUrl' => $img('logo_header') ? v2_storage_url($img('logo_header')) : '', 'currentAlt' => $payload['logo_header_alt'] ?? '', 'currentId' => $imgId($img('logo_header')), 'ownerModule' => 'layout_base' ])
{{-- ═══════════════════════════════════════════════════════════ ÁREA 2 — HEADER & RODAPÉ (Contraste + Rodapé) ═══════════════════════════════════════════════════════════ --}}
Header & Rodapé
@include('v2-service-media::components.media-input', [ 'name' => 'logo_header_contraste', 'label' => 'Logo Header (Alto Contraste)', 'accept' => 'image/*', 'help' => 'Modo e-MAG Alto Contraste. Cor branca, fundo transparente.', 'currentUrl' => $img('logo_header_contraste') ? v2_storage_url($img('logo_header_contraste')) : '', 'currentAlt' => $payload['logo_header_contraste_alt'] ?? '', 'currentId' => $imgId($img('logo_header_contraste')), 'ownerModule' => 'layout_base' ])
@include('v2-service-media::components.media-input', [ 'name' => 'logo_principal', 'label' => 'Logo Secundária (Rodapé)', 'accept' => 'image/*', 'help' => 'Monocromático (branco). 60px altura.', 'currentUrl' => $img('logo_principal') ? v2_storage_url($img('logo_principal')) : '', 'currentAlt' => $payload['logo_principal_alt'] ?? '', 'currentId' => $imgId($img('logo_principal')), 'ownerModule' => 'layout_base' ])
{{-- ═══════════════════════════════════════════════════════════ ÁREA 3 — INSTITUCIONAIS (Sefaz + Governo) ═══════════════════════════════════════════════════════════ --}}
Institucionais
@include('v2-service-media::components.media-input', [ 'name' => 'sefaz', 'label' => 'Sefaz-PB', 'accept' => 'image/*', 'help' => '40px altura.', 'currentUrl' => $img('sefaz') ? v2_storage_url($img('sefaz')) : '', 'currentAlt' => $payload['sefaz_alt'] ?? '', 'currentId' => $imgId($img('sefaz')), 'ownerModule' => 'layout_base' ])
@include('v2-service-media::components.media-input', [ 'name' => 'governo', 'label' => 'Governo da Paraíba', 'accept' => 'image/*', 'help' => '40px altura.', 'currentUrl' => $img('governo') ? v2_storage_url($img('governo')) : '', 'currentAlt' => $payload['governo_alt'] ?? '', 'currentId' => $imgId($img('governo')), 'ownerModule' => 'layout_base' ])
{{-- ═══════════════════════════════════════════════════════════ ÁREA 4 — MEMBROS ASSOCIADOS ═══════════════════════════════════════════════════════════ --}}
Membros Associados
@include('v2-service-media::components.media-input', [ 'name' => 'membro_1', 'label' => 'Membro Associado 1', 'accept' => 'image/*', 'help' => 'Opcional. 40px altura.', 'currentUrl' => $img('membro_1') ? v2_storage_url($img('membro_1')) : '', 'currentAlt' => $payload['membro_1_alt'] ?? '', 'currentId' => $imgId($img('membro_1')), 'ownerModule' => 'layout_base' ])
@include('v2-service-media::components.media-input', [ 'name' => 'membro_2', 'label' => 'Membro Associado 2', 'accept' => 'image/*', 'help' => 'Opcional. 40px altura.', 'currentUrl' => $img('membro_2') ? v2_storage_url($img('membro_2')) : '', 'currentAlt' => $payload['membro_2_alt'] ?? '', 'currentId' => $imgId($img('membro_2')), 'ownerModule' => 'layout_base' ])
@v2can('LayoutBase', 'write') @endv2can
@include('v2-structurallandingeditor::cms.tabs.layoutbase.components.history-table', ['configModel' => $configModel, 'showMediaColumn' => true, 'logSuffix' => 'Atualizou as Logos.'])