{{-- ═══ Law Firm about fields ═══ --}} {{-- SEO / Meta --}}

SEO de la página Nosotros

Título de pestaña del navegador (también aparece en el header de la página).

{{-- Main Section --}}

Sección Principal (About)

Título, misión, descripción y firma del CEO.

{{-- Global Service + Signature --}}

Sección Global Service + Firma

{{-- CTA Banner / Areas de Practica --}}

Banner de Llamada a la Acción (CTA)

Franja con fondo oscuro de conversión para contactarse.

{{-- Imagen del fundador (Global Service / Signature) --}}

Imagen del Fundador (Signature)

Imagen grande que aparece en la sección "Global Service" del Nosotros — debajo del texto del fundador con efecto visual. Si dejás vacío, usa la foto del Socio Fundador del módulo Equipo; si tampoco, una imagen genérica.

@php // Cadena de fallback IDÉNTICA al frontend para evitar discrepancias. $founderInline = $siteData['about']['founder_image'] ?? null; $founderMember = null; $founderSource = ''; try { $founderMember = \App\Modules\TeamMembers\Models\TeamMember::where('is_active', true) ->whereRaw('LOWER(position) LIKE ?', ['%fundador%']) ->orderBy('sort_order') ->first(); if ($founderMember) { $founderSource = "del Socio Fundador ({$founderMember->name})"; } else { $founderMember = \App\Modules\TeamMembers\Models\TeamMember::where('is_active', true) ->orderBy('sort_order')->first(); if ($founderMember) { $founderSource = "primer miembro del Equipo ({$founderMember->name})"; } } } catch (\Throwable $e) { /* módulo team puede no estar */ } if (!empty($founderInline)) { $founderCurrent = ['url' => $founderInline, 'source' => 'subida (override)']; } elseif ($founderMember && !empty($founderMember->image)) { $url = filter_var($founderMember->image, FILTER_VALIDATE_URL) ? $founderMember->image : asset($founderMember->image); $founderCurrent = ['url' => $url, 'source' => $founderSource]; } else { $founderCurrent = ['url' => asset('cd-project/img/demos/law-firm-2/generic/generic-1.jpg'), 'source' => 'genérica del demo']; } @endphp
Imagen fundador {{ $founderCurrent['source'] }}
JPG · PNG · WEBP · máx. 10 MB.
Tip: usá una imagen en formato vertical (3:4) para mejor encuadre.
{{-- Galería de Imágenes (3 slots inline) --}}

Galería de Imágenes (Nosotros)

Las 3 imágenes que aparecen en el carrusel/grid de la página Nosotros. Subí una imagen para reemplazar la actual. Si dejás un slot sin subir, queda la que ya está.

@php // Cadena de fallback igual a la del frontend: // 1) settings inline → 2) módulo Gallery → 3) imagen genérica del demo $inlineUrls = [ 1 => $siteData['about']['gallery_image_1'] ?? null, 2 => $siteData['about']['gallery_image_2'] ?? null, 3 => $siteData['about']['gallery_image_3'] ?? null, ]; $moduleGallery = []; if (function_exists('is_module_active') && is_module_active('gallery')) { try { $moduleGallery = \App\Modules\Gallery\Models\Gallery::orderBy('created_at', 'desc')->limit(3)->get(); } catch (\Throwable $e) { $moduleGallery = []; } } $fallbackImages = [ 1 => asset('cd-project/img/demos/law-firm-2/generic/generic-2.jpg'), 2 => asset('cd-project/img/demos/law-firm-2/generic/generic-3.jpg'), 3 => asset('cd-project/img/demos/law-firm-2/generic/generic-4.jpg'), ]; $resolveImage = function($n) use ($inlineUrls, $moduleGallery, $fallbackImages) { if (!empty($inlineUrls[$n])) return ['url' => $inlineUrls[$n], 'source' => 'subida']; if (isset($moduleGallery[$n - 1])) { $g = $moduleGallery[$n - 1]; $url = filter_var($g->img, FILTER_VALIDATE_URL) ? $g->img : asset($g->img); return ['url' => $url, 'source' => 'módulo Galería']; } return ['url' => $fallbackImages[$n], 'source' => 'genérica del demo']; }; @endphp @for($n = 1; $n <= 3; $n++) @php $current = $resolveImage($n); @endphp
Imagen {{ $n }} {{ $current['source'] }}
JPG · PNG · WEBP · máx. 10 MB
@endfor
{{-- Team + Testimonials Headings --}}

Encabezados Equipo y Testimonios

Títulos de las secciones de equipo y testimonios en la página Nosotros.