protected static function load_article($id = null)
 {
     if (!$id) {
         $id = $_GET['article_id'];
     }
     $object = Article::find_by_id($id);
     if ($object) {
         return $object;
     } else {
         Error404();
     }
 }
Example #2
0
 public function __construct()
 {
     parent::__construct();
     if (!(($id = $this->uri->rsegments(3, 0)) && (is_numeric($id) ? $this->tag = ArticleTag::find_by_id($id) : ($this->tag = ArticleTag::find_by_name(trim(urldecode($id))))))) {
         return redirect_message(array('articles'), array('_flash_message' => '找不到該筆資料。'));
     }
     if (in_array($this->uri->rsegments(2, 0), array('edit', 'update', 'destroy', 'sort'))) {
         if (!(($id = $this->uri->rsegments(4, 0)) && ($this->article = Article::find_by_id($id)))) {
             return redirect_message(array('articles', $this->tag->id, 'articles'), array('_flash_message' => '找不到該筆資料。'));
         }
     }
     $this->add_js(resource_url('resource', 'javascript', 'jquery-timeago_v1.3.1', 'jquery.timeago.js'))->add_js(resource_url('resource', 'javascript', 'jquery-timeago_v1.3.1', 'locales', 'jquery.timeago.zh-TW.js'));
 }
Example #3
0
 public function is_visibled($id = 0)
 {
     if (!($id && ($article = Article::find_by_id($id, array('select' => 'id, is_visibled, updated_at'))))) {
         return $this->output_json(array('status' => false, 'message' => '當案不存在,或者您的權限不夠喔!'));
     }
     $posts = OAInput::post();
     if ($msg = $this->_validation_is_visibled_posts($posts)) {
         return $this->output_json(array('status' => false, 'message' => $msg, 'content' => Article::$visibleNames[$article->is_visibled]));
     }
     if ($columns = array_intersect_key($posts, $article->table()->columns)) {
         foreach ($columns as $column => $value) {
             $article->{$column} = $value;
         }
     }
     $update = Article::transaction(function () use($article) {
         return $article->save();
     });
     if (!$update) {
         return $this->output_json(array('status' => false, 'message' => '更新失敗!', 'content' => Article::$visibleNames[$article->is_visibled]));
     }
     $this->_clean_cell($article);
     return $this->output_json(array('status' => true, 'message' => '更新成功!', 'content' => Article::$visibleNames[$article->is_visibled]));
 }