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


Фотография
- - - - -

Отображение галереи при нажатии на картинку в тизере


Лучший Ответ Cheren-dow , 06 May 2014 - 14:19

Подскажите пожалуйста, как это можно реализовать? 

Могут возникнуть подводные камни - какие не знаю не тыкался.

Откройте файл  

сайт\media\zoo\applications\jbuniversal\elements\jbimage\jbimage.php

В ниже приведенном методе

public function _render($params = array()){
...
}

Найдите строки

// init vars
$title  = $this->get('title');
$width  = (int)$params->get('width', 0);
$height = (int)$params->get('height', 0);
$alt    = $title = empty($title) ? $this->getItem()->name : $title;
$url    = $imagePopup = $appendClass = $target = $rel = '';

После них добавьте

$item = $this->getItem();

if ($item->type == 'product') { // Для какого типа материала будем заменять название на цену
	$itemPriceData = $item->getElement('<ВАШ_ID_ЭЛЕМЕНТА_ЦЕНЫ>')->getElementData()->get('basic');
	$priceCurrency = $this->app->jbmoney->toFormat($itemPriceData['value'], $itemPriceData['currency']);
	$title = $priceCurrency;
}

После должна выводится цена

xd0_200x0.jpg

Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 7

#1 zeus07

zeus07

Отправлено 05 May 2014 - 23:42

Здравствуйте!

 

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

Как это можно реализовать?

 

Подскажите пожалуйста, заранее благодарен. 


  • 0

#2 Sliapy

Sliapy

Отправлено 05 May 2014 - 23:52

Делаете поле JBZoo Image множественным. В настойках шаблона Teaser ставите в элементе выводить все фото и шаблон Pop-Up. Скрываете все фото, кроме первого, через CSS.

 

Как-то так.


  • 0
[color=#aa0000]Не забывайте нажимать кнопку "Вопрос Решён" под сообщением, которое решило Вашу проблему.[/color]

#3 zeus07

zeus07

Отправлено 06 May 2014 - 01:07

Понял, спасибо. 


И ещё такой вопрос, который также касается вывода фото в тизере. Можно ли сделать так, чтобы при просмотре фото в окне pop-up сверху отображался заголовок этого элемента и его цена?


  • 0

#4 Cheren-dow

Cheren-dow

Отправлено 06 May 2014 - 06:42

отображался заголовок этого элемента и его цена?

Можно попробовать. Но придется вносить поправки в сам элемент.


  • 0
Изображение
 

#5 zeus07

zeus07

Отправлено 06 May 2014 - 11:32

Можно попробовать. Но придется вносить поправки в сам элемент.

Подскажите пожалуйста, как это можно реализовать? 


  • 0

#6 Cheren-dow

Cheren-dow

Отправлено 06 May 2014 - 14:19   Лучший Ответ

Подскажите пожалуйста, как это можно реализовать? 

Могут возникнуть подводные камни - какие не знаю не тыкался.

Откройте файл  

сайт\media\zoo\applications\jbuniversal\elements\jbimage\jbimage.php

В ниже приведенном методе

public function _render($params = array()){
...
}

Найдите строки

// init vars
$title  = $this->get('title');
$width  = (int)$params->get('width', 0);
$height = (int)$params->get('height', 0);
$alt    = $title = empty($title) ? $this->getItem()->name : $title;
$url    = $imagePopup = $appendClass = $target = $rel = '';

После них добавьте

$item = $this->getItem();

if ($item->type == 'product') { // Для какого типа материала будем заменять название на цену
	$itemPriceData = $item->getElement('<ВАШ_ID_ЭЛЕМЕНТА_ЦЕНЫ>')->getElementData()->get('basic');
	$priceCurrency = $this->app->jbmoney->toFormat($itemPriceData['value'], $itemPriceData['currency']);
	$title = $priceCurrency;
}

После должна выводится цена

xd0_200x0.jpg


  • 0
Изображение
 

#7 zeus07

zeus07

Отправлено 06 May 2014 - 14:26

Ну как бы не совсем так. Надо чтобы выводилось и название товара и цена рядом


  • 0

#8 Cheren-dow

Cheren-dow

Отправлено 06 May 2014 - 14:28

Получить название можно через 

$item->name

Или измените строку

$title = $priceCurrency;

на 

$title .= ' ' . $priceCurrency;

  • 0
Изображение
 




Click to return to top of page in style!