Ejemplo n.º 1
0
 public function run()
 {
     $images = GalleryImages::find()->where(['gallery_groups_id' => $this->gallery_groups_id])->orderBy('seq')->all();
     if (!$images) {
         return false;
     }
     foreach ($images as $i => $image) {
         $items_large[] = Html::a(Html::img($image->large, ['class' => 'img-rounded']), $image->large, ['rel' => 'gl-fancybox']);
         $items_small[] = Html::img($image->small, ['class' => 'gl-slider-prev']);
     }
     echo Slick::widget(['itemContainer' => 'div', 'containerOptions' => ['class' => 'gl-slider-for'], 'items' => $items_large, 'clientOptions' => ['asNavFor' => '.gl-slider-nav', 'slidesToShow' => 1, 'slidesToScroll' => 1, 'arrows' => false, 'fade' => true]]);
     echo Slick::widget(['itemContainer' => 'div', 'containerOptions' => ['class' => 'gl-slider-nav' . (count($images) > 1 ? '' : ' hide')], 'items' => $items_small, 'clientOptions' => ['asNavFor' => '.gl-slider-for', 'slidesToShow' => count($images), 'slidesToScroll' => count($images), 'dots' => false, 'arrows' => false, 'autoplay' => false, 'focusOnSelect' => true]]);
     echo FancyBox::widget(['target' => 'a[rel=gl-fancybox]', 'helpers' => true, 'mouse' => true, 'config' => ['maxWidth' => '90%', 'maxHeight' => '90%', 'playSpeed' => 4000, 'padding' => 0, 'fitToView' => false, 'width' => '70%', 'height' => '70%', 'autoSize' => false, 'closeClick' => false, 'openEffect' => 'elastic', 'closeEffect' => 'elastic', 'prevEffect' => 'elastic', 'nextEffect' => 'elastic', 'closeBtn' => false, 'openOpacity' => true, 'helpers' => ['title' => ['type' => 'float'], 'buttons' => [], 'thumbs' => ['width' => 68, 'height' => 50], 'overlay' => ['css' => ['background' => 'rgba(0, 0, 0, 0.8)']]]]]);
     $view = $this->view;
     GalleryAdAsset::register($view);
 }
Ejemplo n.º 2
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getGalleryImage()
 {
     return $this->hasOne(GalleryImages::className(), ['id' => 'gallery_images_id']);
 }
Ejemplo n.º 3
0
 private function addImage($item, $src_gallery_types_id, $links_id, $shop_goods_id = null)
 {
     $gallery_groups = array();
     foreach ($item as $image_sxe) {
         $basename_src = basename(strval($image_sxe->{'ПутьКИзображению'}));
         if (!$basename_src) {
             continue;
         }
         $src_image = pathinfo($this->import_file)['dirname'] . '/' . strval($image_sxe->{'ПутьКИзображению'});
         if (!is_file($src_image)) {
             continue;
         }
         $gallery_types_id = false;
         $alt = '';
         foreach (Yii::$app->params['shop']['gallery'] as $name => $id) {
             if (!$gallery_types_id && strripos($basename_src, '_' . $name) !== false) {
                 $gallery_types_id = $id;
                 preg_match('/\\[(.+)\\]/', $basename_src, $matches);
                 $alt = isset($matches[1]) ? $matches[1] : '';
             }
         }
         if (!$gallery_types_id) {
             $gallery_types_id = $src_gallery_types_id;
         }
         if (GalleryTypes::findOne($gallery_types_id)) {
             $gallery_groups[$gallery_types_id][] = ['name' => $basename_src, 'src_image' => $src_image, 'alt' => $alt, 'default' => $image_sxe->{'ОсновноеИзображение'} == 1 ? 1 : 0];
         }
     }
     if (!$gallery_groups) {
         return false;
     }
     $link = Links::findOne($links_id);
     foreach ($gallery_groups as $gallery_types_id => $images) {
         $gallery_group = false;
         if ($shop_goods_id) {
             $good_gallery = ShopGoodGallery::findOne(['shop_goods_id' => $shop_goods_id, 'gallery_types_id' => $gallery_types_id]);
             if (!$good_gallery) {
                 $gallery_group = new GalleryGroups();
                 $gallery_group->gallery_types_id = $gallery_types_id;
                 $gallery_group->save();
                 $good_gallery = new ShopGoodGallery();
                 $good_gallery->shop_goods_id = $shop_goods_id;
                 $good_gallery->gallery_types_id = $gallery_types_id;
                 $good_gallery->gallery_groups_id = $gallery_group->id;
                 $good_gallery->save();
             } else {
                 $gallery_group = GalleryGroups::findOne($good_gallery->gallery_groups_id);
             }
         } elseif (in_array($gallery_types_id, Yii::$app->params['shop']['galleryLink'])) {
             if (!$link->gallery_images_id) {
                 $gallery_group = new GalleryGroups();
                 $gallery_group->gallery_types_id = $gallery_types_id;
                 $gallery_group->save();
             } else {
                 $gallery_group = GalleryGroups::findOne($link->galleryImage->gallery_groups_id);
             }
         }
         if ($gallery_group) {
             foreach ($images as $index => $image) {
                 $gallery_image = GalleryImages::findOne(['gallery_groups_id' => $gallery_group->id, 'name' => $image['name']]);
                 if (!$gallery_image) {
                     $new_image = $this->saveImage($image['src_image'], $gallery_types_id, $gallery_group->id);
                     if (isset($new_image['small']) && isset($new_image['large'])) {
                         $gallery_image = new GalleryImages();
                         $gallery_image->gallery_groups_id = $gallery_group->id;
                         $gallery_image->small = $new_image['small'];
                         $gallery_image->large = $new_image['large'];
                         $gallery_image->name = $image['name'];
                         $gallery_image->alt = $image['alt'];
                         $gallery_image->seq = $new_image['seq'];
                         $gallery_image->save();
                     }
                 } else {
                     if ($gallery_image->alt != $image['alt']) {
                         $gallery_image->alt = $image['alt'];
                         $gallery_image->update();
                     }
                 }
                 if ($image['default'] == 1) {
                     if ($gallery_group->gallery_images_id != $gallery_image->id) {
                         $gallery_group->gallery_images_id = $gallery_image->id;
                         $gallery_group->update();
                     }
                     if ($gallery_image->id && $link->gallery_images_id != $gallery_image->id) {
                         $link->gallery_images_id = $gallery_image->id;
                         $link->update();
                     }
                 }
             }
             $gallery_images = GalleryImages::find()->where(['gallery_groups_id' => $gallery_group->id])->orderBy(['seq' => SORT_ASC])->all();
             $resort_images = false;
             foreach ($gallery_images as $gallery_image) {
                 $delete_image = true;
                 foreach ($images as $index => $image) {
                     if ($image['name'] == $gallery_image->name) {
                         $delete_image = false;
                     }
                 }
                 if ($delete_image) {
                     $resort_images = true;
                     GalleryImages::findOne($gallery_image->id)->delete();
                     unlink(Yii::getAlias('@frontend/web') . $gallery_image->small);
                     unlink(Yii::getAlias('@frontend/web') . $gallery_image->large);
                 }
             }
             if ($resort_images) {
                 $gallery = new Gallery();
                 $gallery->resortImages($gallery_group->id);
             }
         }
     }
 }
Ejemplo n.º 4
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getGalleryImages()
 {
     return $this->hasMany(GalleryImages::className(), ['gallery_groups_id' => 'id']);
 }