예제 #1
0
    }
    $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';
예제 #2
0
    $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: