예제 #1
0
 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];
 }
예제 #2
0
 /**
  * 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;
 }