Example #1
0
 public function afterroute(\Base $f3)
 {
     // js view (file)
     $f3->set('jsView', 'setup');
     // render view
     echo \Template::instance()->render($f3->get('PATHFINDER.VIEW.INDEX'));
 }
Example #2
0
 /**
  * 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);
     });
 }
Example #3
0
 /**
  * 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;
     }
 }