skeeks\cms\cmsWidgets\treeMenu\TreeMenuCmsWidget::_run PHP Method

_run() protected method

protected _run ( )
    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;
    }