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)]); }
public function actionEdit($id = 0, $cid = 0) { $categorys = SiteCategory::find()->select(['id', 'name', 'type'])->where(['site_id' => $this->module->siteId, 'status' => SiteCategory::STATUS_ENABLED])->orderby('created_at desc')->all(); if (!$categorys) { \Yii::$app->session->setFlash('error', '1|' . \Yii::t($this->module->messageCategory, 'please {action} {attribute} first', ['action' => \Yii::t($this->module->messageCategory, 'add'), 'attribute' => \Yii::t($this->module->messageCategory, 'category')])); return $this->redirect(['category/edit']); } if (!$id) { $item = new SiteArticle(); $item->scenario = 'add'; $item->site_id = $this->module->siteId; if ($cid) { $item->category_id = $cid; } } else { $item = SiteArticle::findOne(['id' => $id, 'site_id' => $this->module->siteId]); if (!$item) { throw new NotFoundHttpException(\Yii::t($this->module->messageCategory, 'no matched data')); } $item->scenario = 'edit'; } if (\Yii::$app->request->isPost) { $item->thumbnail_id = null; $item->picture_ids = []; $item->attachment_id = null; if ($item->load(\Yii::$app->request->post()) && $item->commonHandler()) { \Yii::$app->session->setFlash('item', '0|' . \Yii::t($this->module->messageCategory, 'operation succeeded')); return $this->redirect(['article/list', 'cid' => $item->category_id]); } \Yii::$app->session->setFlash('item', '1|' . $item->firstErrorInfirstErrors); } $categoryNames = ArrayHelper::map($categorys, 'id', 'name'); $categoryTypes = ArrayHelper::map($categorys, 'id', 'type'); $categoryTypeItems = SiteCategory::defaultAttributeItems('type'); return $this->render($this->action->id, ['item' => $item, 'categoryNames' => $categoryNames, 'categoryTypes' => Json::encode($categoryTypes), 'categoryTypeItems' => Json::encode($categoryTypeItems)]); }