Fix PHP 8 router parameter dispatching and lesson slug playback lookup
This commit is contained in:
@@ -385,15 +385,17 @@ class VideoController
|
||||
VideoService::ensureSchema();
|
||||
CurriculumService::ensureSchema();
|
||||
|
||||
$lessonId = (int)$request->getParam('id');
|
||||
$rawId = $request->getParam('id') ?? '';
|
||||
$lesson = null;
|
||||
|
||||
if ($lessonId > 0) {
|
||||
$lesson = Database::selectOne("SELECT * FROM lessons WHERE id = ? LIMIT 1", [$lessonId]);
|
||||
if (is_numeric($rawId) && (int)$rawId > 0) {
|
||||
$lesson = Database::selectOne("SELECT * FROM lessons WHERE id = ? LIMIT 1", [(int)$rawId]);
|
||||
} elseif (!empty($rawId)) {
|
||||
$lesson = Database::selectOne("SELECT * FROM lessons WHERE file_path LIKE ? OR title LIKE ? LIMIT 1", ["%{$rawId}%", "%{$rawId}%"]);
|
||||
}
|
||||
|
||||
if (!$lesson) {
|
||||
// Fallback to latest available lesson
|
||||
// Fallback to latest available lesson or create one
|
||||
$lesson = Database::selectOne("SELECT * FROM lessons ORDER BY id DESC LIMIT 1");
|
||||
}
|
||||
|
||||
@@ -408,8 +410,12 @@ class VideoController
|
||||
$existingCount = Database::selectOne("SELECT COUNT(*) as cnt FROM exams WHERE lesson_id = ? AND scope = 'in_video_checkpoint'", [$lessonId]);
|
||||
$existingQuestions = Database::selectOne("SELECT COUNT(*) as cnt FROM questions q JOIN exams e ON q.exam_id = e.id WHERE e.lesson_id = ?", [$lessonId]);
|
||||
if (empty($existingCount['cnt']) || empty($existingQuestions['cnt'])) {
|
||||
AiVideoAnalyzerService::processLessonAutonomously($lessonId);
|
||||
$lesson = Database::selectOne("SELECT * FROM lessons WHERE id = ? LIMIT 1", [$lessonId]);
|
||||
try {
|
||||
AiVideoAnalyzerService::processLessonAutonomously($lessonId);
|
||||
$lesson = Database::selectOne("SELECT * FROM lessons WHERE id = ? LIMIT 1", [$lessonId]);
|
||||
} catch (\Throwable $e) {
|
||||
error_log("Autonomous video analysis notice: " . $e->getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
// Fetch attached in-video Socratic Checkpoints with Questions and Options
|
||||
|
||||
Reference in New Issue
Block a user