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.'; } } } } }
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']); } } }
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']); }
function build(&$a) { $a = []; \Edu8\Http::Redirect('/login', $a); }