Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Замена фотографии при клике


SiviS

Recommended Posts

Здравствуйте, подскажите пожалуйста модуль или способы изменения стандартных фотографий на Opencart 2.X в карточке товара.

Сейчас при клике на дополнительное изображение оно открывается в лайтбоксе, а необходимо что бы оно заменяло основное изображение.

На форуме не смог найти подобной темы, поэтому прошу совета у тех кто возможно уже реализовывал подобное.

Фото.jpg

Змінено користувачем SiviS
Надіслати
Поділитися на інших сайтах

Есть костыль

 

Перед редактированием, сохраните копию файла, чтобы можно было вернуть всё обратно

 

/catalog/view/theme/default/template/product/product.tpl

 

ищите

<?php if ($thumb) { ?>
            <li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>

добавляете к img id main

вот так

<?php if ($thumb) { ?>
            <li><a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img id="main" src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>

 

ищите

            <?php foreach ($images as $image) { ?>
            <li class="image-additional"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>
            <?php } ?>

добавляете onClick вот так

            <?php foreach ($images as $image) { ?>
            <li class="image-additional"><a class="thumbnail" href="<?php echo $image['popup']; ?>" title="<?php echo $heading_title; ?>" onclick="swap(this); return false;"> <img src="<?php echo $image['thumb']; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>
            <?php } ?>

перед

<?php echo $footer; ?>

добавляете

<script type="text/javascript">
           function swap(image) {
             document.getElementById("main").src = image.href;
         }
</script>

Пробуйте

Змінено користувачем unknown
  • +1 2
Надіслати
Поділитися на інших сайтах


Изображение заменяет, но при этом к сожалению почему то еще и лайтбокс с фотографией открывается. Как отменить открытие всплывающей фотографии? И если можете - подскажите сразу, можно ли сделать анимацию перехода фотографии (что бы скроллилось влево например)? Если да то как? Заранее спасибо большое, уже 70% моих проблем решено, сам не дошел почему то до этого.

 

Я так понимаю надо убрать

Quote

<?php echo $popup; ?>

И

Quote

<?php echo $image['popup']; ?>

Или заменить это на #?

Змінено користувачем SiviS
Надіслати
Поділитися на інших сайтах

Найдите и закомментируйте

$(document).ready(function() {
	$('.thumbnails').magnificPopup({
		type:'image',
		delegate: 'a',
		gallery: {
			enabled:true
		}
	});
});

 

Змінено користувачем unknown
  • +1 2
Надіслати
Поділитися на інших сайтах


Таааак, уже получилось, фотографии как надо меняются (правда без анимации), но теперь новая проблема - главная фотография (при нажатии на неё) она открывается тупо в той же вкладке как картинка:huh:

Надіслати
Поділитися на інших сайтах

Либо вообще без ссылки что бы было, либо что бы в лайтбоксе только основное изображение открывалось - в идеале было бы отлично)

Надіслати
Поділитися на інших сайтах

Чтобы без ссылки

убираете

href="<?php echo $popup; ?>"

в

<a class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>">

получается

            <?php if ($thumb) { ?>
            <li><a class="thumbnail" title="<?php echo $heading_title; ?>"><img id="main" src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>
            <?php } ?>

 

3 minutes ago, SiviS said:

либо что бы в лайтбоксе только основное изображение открывалось

 

Только одно изображение или галерея?

 

  • +1 1
Надіслати
Поділитися на інших сайтах


27 minutes ago, SiviS said:

Только одно, активное изображение (главное)

 

Главное изображение оборачиваем в div с классом main_img

к ссылке a добавляем id main_link

            <div class="main_img">
            <?php if ($thumb) { ?>
            <li><a id="main_link" class="thumbnail" href="<?php echo $popup; ?>" title="<?php echo $heading_title; ?>"><img id="main" src="<?php echo $thumb; ?>" title="<?php echo $heading_title; ?>" alt="<?php echo $heading_title; ?>" /></a></li>
            <?php } ?>
            </div>

 

popup меняем с

$(document).ready(function() {
	$('.thumbnails').magnificPopup({
		type:'image',
		delegate: 'a',
		gallery: {
			enabled:true
		}
	});
});

на

$(document).ready(function() {
  $('.main_img').magnificPopup({
    type:'image',
    delegate: 'a'
  });
});

 

скрипт

<script type="text/javascript">
  function swap(image) {
    document.getElementById("main").src = image.href;
    document.getElementById("main_link").href = image.href;
  }
</script>

 

Змінено користувачем unknown
  • +1 1
Надіслати
Поділитися на інших сайтах


  • 9 months later...

Решение пригодилось, давно искал. Единственное, с чем борюсь, это при клике на изображение, берется "всплывающее изображение", а не изображение миниатюры...

Надіслати
Поділитися на інших сайтах


В общем накидал модуль из всего вышеперечисленного,

Поучился swap image , т.е при нажатии на миниатюру она заменяется на большую картинку.

А при нажатии на большую картинку открывается popup со всей галереей.

Работает на opencart 2 x

product_swap_image.ocmod.xml

Надіслати
Поділитися на інших сайтах


  • 3 months later...
В 15.02.2018 в 20:06, IvanKK сказал:

В общем накидал модуль из всего вышеперечисленного,

Поучился swap image , т.е при нажатии на миниатюру она заменяется на большую картинку.

А при нажатии на большую картинку открывается popup со всей галереей.

Работает на opencart 2 x

product_swap_image.ocmod.xml

 Класс! Попробовала адаптировать синтаксис под 3 версию, т.к. там расширение twig уже идёт и оно работает) Пришлось вручную правда перепечатывать и вставлять в нужные строки. Но других решений не нашлось рабочих. Тысяча благодарностей за файлик! Правда так и не сообразила как перепечатать вот эту строку, оставила стили пустыми,чтобы проверить вообще что и как. И оказалось, что оно даже без стилей работает) 

style="max-height:<?php list($width, $height, $type, $attr) = getimagesize("$thumb"); echo $height; ?>px;max-width:<?php echo $width; ?>px;" 

 

Надіслати
Поділитися на інших сайтах


Ребят при таком способе, если щелкать на доп.изображение, а потом открывать его в попап окошке, то галерея нарушается, пропадает главное изображение из списка и нарушается последовательность. Можно ли это как-то исправить?

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.