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; }
/** * @param int $sort * @return $this */ public function sort($sort = SORT_DESC) { /** @var ISortableActiveRecord $model */ $model = new $this->owner->modelClass(); $behavior = $model->getSortBehavior(); $this->owner->orderBy([$behavior->attributeName => $sort]); return $this; }
/** * Apply possible answers order to query * @param ActiveQuery $query * @param $order * @return string */ public static function applyOrder(ActiveQuery $query, $order) { switch ($order) { case 'oldest': $query->orderBy('created_at DESC'); break; case 'active': $query->orderBy('created_at ASC'); break; case 'votes': default: $query->orderBy('votes DESC'); break; } return $order; }
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); } } }
protected function _run() { $key = $this->getCacheKey() . 'run'; $dependency = new TagDependency(['tags' => [$this->className() . (string) $this->namespace, (new Tree())->getTableCacheTag()]]); $result = \Yii::$app->cache->get($key); if ($result === false || $this->enabledRunCache == Cms::BOOL_N) { $this->activeQuery = Tree::find(); if ($this->treePid) { $this->activeQuery->andWhere(['pid' => $this->treePid]); } if ($this->level) { $this->activeQuery->andWhere(['level' => $this->level]); } if ($this->active) { $this->activeQuery->andWhere(['active' => $this->active]); } if ($this->site_codes) { $this->activeQuery->andWhere(['site_code' => $this->site_codes]); } if ($this->enabledCurrentSite == Cms::BOOL_Y && ($currentSite = \Yii::$app->cms->site)) { $this->activeQuery->andWhere(['site_code' => $currentSite->code]); } if ($this->orderBy) { $this->activeQuery->orderBy([$this->orderBy => (int) $this->order]); } if ($this->tree_type_ids) { $this->activeQuery->andWhere(['tree_type_id' => $this->tree_type_ids]); } /** * */ if ($this->with) { $this->activeQuery->with($this->with); } if ($this->activeQueryCallback && is_callable($this->activeQueryCallback)) { $callback = $this->activeQueryCallback; $callback($this->activeQuery); } $result = parent::_run(); \Yii::$app->cache->set($key, $result, (int) $this->runCacheDuration, $dependency); } return $result; }
public function getDataprovider() { $query = new ActiveQuery($this::className()); if ($this->airport_id) { $query->andWhere(['airport_id' => $this->airport_id]); } $query->andWhere(['isarrival' => $this->isarrival]); $query->orderBy($this->isarrival == 1 ? "timeto" : "timefrom"); return new ActiveDataProvider(['query' => $query]); }