示例#1
0
 public function run($albumId = null)
 {
     $images = GalleryImage::find();
     if (!empty($albumId)) {
         $images->where(['album_id' => $albumId]);
     }
     $images = $images->all();
     return $this->controller->render('list', ['images' => $images]);
 }
 public function run($id = null, $langId = null)
 {
     /* @var GalleryImage $image */
     /* @var GalleryImageTranslation $imageTranslation */
     $language = $langId == null ? Language::getDefault() : Language::findOne($langId);
     if (empty($id)) {
         $image = new GalleryImage();
         $image->show = true;
         $imageTranslation = new GalleryImageTranslation();
     } else {
         $image = GalleryImage::findOne($id);
         if (empty($image)) {
             return $this->controller->redirect('/gallery/album/list');
         }
         $imageTranslation = $image->getTranslation($language->id);
         if (empty($imageTranslation)) {
             $imageTranslation = new GalleryImageTranslation();
         }
     }
     if (Yii::$app->request->isPost) {
         $post = Yii::$app->request->post();
         if ($image->load($post) && $imageTranslation->load($post)) {
             $image->image_file = UploadedFile::getInstance($image, 'image_file');
             if (!empty($image->image_file)) {
                 try {
                     // save image
                     $fileName = $this->generateFileName($image->image_file->baseName);
                     //                        die(\Imagick::getVersion());
                     $imagine = new Imagine();
                     $imagine->open($image->image_file->tempName)->save(Yii::getAlias($this->controller->module->imagesPath . '/' . $fileName . '-original.jpg'))->thumbnail(new Box(400, 400), ImageInterface::THUMBNAIL_OUTBOUND)->save(Yii::getAlias($this->controller->module->imagesPath . '/' . $fileName . '-thumb.jpg'));
                     $image->file_name = $fileName;
                 } catch (\Exception $ex) {
                     $image->addError('image_file', 'File save failed');
                 }
             }
             if ($image->validate() && $imageTranslation->validate()) {
                 $image->save();
                 $imageTranslation->image_id = $image->id;
                 $imageTranslation->language_id = $language->id;
                 $imageTranslation->save();
                 $this->controller->redirect(['edit', 'id' => $image->id, 'langId' => $language->id]);
             }
         }
     }
     return $this->controller->render('create-edit', ['image' => $image, 'imageTranslation' => $imageTranslation, 'currentLanguage' => $language]);
 }
 public function actionView($id = null)
 {
     $images = GalleryImage::find()->from('gallery_album_image image')->joinWith('album album')->where(['image.show' => true, 'album.show' => true]);
     $album = null;
     if (!empty($id)) {
         $album = GalleryAlbum::findOne($id);
         if (!empty($album)) {
             $images->andWhere(['album.id' => $id]);
             $albumTranslation = $album->translation;
             if (!empty($albumTranslation)) {
                 $this->view->title = $albumTranslation->seoTitle;
                 $this->view->registerMetaTag(['name' => 'description', 'content' => html_entity_decode($albumTranslation->seoDescription)]);
                 $this->view->registerMetaTag(['name' => 'keywords', 'content' => html_entity_decode($albumTranslation->seoKeywords)]);
             }
         }
     } else {
         $this->registerStaticSeoData();
     }
     return $this->render('view', ['album' => $album, 'images' => $images->all(), 'albums' => GalleryAlbum::findAll(['show' => true]), 'albumId' => $id]);
 }
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getImage()
 {
     return $this->hasOne(GalleryImage::className(), ['id' => 'image_id']);
 }
 public function actionRemove($id)
 {
     GalleryImage::deleteAll(['id' => $id]);
     return $this->goBack(Url::to(['list']));
 }