/**
  * Do something before resolving is done
  * 
  * @param \Cx\Core\Routing\Url                      $request    The URL object for this request
  */
 public function preResolve(\Cx\Core\Routing\Url $request)
 {
     global $url;
     switch ($this->cx->getMode()) {
         case \Cx\Core\Core\Controller\Cx::MODE_FRONTEND:
             $params = $url->getParamArray();
             if (isset($params['section']) && $params['section'] == 'Captcha') {
                 /*
                  * Captcha Module
                  *
                  * Generates no output, requests are answered by a die()
                  * @since   2.1.5
                  */
                 Captcha::getInstance()->getPage();
             }
             break;
         default:
             break;
     }
 }
Ejemplo n.º 2
0
 public function postAsk()
 {
     try {
         if (!isset($_POST)) {
             throw new \Exception('Request error!');
         }
         $keys = array('name', 'sex', 'email', 'ask', 'content', 'code', 'isPrivate', 'user_id');
         $values = array();
         $bool = true;
         foreach ($keys as $key) {
             $values[$key] = \Arr::get($_POST, $key, false);
             if ($values[$key] === false) {
                 $bool = false;
             }
         }
         if (!$bool) {
             throw new \Exception('Request error!');
         }
         if (!\Captcha::getInstance()->valid($values['code'])) {
             throw new \Exception('驗証碼錯誤');
         }
         $values['isPrivate'] = $values['isPrivate'] == 'n' ? '0' : '1';
         $b = new \Board();
         $b->name = $values['name'];
         $b->gender = $values['sex'];
         $b->email = $values['email'];
         $b->topic = $values['ask'];
         $b->content = $values['content'];
         $b->isPrivate = $values['isPrivate'];
         $b->user_id = empty($values['user_id']) ? '' : (int) $values['user_id'];
         $b->save();
         return \Response::json(array('status' => 'ok'));
     } catch (\Exception $e) {
         return \Response::json(array('status' => 'error', 'message' => $e->getMessage()));
     }
 }