Remove languages,make the link not required, add hook displayHeroBanner
This commit is contained in:
@@ -79,6 +79,9 @@ class ImageSliderFormDataHandler implements FormDataHandlerInterface
|
||||
$imageSlide->setPosition($this->imageSliderRepository->getHighestPosition() + 1);
|
||||
$this->addAssociatedShops($imageSlide, $data['shop_association'] ?? null);
|
||||
|
||||
$uploadedImage = !empty($data['image']) ? $this->uploadFile($data['image']) : null;
|
||||
$uploadedImageMobile = !empty($data['image_mobile']) ? $this->uploadFile($data['image_mobile']) : null;
|
||||
|
||||
foreach ($this->languages as $language) {
|
||||
$langId = (int) $language['id_lang'];
|
||||
$lang = $this->langRepository->findOneById($langId);
|
||||
@@ -87,16 +90,16 @@ class ImageSliderFormDataHandler implements FormDataHandlerInterface
|
||||
$imageSliderLang
|
||||
->setLang($lang)
|
||||
->setTitle($data['title'][$langId] ?? '')
|
||||
->setUrl($data['url'][$langId] ?? '')
|
||||
->setUrl($data['url'] ?? '')
|
||||
->setLegend($data['legend'][$langId] ?? '')
|
||||
->setDescription($data['description'][$langId] ?? '');
|
||||
|
||||
if (!empty($data['image'][$langId])) {
|
||||
$imageSliderLang->setImage($this->uploadFile($data['image'][$langId]));
|
||||
if ($uploadedImage !== null) {
|
||||
$imageSliderLang->setImage($uploadedImage);
|
||||
}
|
||||
|
||||
if (!empty($data['image_mobile'][$langId])) {
|
||||
$imageSliderLang->setImageMobile($this->uploadFile($data['image_mobile'][$langId]));
|
||||
if ($uploadedImageMobile !== null) {
|
||||
$imageSliderLang->setImageMobile($uploadedImageMobile);
|
||||
}
|
||||
|
||||
$imageSlide->addImageSliderLang($imageSliderLang);
|
||||
@@ -122,6 +125,9 @@ class ImageSliderFormDataHandler implements FormDataHandlerInterface
|
||||
$imageSlide->setDisplayTo($data['display_to'] ?? new \DateTime());
|
||||
$this->addAssociatedShops($imageSlide, $data['shop_association'] ?? null);
|
||||
|
||||
$uploadedImage = !empty($data['image']) ? $this->uploadFile($data['image']) : null;
|
||||
$uploadedImageMobile = !empty($data['image_mobile']) ? $this->uploadFile($data['image_mobile']) : null;
|
||||
|
||||
foreach ($this->languages as $language) {
|
||||
$langId = (int) $language['id_lang'];
|
||||
$imageSliderLang = $imageSlide->getImageSliderLangByLangId($langId);
|
||||
@@ -136,22 +142,22 @@ class ImageSliderFormDataHandler implements FormDataHandlerInterface
|
||||
|
||||
$imageSliderLang
|
||||
->setTitle($data['title'][$langId] ?? '')
|
||||
->setUrl($data['url'][$langId] ?? '')
|
||||
->setUrl($data['url'] ?? '')
|
||||
->setLegend($data['legend'][$langId] ?? '')
|
||||
->setDescription($data['description'][$langId] ?? '');
|
||||
|
||||
if (!empty($data['image'][$langId])) {
|
||||
if ($uploadedImage !== null) {
|
||||
if ($imageSliderLang->getImage() !== null) {
|
||||
$this->eraseFile($imageSliderLang->getImage());
|
||||
}
|
||||
$imageSliderLang->setImage($this->uploadFile($data['image'][$langId]));
|
||||
$imageSliderLang->setImage($uploadedImage);
|
||||
}
|
||||
|
||||
if (!empty($data['image_mobile'][$langId])) {
|
||||
if ($imageSliderLang->getImage() !== null) {
|
||||
if ($uploadedImageMobile !== null) {
|
||||
if ($imageSliderLang->getImageMobile() !== null) {
|
||||
$this->eraseFile($imageSliderLang->getImageMobile());
|
||||
}
|
||||
$imageSliderLang->setImageMobile($this->uploadFile($data['image_mobile'][$langId]));
|
||||
$imageSliderLang->setImageMobile($uploadedImageMobile);
|
||||
}
|
||||
|
||||
if ($newImageSliderLang) {
|
||||
|
||||
@@ -5,7 +5,6 @@ declare(strict_types=1);
|
||||
namespace Oksydan\IsImageslider\Form;
|
||||
|
||||
use Oksydan\IsImageslider\Translations\TranslationDomains;
|
||||
use Oksydan\IsImageslider\Type\TranslatableFile;
|
||||
use PrestaShopBundle\Form\Admin\Type\FormattedTextareaType;
|
||||
use PrestaShopBundle\Form\Admin\Type\ImagePreviewType;
|
||||
use PrestaShopBundle\Form\Admin\Type\ShopChoiceTreeType;
|
||||
@@ -63,37 +62,25 @@ class ImageSliderType extends TranslatorAwareType
|
||||
}
|
||||
|
||||
$builder
|
||||
->add('image_preview', TranslatableType::class, [
|
||||
'type' => ImagePreviewType::class,
|
||||
->add('image_preview', ImagePreviewType::class, [
|
||||
'label' => $this->trans('Image preview', TranslationDomains::TRANSLATION_DOMAIN_ADMIN),
|
||||
'locales' => $this->locales,
|
||||
'required' => false,
|
||||
])
|
||||
->add('image', TranslatableFile::class, [
|
||||
'type' => FileType::class,
|
||||
->add('image', FileType::class, [
|
||||
'label' => $this->trans('Image', TranslationDomains::TRANSLATION_DOMAIN_ADMIN),
|
||||
'locales' => $this->locales,
|
||||
'options' => [
|
||||
'data_class' => null,
|
||||
'constraints' => $imageConstrains,
|
||||
],
|
||||
'required' => true,
|
||||
'data_class' => null,
|
||||
'constraints' => $imageConstrains,
|
||||
'required' => !$isEdit,
|
||||
])
|
||||
->add('image_mobile_preview', TranslatableType::class, [
|
||||
'type' => ImagePreviewType::class,
|
||||
->add('image_mobile_preview', ImagePreviewType::class, [
|
||||
'label' => $this->trans('Image mobile preview', TranslationDomains::TRANSLATION_DOMAIN_ADMIN),
|
||||
'locales' => $this->locales,
|
||||
'required' => false,
|
||||
])
|
||||
->add('image_mobile', TranslatableFile::class, [
|
||||
'type' => FileType::class,
|
||||
->add('image_mobile', FileType::class, [
|
||||
'label' => $this->trans('Image mobile', TranslationDomains::TRANSLATION_DOMAIN_ADMIN),
|
||||
'locales' => $this->locales,
|
||||
'options' => [
|
||||
'data_class' => null,
|
||||
'constraints' => $imageConstrains,
|
||||
],
|
||||
'required' => true,
|
||||
'data_class' => null,
|
||||
'constraints' => $imageConstrains,
|
||||
'required' => false,
|
||||
])
|
||||
->add('title', TranslatableType::class, [
|
||||
'type' => TextType::class,
|
||||
@@ -107,15 +94,11 @@ class ImageSliderType extends TranslatorAwareType
|
||||
'locales' => $this->locales,
|
||||
'required' => false,
|
||||
])
|
||||
->add('url', TranslatableType::class, [
|
||||
'type' => TextType::class,
|
||||
->add('url', TextType::class, [
|
||||
'label' => $this->trans('Link', TranslationDomains::TRANSLATION_DOMAIN_ADMIN),
|
||||
'locales' => $this->locales,
|
||||
'required' => true,
|
||||
'options' => [
|
||||
'constraints' => [
|
||||
new NotBlank(),
|
||||
],
|
||||
'constraints' => [
|
||||
new NotBlank(),
|
||||
],
|
||||
])
|
||||
->add('description', TranslatableType::class, [
|
||||
|
||||
@@ -77,16 +77,20 @@ class ImageSliderFormDataProvider implements FormDataProviderInterface
|
||||
$slideData['display_from'] = $imageSlide->getDisplayFrom();
|
||||
$slideData['display_to'] = $imageSlide->getDisplayTo();
|
||||
|
||||
$firstLang = true;
|
||||
foreach ($imageSlide->getSliderLangs() as $imageSlideLang) {
|
||||
$slideData['title'][$imageSlideLang->getLang()->getId()] = $imageSlideLang->getTitle();
|
||||
$slideData['legend'][$imageSlideLang->getLang()->getId()] = $imageSlideLang->getLegend();
|
||||
$slideData['url'][$imageSlideLang->getLang()->getId()] = $imageSlideLang->getUrl();
|
||||
$slideData['description'][$imageSlideLang->getLang()->getId()] = $imageSlideLang->getDescription();
|
||||
$slideData['image'][$imageSlideLang->getLang()->getId()] = $imageSlideLang->getImage();
|
||||
$slideData['image_mobile'][$imageSlideLang->getLang()->getId()] = $imageSlideLang->getImageMobile();
|
||||
|
||||
$slideData['image_preview'][$imageSlideLang->getLang()->getId()] = $this->imagesliderImageThumbProvider->getPath($imageSlideLang->getImage()) ?? $this->placeholderImage;
|
||||
$slideData['image_mobile_preview'][$imageSlideLang->getLang()->getId()] = $this->imagesliderImageThumbProvider->getPath($imageSlideLang->getImageMobile()) ?? $this->placeholderImage;
|
||||
if ($firstLang) {
|
||||
$slideData['url'] = $imageSlideLang->getUrl();
|
||||
$slideData['image'] = $imageSlideLang->getImage();
|
||||
$slideData['image_mobile'] = $imageSlideLang->getImageMobile();
|
||||
$slideData['image_preview'] = $this->imagesliderImageThumbProvider->getPath($imageSlideLang->getImage()) ?? $this->placeholderImage;
|
||||
$slideData['image_mobile_preview'] = $this->imagesliderImageThumbProvider->getPath($imageSlideLang->getImageMobile()) ?? $this->placeholderImage;
|
||||
$firstLang = false;
|
||||
}
|
||||
}
|
||||
|
||||
return $slideData;
|
||||
@@ -113,11 +117,11 @@ class ImageSliderFormDataProvider implements FormDataProviderInterface
|
||||
public function getDefaultData(): array
|
||||
{
|
||||
return [
|
||||
'image_preview' => $this->getImagePreviewPlaceholder(),
|
||||
'image_mobile_preview' => $this->getImagePreviewPlaceholder(),
|
||||
'image_preview' => $this->placeholderImage,
|
||||
'image_mobile_preview' => $this->placeholderImage,
|
||||
'title' => [],
|
||||
'legend' => [],
|
||||
'url' => [],
|
||||
'url' => '',
|
||||
'description' => [],
|
||||
'active' => false,
|
||||
'display_from' => new \DateTime(),
|
||||
|
||||
Reference in New Issue
Block a user