Перейти к содержимому


Фотография

[РЕШЕНО] В категории при нажатии на картинку - увеличение картинки


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 14

#1 adjuster

adjuster

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 132 сообщений
19
Хороший

Отправлено 12 Март 2012 - 08:35

Не удобно просматривать картинки, заходя в каждый товар отдельно.
Прошу помощи.

Нужно в категории при нажатии на саму картинку (не имя товара) сделать увеличение картинки, как это происходит в карточке товара.


Ковырял 2 файла: шаблон catalog.php и модель catalog.php
Смотрел, как это реализовано в product.php

Но там массивы, с которыми у меня не лады.
  • 0

#2 freelancer

freelancer

  • OC Team
  • PipPipPip
  • 6 681 сообщений
1 283
Очень хороший

Отправлено 12 Март 2012 - 09:15

ещё нужно смотреть product.tpl и category.tpl
  • 0

#3 adjuster

adjuster

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 132 сообщений
19
Хороший

Отправлено 12 Март 2012 - 11:12

Само собой - их я тоже сравнивал.

Прошу помочь с массивом - не совсем понял, как реализован popup в продукте ((



Сам сделал:

редактируем всего 2 файла.

catalog\controller\product\category.tpl
catalog\view\theme\default\template\product\category.php


catalog\controller\product\category.tpl:

<?php if ($product['thumb']) { ?>
	  <div class="image" ><a href="<?php echo $product['image_popup']; ?>" title="<?php echo $product['name']; ?>" class="fancybox" rel="fancybox"> <img src="<?php echo $product['thumb']; ?>" title="<?php echo $product['name']; ?>"  alt="<?php echo $product['name']; ?>" /></a></div>
	  <?php } ?>

Добавляем строки $('.fancybox').fancybox({cyclic: true});

$('.display').html('<b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display(\'grid\');"><?php echo $text_grid; ?></a>');
  $('.fancybox').fancybox({cyclic: true});

и

$('.display').html('<b><?php echo $text_display; ?></b> <a onclick="display(\'list\');"><?php echo $text_list; ?></a> <b>/</b> <?php echo $text_grid; ?>');
  $('.fancybox').fancybox({cyclic: true});

catalog\controller\product\category.php:

Находим $this->data['products'][] = array
Примерно 204 строка

Добавляем
'image_popup' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height'))

$this->data['products'][] = array(
'product_id'  => $result['product_id'],
'thumb'	   => $image,
'name'		=> $result['name'],
'description' => mb_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300,'UTF-8') . '..',
'price'	   => $price,
'special'	 => $special,
'tax'		 => $tax,
'rating'	  => $result['rating'],
'reviews'	 => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
'href'		=> $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id']),

'image_popup' => $this->model_tool_image->resize($result['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height'))
);

  • -1

#4 adjuster

adjuster

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 132 сообщений
19
Хороший

Отправлено 12 Март 2012 - 03:28

Есть свой минус в таком решении:

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


Если у кого-то есть решения этого косяка - прошу ответить.


Решение вверху.

Сообщение отредактировал adjuster: 12 Март 2012 - 05:29

  • 0

#5 ravilr

ravilr

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 2 330 сообщений
469
Очень хороший

Отправлено 12 Март 2012 - 04:34

посмотрите на ссылку на изображение... возможно после переключения пропадает у ссылки класс class="fancybox"
  • 0

#6 freelancer

freelancer

  • OC Team
  • PipPipPip
  • 6 681 сообщений
1 283
Очень хороший

Отправлено 12 Март 2012 - 04:42

посмотрите на ссылку на изображение... возможно после переключения пропадает у ссылки класс class="fancybox"

это полбеды..
при переключении сетка/список фактически удаляется каждый element <a class="fancybox" и создается такой же, но другой =)
  • 0

#7 adjuster

adjuster

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 132 сообщений
19
Хороший

Отправлено 12 Март 2012 - 04:45

Спасибо за поддержку )))

http://www.mnogosnov.ru/podushki

вот здесь это уже внедрено.
Проверяю Firebug - классы остаются на месте.
  • 0

#8 freelancer

freelancer

  • OC Team
  • PipPipPip
  • 6 681 сообщений
1 283
Очень хороший

Отправлено 12 Март 2012 - 05:03

$('.fancybox').fancybox({cyclic: true});

вот эту штуку нужно вызвать после display();
  • 1

#9 adjuster

adjuster

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 132 сообщений
19
Хороший

Отправлено 12 Март 2012 - 05:15

Спасибо! catalog\controller\product\category.tpl:

$('.display').html('<b><?php echo $text_display; ?></b> <?php echo $text_list; ?> <b>/</b> <a onclick="display(\'grid\');"><?php echo $text_grid; ?></a>');
  $('.fancybox').fancybox({cyclic: true});

и

$('.display').html('<b><?php echo $text_display; ?></b> <a onclick="display(\'list\');"><?php echo $text_list; ?></a> <b>/</b> <?php echo $text_grid; ?>');
  $('.fancybox').fancybox({cyclic: true});

Тогда внизу скрипт можно удалить
  • 0

#10 luka29

luka29

    Пользователь

  • Пользователи
  • PipPip
  • 61 сообщений
1
Обычный
  • ГородМосква

Отправлено 22 Март 2012 - 10:52

А у меня не получается. :( Появляется белая страница. Помогите мне, пожалуйста.
  • 0

#11 adjuster

adjuster

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 132 сообщений
19
Хороший

Отправлено 23 Март 2012 - 10:33

Файлы во вложении.
Шаблон стандартный.
Иначе темплейт помещаем в свой.

Прикрепленные файлы


  • 2

#12 fjeka

fjeka

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 267 сообщений
6
Обычный

Отправлено 01 Июль 2012 - 03:32

Отличное решение! Спасибо!
  • 0

#13 profi555

profi555

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений
0
Обычный

Отправлено 17 Март 2013 - 07:30

А как реализовать для 1.5.3.1? пишет ошибка fancybox
  • 0

#14 profi555

profi555

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений
0
Обычный

Отправлено 17 Март 2013 - 09:07

Решилось - везде "fancybox" заменил на "colorbox".
  • 0

#15 VladBlad

VladBlad

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 344 сообщений
20
Очень хороший

Отправлено 28 Август 2013 - 04:44

А как добавить на миниатюру слово "Увеличить"? Ведь человеку не понятно, что кликнув на картинку - картинка увеличится.


  • 0




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных