public function afterroute(\Base $f3) { // js view (file) $f3->set('jsView', 'setup'); // render view echo \Template::instance()->render($f3->get('PATHFINDER.VIEW.INDEX')); }
/** * show main login (index) page * @param \Base $f3 */ public function init(\Base $f3) { // page title $f3->set('pageTitle', 'Pathfinder'); // main page content $f3->set('pageContent', $f3->get('PATHFINDER.VIEW.LOGIN')); // body element class $f3->set('bodyClass', 'pf-body pf-landing'); // JS main file $f3->set('jsView', 'login'); // characters from cookies $f3->set('cookieCharacters', $this->getCookieByName(self::COOKIE_PREFIX_CHARACTER, true)); $f3->set('getCharacterGrid', function ($characters) { return 12 / count($characters) <= 3 ? 3 : 12 / count($characters); }); }
/** * onError() callback function * -> on AJAX request -> return JSON with error information * -> on HTTP request -> render error page * @param \Base $f3 */ public function showError(\Base $f3) { // set HTTP status $errorCode = $f3->get('ERROR.code'); if (!empty($errorCode)) { $f3->status($errorCode); } // collect error info --------------------------------------- $return = (object) []; $error = (object) []; $error->type = 'error'; $error->code = $errorCode; $error->status = $f3->get('ERROR.status'); $error->message = $f3->get('ERROR.text'); // append stack trace for greater debug level if ($f3->get('DEBUG') === 3) { $error->trace = $f3->get('ERROR.trace'); } // check if error is a PDO Exception if (strpos(strtolower($f3->get('ERROR.text')), 'duplicate') !== false) { preg_match_all('/\'([^\']+)\'/', $f3->get('ERROR.text'), $matches, PREG_SET_ORDER); if (count($matches) === 2) { $error->field = $matches[1][1]; $error->message = 'Value "' . $matches[0][1] . '" already exists'; } } $return->error[] = $error; // return error information --------------------------------- if ($f3->get('AJAX')) { header('Content-type: application/json'); echo json_encode($return); die; } else { // set error data for template rendering $error->redirectUrl = $this->getRouteUrl(); $f3->set('errorData', $error); if (preg_match('/^4[0-9]{2}$/', $error->code)) { // 4xx error -> render error page $f3->set('pageContent', $f3->get('PATHFINDER.STATUS.4XX')); } elseif (preg_match('/^5[0-9]{2}$/', $error->code)) { $f3->set('pageContent', $f3->get('PATHFINDER.STATUS.5XX')); } echo \Template::instance()->render($f3->get('PATHFINDER.VIEW.INDEX')); die; } }