protected function _run() { $key = $this->getCacheKey() . 'run'; $dependency = new TagDependency(['tags' => [$this->className() . (string) $this->namespace, (new CmsSite())->getTableCacheTag()]]); $result = \Yii::$app->cache->get($key); if ($result === false || $this->enabledRunCache == Cms::BOOL_N) { $this->activeQuery = CmsSite::find(); if ($this->active == Cms::BOOL_Y) { $this->activeQuery->active(); } else { if ($this->active == Cms::BOOL_N) { $this->activeQuery->active(false); } } if ($this->limit) { $this->activeQuery->limit($limit); } if ($this->orderBy) { $this->activeQuery->orderBy([$this->orderBy => (int) $this->order]); } $result = parent::_run(); \Yii::$app->cache->set($key, $result, (int) $this->runCacheDuration, $dependency); } return $result; }
public function setupCriteria() { $this->activeQuery->joinWith('content'); $this->activeQuery->joinWith('content.createdBy'); $this->activeQuery->joinWith('content.contentContainer'); $this->activeQuery->limit($this->limit); $this->activeQuery->andWhere(['user.status' => User::STATUS_ENABLED]); /** * Handle Stream Mode (Normal Stream or Activity Stream) */ if ($this->mode == self::MODE_ACTIVITY) { $this->activeQuery->andWhere(['content.object_model' => \humhub\modules\activity\models\Activity::className()]); // Dont show own activities if ($this->user !== null) { $this->activeQuery->leftJoin('activity', 'content.object_id=activity.id AND content.object_model=:activityModel', ['activityModel' => \humhub\modules\activity\models\Activity::className()]); $this->activeQuery->andWhere('content.created_by != :userId', array(':userId' => $this->user->id)); } } else { $this->activeQuery->andWhere(['!=', 'content.object_model', \humhub\modules\activity\models\Activity::className()]); } /** * Setup Sorting */ if ($this->sort == self::SORT_UPDATED_AT) { $this->activeQuery->orderBy('wall_entry.updated_at DESC'); if ($this->from != "") { $this->activeQuery->andWhere("wall_entry.updated_at < (SELECT updated_at FROM wall_entry wd WHERE wd.id=" . $this->from . ")"); } } else { $this->activeQuery->orderBy('wall_entry.id DESC'); if ($this->from != "") { $this->activeQuery->andWhere("wall_entry.id < " . $this->from); } } }
/** * @return array|\yii\db\ActiveRecord[] */ public function findAll() { $this->query->limit($this->limit); return $this->query->all(); }