@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->description)
{{ Str::limit($post->description, 120, '...') }}
@endif