} $chapters = \PTA\App::getVideoChapters($level, $lesson, $gender); if ($chapters === null) { $app->redirect('/level/' . $user->getLevel()); } # Get the preceding and following lessons for back/next style buttons $prev_lesson = $user->getPreviousLesson($level, $lesson); $next_lesson = $user->getNextLesson($level, $lesson); if ($prev_lesson !== null) { $prev_lesson = '/level/' . $prev_lesson[0] . '/' . $prev_lesson[1] . '/video/' . $gender; } if ($next_lesson !== null) { $next_lesson = '/level/' . $next_lesson[0] . '/' . $next_lesson[1] . '/video/' . $gender; } $bgImage = $user->getBackgroundImage(); $app->render('lesson-video.twig', ['pjax' => array_key_exists('X-PJAX', getallheaders()), 'bgImage' => $bgImage, 'chapters' => $chapters, 'default_gender' => $default_gender, 'gender' => $gender, 'lesson' => $lesson, 'level' => $level, 'neturl' => \PTA\App::getNetConnectionUrl(), 'next_lesson' => $next_lesson, 'prev_lesson' => $prev_lesson, 'teachers' => \PTA\App::getTeachers($level), 'tips' => $user->getTips('lesson-video'), 'title_ar' => $lessonData['title_ar'], 'title_en' => $lessonData['title_en']]); }); # Display exercise for given level/lesson tuple $app->get('/level/:level/:lesson/exercise', function ($level, $lesson) use($app, $user) { if (!$user->isLessonAvailable($level, $lesson)) { $app->redirect('/level/' . $user->getLevel()); } $lessonData = \PTA\App::getLesson($level, $lesson); # Get the preceding and following lessons for back/next style buttons $prev_lesson = $user->getPreviousLesson($level, $lesson); $next_lesson = $user->getNextLesson($level, $lesson); if ($prev_lesson !== null) { $prev_lesson = '/level/' . $prev_lesson[0] . '/' . $prev_lesson[1] . '/exercise'; } if ($next_lesson !== null) { $next_lesson = '/level/' . $next_lesson[0] . '/' . $next_lesson[1] . '/exercise';
$logged = true; #if ($user->isLoggedIn() && $user->verifyNonce($request->post('nonce'), $ip, 'login-' . $user->getUsername(), 0)) { $user->logLogin($ip); #} $app->contentType('application/json'); echo json_encode(['status' => $logged ? '0' : '1']); }); $app->post('/api/affiliate/search', function () use($app, $user) { $app->contentType('application/json'); $searchterm = $app->request()->post('searchterm'); $affiliates = \PTA\App::findAffiliate($searchterm); echo json_encode($affiliates); }); $app->get('/api/teachers', function () use($app, $user) { $app->contentType('application/json'); echo json_encode(\PTA\App::getTeachers()); }); $app->post('/api/survey', function () use($app, $user) { $app->contentType('application/json'); $data = json_decode($app->request()->getBody()); $rc = 0; $rc |= $user->setPreferredGender($data->gender); $position = ['level' => 1, 'lesson' => 1]; switch ($data->rating) { case 2: $position = ['level' => 1, 'lesson' => 5]; break; case 3: $position = ['level' => 2, 'lesson' => 1]; break; case 4: