예제 #1
0
 public function run()
 {
     $cacheKey = "ImgSearch:" . implode("_", [$this->objectId, $this->objectModelId, $this->viewFile, $this->limit, $this->offset, $this->thumbnailOnDemand ? '1' : '0', $this->thumbnailWidth, $this->thumbnailHeight]);
     $result = Yii::$app->cache->get($cacheKey);
     if ($result === false) {
         $images = Image::getForModel($this->objectId, $this->objectModelId);
         if ($this->offset > 0 || !is_null($this->limit)) {
             $images = array_slice($images, $this->offset, $this->limit);
         }
         $result = $this->render($this->viewFile, ['images' => $images, 'thumbnailOnDemand' => $this->thumbnailOnDemand, 'thumbnailWidth' => $this->thumbnailWidth, 'thumbnailHeight' => $this->thumbnailHeight, 'additionalParams' => $this->additionalParams]);
         Yii::$app->cache->set($cacheKey, $result, 86400, new \yii\caching\TagDependency(['tags' => 'Images:' . $this->objectId . ':' . $this->objectModelId]));
     }
     return $result;
 }
예제 #2
0
 /**
  * Returns additional fields data by field key.
  * If value of field is array it will be converted to string
  * using multipleValuesDelimiter specified in ImportModel
  * @return array
  */
 public function getAdditionalFields(array $configuration)
 {
     $result = [];
     if (isset($configuration['categories'], $configuration['categories']['processValuesAs']) && $configuration['categories']['enabled']) {
         if ($configuration['categories']['processValuesAs'] === 'id') {
             $result['categories'] = $this->getCategoryIds();
         } else {
             $ids = $this->getCategoryIds();
             $result['categories'] = [];
             foreach ($ids as $id) {
                 $category = Category::findById($id, null, null);
                 if ($category) {
                     $result['categories'][] = $category->getAttribute($configuration['categories']['processValuesAs']);
                 }
                 unset($category);
             }
         }
     }
     if (isset($configuration['images'], $configuration['images']['processValuesAs']) && $configuration['images']['enabled']) {
         $object = Object::getForClass($this->className());
         $images = Image::getForModel($object->id, $this->id);
         $result['images'] = ArrayHelper::getColumn($images, $configuration['images']['processValuesAs']);
     }
     return $result;
 }