@extends('layout.front.master') @if(isset($category)) @section('title', 'Blog - ' . $category->name . ' | ' . config('site.name')) @section('description', strip_tags(\Illuminate\Support\Str::limit($category->description ?? 'Explora nuestros artículos sobre ' . $category->name, 160))) @section('keywords', config('site.seo.keywords') . ', blog, noticias, ' . $category->name) {{-- Open Graph Meta Tags --}} @section('og_title', 'Blog - ' . $category->name . ' | ' . config('site.name')) @section('og_description', strip_tags(\Illuminate\Support\Str::limit($category->description ?? 'Explora nuestros artículos sobre ' . $category->name, 200))) @section('og_image', asset('cd-project/img/meta-tags/og-image.png')) @section('og_type', 'website') @section('og_url', url()->current()) {{-- Twitter Card Meta Tags --}} @section('twitter_title', 'Blog - ' . $category->name . ' | ' . config('site.name')) @section('twitter_description', strip_tags(\Illuminate\Support\Str::limit($category->description ?? 'Explora nuestros artículos sobre ' . $category->name, 200))) @section('twitter_image', asset('cd-project/img/meta-tags/twitter-image.png')) @else @section('title', 'Noticias y Blog | Constructora Gama S.A | Actualizaciones y Novedades') @section('description', 'Noticias, actualizaciones y artículos sobre construcción, infraestructura y proyectos de Constructora Gama S.A. Avances de obras, licitaciones, logros, prensa y todas las novedades. Más de 33 años construyendo en el NOA.') @section('keywords', config('site.seo.keywords') . ', blog, noticias, actualizaciones, construcción, avances obras, licitaciones, prensa, novedades') {{-- Open Graph Meta Tags --}} @section('og_title', 'Noticias y Blog | Constructora Gama S.A | Actualizaciones y Novedades') @section('og_description', 'Noticias, actualizaciones y artículos sobre construcción, infraestructura y proyectos de Constructora Gama S.A. Avances de obras, licitaciones, logros y prensa.') @section('og_image', asset('cd-project/img/meta-tags/og-image.png')) @section('og_type', 'website') @section('og_url', url()->current()) {{-- Twitter Card Meta Tags --}} @section('twitter_title', 'Noticias y Blog | Constructora Gama S.A | Actualizaciones y Novedades') @section('twitter_description', 'Noticias, actualizaciones y artículos sobre construcción, infraestructura y proyectos. Avances de obras, licitaciones, logros y prensa.') @section('twitter_image', asset('cd-project/img/meta-tags/twitter-image.png')) @endif @section('content') @php $moduleConfig = get_module_page_header_config('blog'); $pageTitle = isset($category) ? $category->name : $moduleConfig['title']; $pageSubtitle = isset($category) ? ($category->description ?? $moduleConfig['subtitle']) : $moduleConfig['subtitle']; $breadcrumbs = get_module_breadcrumbs('blog', $pageTitle); @endphp @if(should_use_modern_page_header('blog')) {{-- Modern Page Header (x-page-header) --}} @else {{-- Classic Page Header para demo-construction --}} @if(view()->exists('modules.blog.frontend.partials.dynamic-header')) @include('modules.blog.frontend.partials.dynamic-header') @endif {{-- Si no existe el header clásico, no mostrar nada --}} @endif
@if ($posts->isEmpty()) {{-- Empty State - Improved Design --}}
{{-- Icon --}}
{{-- Title --}}

{{ __('blog_under_construction') }}

{{-- Description --}}

{!! __('blog_no_posts_message') !!}

{{-- Action Buttons --}} {{-- Additional Info --}}

Estamos trabajando en contenido nuevo para ti

@else @foreach ($posts as $index => $post)
@php // Obtener demo activo para imagen por defecto $activeDemo = get_active_demo(); $demoName = str_replace('demo-', '', $activeDemo); // Función para obtener imagen por defecto del demo $getDefaultPostImage = function() use ($demoName, $index) { // Rotar entre las imágenes disponibles del demo $imageNumber = ($index % 3) + 1; $demoBlogImage = "cd-project/img/demos/{$demoName}/blog/blog-thumb-{$imageNumber}.jpg"; $demoGenericImage = "cd-project/img/demos/{$demoName}/generic/generic-1.jpg"; if (file_exists(public_path($demoBlogImage))) { return asset($demoBlogImage); } elseif (file_exists(public_path($demoGenericImage))) { return asset($demoGenericImage); } else { // Fallback a imagen genérica del sistema return asset('cd-project/img/meta-tags/og-image.png'); } }; // Determinar imagen del post $postImage = null; if ($post->header) { $headerPath = filter_var($post->header, FILTER_VALIDATE_URL) ? $post->header : $post->header; // Verificar si la imagen existe (si no es URL externa) if (filter_var($post->header, FILTER_VALIDATE_URL)) { $postImage = $headerPath; } elseif (file_exists(public_path($headerPath))) { $postImage = asset($headerPath); } else { // Si la imagen no existe, usar fallback $postImage = $getDefaultPostImage(); } } else { // Si no hay header, usar imagen por defecto $postImage = $getDefaultPostImage(); } @endphp
{{-- Category Badge and Date --}}

@if($post->category) | {{ $post->category->name }} @endif
{{ $post->title }}
@if($post->description)

{{ Str::limit($post->description, 120, '...') }}

@endif
@endforeach @endif
@endsection