public static function getBlockData($name, $key = null) { if (empty($name)) { throw new Exception('Name is mandatory'); } $cacheKey = 'textblock_' . md5($name . $key); $returnData = self::getBlockFromCache($cacheKey); if (empty($returnData)) { $returnData = []; $query = TextBlock::find(); $query->language(); $query->andWhere(['name' => $name]); $query->andFilterWhere(['key' => $key]); $data = $query->all(); if (!empty($data)) { foreach ($data as $dataItem) { if ($dataItem->key) { $returnData[$dataItem->key] = $dataItem->text; } else { $returnData = $dataItem->text; } } } self::saveBlockToCache($cacheKey, $returnData); } return empty($key) ? $returnData : $returnData[$key]; }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = TextBlock::find(); $query->language(); $query->orderBy(['name' => SORT_ASC]); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'key', $this->key])->andFilterWhere(['like', 'text', $this->text]); return $dataProvider; }