{{-- @intent Fornecer um campo de mídia acessível, unificado com a Galeria V2 e Cropper.js. @description Drag & Drop com upload AJAX direto em segundo plano e seleção via Galeria. @param string $name Nome do campo de formulário (Obrigatório). @param string $label Rótulo do campo (Obrigatório). @param string $accept Extensões aceitas (Padrão: image/*,application/pdf). @param bool $required Se o campo é obrigatório. @param string $help Texto de ajuda adicional. @param int $currentId ID da mídia atual (para edição/persistência de chave). @param string $currentUrl URL da mídia atual. @param string $currentAlt Texto alternativo atual. @param string $ownerModule Módulo proprietário (ex: 'noticias', 'exemplo'). --}} @php $currentId = $currentId ?? ''; $currentUrl = $currentUrl ?? ''; $currentAlt = $currentAlt ?? ''; $ownerModule = $ownerModule ?? 'global'; $accept = $accept ?? 'image/*,application/pdf'; $required = $required ?? false; /* Detecta o tipo para renderização inicial no PHP */ $isPdfInitial = !empty($currentUrl) && strpos(strtolower($currentUrl), '.pdf') !== false; $isAudioInitial = !empty($currentUrl) && (strpos(strtolower($currentUrl), '.mp3') !== false || strpos(strtolower($currentUrl), '.wav') !== false || strpos(strtolower($currentUrl), '.ogg') !== false); $isExcelInitial = !empty($currentUrl) && (strpos(strtolower($currentUrl), '.xlsx') !== false || strpos(strtolower($currentUrl), '.xls') !== false || strpos(strtolower($currentUrl), '.csv') !== false || strpos(strtolower($currentUrl), '.ods') !== false); $isImageInitial = !empty($currentUrl) && !$isPdfInitial && !$isAudioInitial && !$isExcelInitial; @endphp {{ $label }} @if($required) * Obrigatório @endif {{-- Input Oculto contendo o ID físico da mídia da Galeria --}} {{-- Dropzone Unificada --}} {{-- Input File Oculto Real --}} {{-- Prompt de zona vazia --}} Arraste arquivos aqui ou clique para abrir a galeria {{-- Elemento de Progresso Inline --}} Enviando arquivo... {{-- Elemento de Erro de Validação --}} {{-- Preview de Arquivo Selecionado --}} {{ !empty($currentAlt) ? $currentAlt : (!empty($currentUrl) ? basename($currentUrl) : '') }} {{ $help ?? 'Formatos aprovados: ' . $accept }} @if (!isset($GLOBALS['media_input_scripts_rendered'])) @php $GLOBALS['media_input_scripts_rendered'] = true; @endphp @push('scripts') @endpush @endif
ou clique para abrir a galeria
Enviando arquivo...
{{ !empty($currentAlt) ? $currentAlt : (!empty($currentUrl) ? basename($currentUrl) : '') }}
{{ $help ?? 'Formatos aprovados: ' . $accept }}