&1', $ffmpeg_check, $ffmpeg_return); if ($ffmpeg_return === 0) { // Converti il video in MP4 $convert_cmd = sprintf( 'ffmpeg -i %s -c:v libx264 -preset medium -crf 23 -c:a aac -b:a 128k -movflags +faststart -y %s 2>&1', escapeshellarg($upload_path), escapeshellarg($converted_path) ); exec($convert_cmd, $convert_output, $convert_return); if ($convert_return === 0 && file_exists($converted_path)) { // Conversione riuscita, elimina il file originale e usa quello convertito unlink($upload_path); $file_name = pathinfo($file_name, PATHINFO_FILENAME) . '.mp4'; $upload_path = $converted_path; $video_converted = true; } // Se la conversione fallisce, usa comunque il file originale } } // Imposta il percorso relativo per il database (senza slash iniziale) $video_url = 'uploads/lessons/' . ($is_demo ? 'demo' : 'pay') . '/' . $file_name; // Se è già MP4, considera già convertito if ($file_extension === 'mp4') { $video_converted = true; } // Estrai durata automaticamente se non specificata if (empty($duration)) { $duration = get_video_duration($upload_path); } } else { $error = 'Errore durante il caricamento del file'; } } } // Validazione if (empty($title)) { $error = 'Il titolo è obbligatorio'; } elseif (empty($description)) { $error = 'La descrizione è obbligatoria'; } elseif ($type === 'live' && empty($live_date)) { $error = 'Per le lezioni live, la data è obbligatoria'; } elseif ($type === 'video' && $video_platform === 'local' && empty($video_url)) { $error = 'Devi caricare un file video per le lezioni locali'; } elseif (!$error) { $pdo = get_db_connection(); try { $stmt = $pdo->prepare(" INSERT INTO lessons ( title, description, type, video_url, video_platform, duration, live_platform, live_url, live_date, level, category, price, is_demo, is_active, video_converted, created_by, created_at ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NOW() ) "); $stmt->execute([ $title, $description, $type, $type === 'video' ? $video_url : null, $type === 'video' ? $video_platform : null, $duration, $type === 'live' ? $live_platform : null, $type === 'live' ? $live_url : null, $live_date, $level, $category, $price, $is_demo, $is_active, $video_converted ?? false, $_SESSION['user_id'] ]); set_flash_message('success', 'Lezione creata con successo!'); header('Location: lessons.php'); exit; } catch (PDOException $e) { $error = 'Errore durante la creazione della lezione'; } } } ?>
Admin