Beispiel #1
0
 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;
 }
Beispiel #3
0
 /**
  * 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;
 }
Beispiel #4
0
 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);
         }
     }
 }
Beispiel #5
0
 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;
 }
Beispiel #6
0
 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]);
 }