public function actionIndex() { $this->title = Yii::$app->name; $this->description = 'V2SEX,一个很实在的技术宅的专属社区。在这里交流技术,各种创意点子,聊妹子,聊男人,同性恋,各种兴趣爱好,提问,甚至可以交流AV。'; $tab = Yii::$app->request->get('tab'); $sessionTab = Yii::$app->session->get('tab'); if (Yii::$app->request->get('tab') === null) { if (empty($sessionTab)) { Yii::$app->session->set('tab', 'tech'); $tab = 'tech'; } else { $tab = $sessionTab; } } else { if (Tab::findOne(['enname' => $tab]) !== null) { Yii::$app->session->set('tab', $tab); } else { Yii::$app->session->set('tab', 'tech'); $tab = 'tech'; } } $tabModel = Tab::find()->where(['enname' => $tab])->one(); if (!empty($tabModel->bg) && $tabModel->use_bg == 1) { $this->bg = $tabModel->bg; } if (!empty($tabModel->bg_color)) { $this->bg_color = $tabModel->bg_color; } if ($tab == 'new') { $topic = (new Query())->select('topic.*, node.enname, node.name, user.username, user.avatar')->from(Topic::tableName() . ' topic')->leftJoin(Node::tableName() . ' node', 'node.id = topic.node_id')->leftJoin(User::tableName() . ' user', 'user.id = topic.user_id')->where('node.is_hidden = 0')->orderBy(['topic.updated_at' => SORT_DESC])->limit(20)->all(); } else { $topic = (new Query())->select('topic.*, node.enname, node.name, user.username, user.avatar')->from(Topic::tableName() . ' topic')->leftJoin(Node::tableName() . ' node', 'node.id = topic.node_id')->leftJoin(User::tableName() . ' user', 'user.id = topic.user_id')->where('node.is_hidden = 0')->andWhere(['in', 'topic.node_id', Tab::SubNodeId($tab)])->orderBy(['topic.updated_at' => SORT_DESC])->limit(20)->all(); } return $this->render('index', ['topic' => $topic]); }
/** * 获取tab的节点id,有缓存就获取缓存,用来取tab下面的节点建议 * @return array|\yii\db\ActiveRecord[] */ static function SubNodeId($enname) { if (!($SubNodeId = Yii::$app->cache->get('subnodeid' . $enname))) { $tab = Tab::findOne(['enname' => $enname]); if (empty($tab->id)) { return []; } $SubNodeId = ArrayHelper::map(Node::find()->where(['tab_id' => $tab->id])->andWhere(['is_hidden' => 0])->all(), 'id', 'id'); Yii::$app->cache->set('subnodeid' . $enname, $SubNodeId, 0); } return $SubNodeId; }
public function create() { $this->created = time(); if ($this->validate()) { $this->logo = UploadedFile::getInstance($this, 'logo'); if ($this->logo != null) { $filename = date('Ymdhis') . rand(1000, 9999); $this->logo->saveAs(Yii::getAlias('@node') . '/origin/' . $filename . '.' . $this->logo->extension); $extension = $this->logo->extension; $this->logo = $filename . '.' . $extension; Image::thumbnail(Yii::getAlias('@node') . '/origin/' . $filename . '.' . $extension, 80, 80)->save(Yii::getAlias('@node') . '/80/' . $filename . '.' . $extension, ['quality' => 80]); Image::thumbnail(Yii::getAlias('@node') . '/origin/' . $filename . '.' . $extension, 48, 48)->save(Yii::getAlias('@node') . '/48/' . $filename . '.' . $extension, ['quality' => 80]); Image::thumbnail(Yii::getAlias('@node') . '/origin/' . $filename . '.' . $extension, 24, 24)->save(Yii::getAlias('@node') . '/24/' . $filename . '.' . $extension, ['quality' => 80]); } else { $this->addError('logo', 'logo不能为空'); return false; } $this->bg = UploadedFile::getInstance($this, 'bg'); if ($this->bg != null) { $filename = date('Ymdhis') . rand(1000, 9999); $this->bg->saveAs(Yii::getAlias('@bg') . '/' . $filename . '.' . $this->bg->extension); $extension = $this->bg->extension; $this->bg = $filename . '.' . $extension; } if (!empty($this->tab_id)) { Yii::$app->cache->delete('subnodeid' . Tab::findOne($this->tab_id)->enname); } return $this->save(); } return false; }
/** * Finds the Tab model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param integer $id * @return Tab the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = Tab::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
static function TabAd($tab) { if (!($TabAd = Yii::$app->cache->get('TabAd' . $tab))) { $TabModel = Tab::findOne(['enname' => $tab]); if (!empty($TabModel->id)) { $TabAd = TabAd::find()->where(['tab_id' => $TabModel->id])->asArray()->all(); Yii::$app->cache->set('TabAd' . $tab, $TabAd, 0); } else { return null; } } return $TabAd; }