@php
// Obtener demo activo para imagen por defecto
$activeDemo = config('cd-system.theme.demo', 'demo-construction');
$demoName = str_replace('demo-', '', $activeDemo);
// Función para obtener imagen por defecto del demo
$getDefaultPostImage = function($index = 0) use ($demoName) {
// 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 URL de imagen con fallback
$imageUrl = null;
$hasImage = false;
if ($post->header) {
// Determinar si es URL completa o path relativo
if (str_starts_with($post->header, 'http://') || str_starts_with($post->header, 'https://')) {
// URL completa (Cloudinary, CDN, etc.) - asumimos que existe
$imageUrl = $post->header;
$hasImage = true;
} else {
// Path relativo - verificar si existe
$headerPath = str_starts_with($post->header, '/') ? ltrim($post->header, '/') : $post->header;
if (file_exists(public_path($headerPath))) {
$imageUrl = asset($headerPath);
$hasImage = true;
} else {
// Imagen no existe, usar fallback
$imageUrl = $getDefaultPostImage($post->id ?? 0);
$hasImage = false;
}
}
} else {
// No hay header, usar imagen por defecto
$imageUrl = $getDefaultPostImage($post->id ?? 0);
$hasImage = false;
}
@endphp
@if($hasImage)
{{ __('Deja el campo vacío para mantener la imagen actual') }}
@else
{{ __('Imagen por defecto del demo. Sube una imagen para personalizarla.') }}
@endif
@error('header')
{{ $message }}
@enderror
{{ __('Formatos aceptados:') }} JPG, JPEG, PNG, GIF, SVG
{{ __('Tamaño máximo:') }} 2MB