Example #1
0
 public function actionDetails($id)
 {
     $item = SiteArticle::findOne(['id' => $id, 'site_id' => $this->module->siteId, 'status' => [SiteArticle::STATUS_RELEASED, SiteArticle::STATUS_FEATURED]]);
     if (!$item || $item->superior->status != SiteCategory::STATUS_ENABLED || $item->superior->type == SiteCategory::TYPE_DOWNLOAD) {
         throw new NotFoundHttpException(\Yii::t($this->module->messageCategory, 'no matched data'));
     }
     return $this->accessed()->render($this->action->id, ['item' => $item->accessed($this->module->statisticsEnable)]);
 }
Example #2
0
 /**
  * Get articles belongs it
  *
  * @since 0.0.1
  * @return {array}
  */
 public function getArticles()
 {
     return $this->hasMany(SiteArticle::classname(), ['category_id' => 'id']);
 }
Example #3
0
 /**
  * Get cache model
  *
  * @since 0.0.1
  * @return {object}
  */
 protected function getCacheTarget($type)
 {
     switch ($type) {
         case static::TYPE_CATEGORY:
             $cache_id = $this->category_id;
             $classname = SiteCategory::classname();
             break;
         case static::TYPE_ARTICLE:
             $cache_id = $this->article_id;
             $classname = SiteArticle::classname();
             break;
     }
     if (!$cache_id && $this->getOldAttribute('type') == $type) {
         $cache_id = $this->getOldAttribute('target_id');
     }
     return $classname::findOne(['id' => $cache_id, 'site_id' => $this->site_id]);
 }
Example #4
0
 public function actionList($cid = 0, $type = 'all', $status = 'all', $stype = null, $sword = null)
 {
     $query = SiteArticle::find()->alias('a')->where(['a.site_id' => $this->module->siteId])->orderby('a.status desc, a.created_at desc');
     if ($cid) {
         $query->andWhere(['a.category_id' => $cid]);
     }
     if ($type != 'all') {
         $query->joinWith('category b')->andWhere(['b.type' => $type]);
     }
     if ($status != 'all') {
         $query->andWhere(['a.status' => $status]);
     }
     if ($sword !== null) {
         $query->andWhere(['like', "a.{$stype}", $sword]);
     }
     $pagination = new Pagination(['totalCount' => $query->count()]);
     $items = $query->offset($pagination->offset)->limit($pagination->limit)->all();
     $categoryItems = ArrayHelper::merge([0 => \Yii::t($this->module->messageCategory, '{attribute} {action}', ['attribute' => \Yii::t($this->module->messageCategory, 'category'), 'action' => \Yii::t($this->module->messageCategory, 'filtering')])], ArrayHelper::map(SiteCategory::find()->select(['id', 'name'])->where(['site_id' => $this->module->siteId])->orderby('created_at desc')->all(), 'id', 'name'));
     $categoryTypeItems = ArrayHelper::merge(['all' => \Yii::t($this->module->messageCategory, '{attribute} {action}', ['attribute' => \Yii::t($this->module->messageCategory, 'type'), 'action' => \Yii::t($this->module->messageCategory, 'filtering')])], SiteCategory::defaultAttributeItems('type'));
     $statusItems = ArrayHelper::merge(['all' => \Yii::t($this->module->messageCategory, '{attribute} {action}', ['attribute' => \Yii::t($this->module->messageCategory, 'status'), 'action' => \Yii::t($this->module->messageCategory, 'filtering')])], SiteArticle::defaultAttributeItems('status'));
     return $this->render($this->action->id, ['cid' => $cid, 'type' => $type, 'status' => $status, 'stype' => $stype, 'sword' => $sword, 'items' => $items, 'pagination' => $pagination, 'categoryItems' => $categoryItems, 'categoryTypeItems' => $categoryTypeItems, 'statusItems' => $statusItems]);
 }