コード例 #1
0
ファイル: question-part3.php プロジェクト: koyach/dalite
function post(&$a)
{
    if ($a['request']['pathname'] != '/question-part4' && $a['request']['pathname'] != '/question-part3') {
        $a['message_dlg'] = 'Please complete this question first.';
        \Edu8\Http::Redirect('/question-part3', $a);
    } else {
        if ($a['request']['pathname'] == '/question-part4') {
            unset($a['message_dlg']);
        }
    }
    if ($a['request']['pathname'] == '/question-part4') {
        if (array_key_exists('question_num', $a)) {
            $concepts = implode(",", preg_grep_keys_return_values('/^tag/', $a['request']));
            $connection = \Edu8\Config::initDb();
            if ($a['question'][$a['question_num']]['alpha'] == "1") {
                $a['request']['second_answer'] = $a['from_alpha'][$a['request']['second_answer']];
            }
            if (!$a['student']['is_professor']) {
                try {
                    $voted_rationale_ = $a['request']['response_'];
                    if (strlen($a['request']['response_'])) {
                        unset($voted_rationale_);
                        $connection->exec('update response SET votes=votes+1 WHERE response_ =' . $a['request']['response_']);
                    }
                    $connection->insert('response', ['student_' => $a['student']['student_'], 'voted_rationale' => $voted_rationale_, 'assignment_' => $a['assignment'], 'question_' => $a['question'][$a['question_num']]['question_'], 'answer' => $a['request']['answer'], 'second_answer' => $a['request']['second_answer'], 'rationale' => $a['request']['rationale'], 'concepts' => $concepts]);
                } catch (Exception $e) {
                    unset($e);
                    //echo 'RESUBMIT ignored.';
                }
            }
        }
    }
}
コード例 #2
0
ファイル: question-part2.php プロジェクト: koyach/dalite
function post(&$a)
{
    if ($a['request']['pathname'] != '/question-part3' && $a['request']['pathname'] != '/question-part2') {
        $a['message_dlg'] = 'Please complete this question first.';
        \Edu8\Http::Redirect('/question-part2', $a);
    } else {
        if ($a['request']['pathname'] == '/question-part3') {
            unset($a['message_dlg']);
        }
    }
}
コード例 #3
0
ファイル: index.php プロジェクト: koyach/dalite
function main()
{
    $request = Request::createFromGlobals();
    Http::Init();
    //Get routes and match with incomming url
    $context = new Routing\RequestContext();
    $context->fromRequest($request);
    $routes = Edu8\Route::getRoutes(__DIR__ . '/../routes/');
    $matcher = new Routing\Matcher\UrlMatcher($routes, $context);
    try {
        $request->attributes->add($matcher->match($request->getPathInfo()));
        $file_root = $request->attributes->get('file_root');
        $slug = $request->attributes->get('slug');
    } catch (\Exception $e) {
        $file_root = rtrim($request->getPathInfo(), '/');
        $slug = '';
        //$request->attributes->get('slug');
    }
    $twig_vars = Http::GetSession();
    if (empty($twig_vars['request'])) {
        $twig_vars['request'] = $request->request->all();
    } else {
        $twig_vars['request'] = array_merge($twig_vars['request'], $request->request->all());
    }
    $twig_vars['request']['pathname'] = $request->getPathInfo();
    if ($request->files->has('file')) {
        $twig_vars['request']['file'] = $request->files->get('file')->getPathname();
    }
    Http::SetSession($twig_vars);
    if (isset($twig_vars['auth']) && $file_root === '/login') {
        Http::Redirect('/');
    }
    if (!isset($twig_vars['auth']) && $file_root !== '/login') {
        Http::Redirect('/login');
    }
    //Merge session and post variables
    try {
        if (isset($_SERVER['HTTP_REFERER'])) {
            //Get routes and match with refer url
            $routes2 = Edu8\Route::getRoutes(__DIR__ . '/../callbacks/');
            $matcher2 = new Routing\Matcher\UrlMatcher($routes2, $context);
            $try = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_PATH);
            $attribs = $matcher2->match($try);
            //Dispatch post() from appropriate file
            if (is_file($attribs['php_file'])) {
                include $attribs['php_file'];
                post($twig_vars);
            }
        }
    } catch (Routing\Exception\ResourceNotFoundException $e) {
    }
    //Dispatch build() from appropriate file
    if (is_file($request->attributes->get('php_file'))) {
        include $request->attributes->get('php_file');
        build($twig_vars);
    }
    Http::SetSession($twig_vars);
    if (strpos($twig_vars['request']['pathname'], 'admin') && $twig_vars['student']['is_professor'] != 1) {
        Http::Redirect('/');
    }
    //Render twig with varables assembled in build()
    $loader = new Twig_Loader_Filesystem(__DIR__ . '/../templates');
    $twig = new Twig_Environment($loader);
    $response = new Symfony\Component\HttpFoundation\Response($twig->render($file_root . $slug . '.html.twig', $twig_vars));
    $response->send();
    unset($twig_vars['message_dlg']);
}
コード例 #4
0
ファイル: reset.php プロジェクト: koyach/dalite
function build(&$a)
{
    $a = [];
    \Edu8\Http::Redirect('/login', $a);
}