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


Всплывающая фотография в кратком описании


  • Вы не можете ответить в тему
Сообщений в теме: 44

#41 makki

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

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 09 July 2015 - 10:25 AM

У меня на установленном движке с нуля в файле product_brief.tpl.html дополнительные фотографии товара $all_product_pictures - недоступны, только в подробном описании. В этой ветке вижу в коде к $all_product_pictures обращаются из product_brief.tpl.html. Объясните пожалуйста, как сделать, чтобы в кратком описании массив дополнительных фото был доступен.
  • 0

#42 badisoft

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

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 09 July 2015 - 12:52 PM

В этой ветке вижу в коде к $all_product_pictures обращаются из product_brief.tpl.html.

ИМХО, там какая-то каша в коде.
1. думаю, вместо $all_product_pictures.enlarged должно быть $product_info.enlarged
2. имена файлов в thumbnail и enlarged надо добавить в $product_info на уровне PHP-кода
3. Классы "imboxl" и "imboxr" это два разных класса для левого и правого расположения картинки. Заменять штатный HTML-код с классом imboxl на новый HTML-код с классом imboxr - получится полная хрень. Замен должно быть две - старое на новое в блоке с классом imboxl и то же самое в блоке с классом imboxr, тогда результат (увеличение картинки по клику) будет при любом расположении картинки, справа или слева.
Это что сходу заметилось.

PS. самое правильное (шаблоны-то у всех разные) посмотреть, как сделано увеличение фотографии в детальном описании товара и сделать так же в кратком. Обычно это:
1. добавить highslide-обвес (подгрузку яваскрипта и начальную инициализацию).
2. добавить HTML-код с highslide (class="highslide" и ссылку на большую и/или среднюю фотографию).
3. добавить PHP-код, чтобы в $product_info были названия файлов для средней и большой фоток.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#43 makki

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

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 09 July 2015 - 02:34 PM

1. думаю, вместо $all_product_pictures.enlarged должно быть $product_info.enlarged
2. имена файлов в thumbnail и enlarged надо добавить в $product_info на уровне PHP-кода


В ShopCMS главное фото и дополнительные хранятся в разных массивах: $poduct_info и $all_product_pictures

Мне нужно доступ к дополнительным фото товара в кратком описании товара.

В подробном описании (product_detailed.tpl.html) маленький, средний и большой размер главного фото товара хранятся в $product_info.picture, $product_info.thumbnail, $product_info.big_picture соотвественно. А дополнительные фото $all_product_pictures[i].filename, $all_product_pictures[i].thumbnail, $all_product_pictures[i].enlarged

В кратком описании $all_product_pictures недоступно, только $product_info. В этом проблема....
  • 0

#44 badisoft

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

  • Assistent vsupport.club
  • PipPipPip
  • 5075 сообщений
Репутация: 786
Мастер

Отправлено 09 July 2015 - 04:33 PM

В ShopCMS главное фото и дополнительные хранятся в разных массивах: $poduct_info и $all_product_pictures Мне нужно доступ к дополнительным фото товара в кратком описании товара.
[...]
В кратком описании $all_product_pictures недоступно, только $product_info. В этом проблема....

А в чем проблема-то? можно его в функции prdSearchProductByTemplate создать (как элемент выходного массива), можно прямо в category.php выборку из таблицы PRODUCT_PICTURES по productID сделать. На мой взгляд, Вы вполне на это способны, это же ерундовый код на пару строк.
  • 0
http://cpu.badisoft.ru (тестовый сайт), http://badisoft.ru (модули)

#45 makki

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

  • Assistent vsupport.club
  • PipPipPip
  • 148 сообщений
Репутация: 7
Начинающий

Отправлено 10 July 2015 - 10:16 PM

Делюсь, может кому пригодится.

Итак, чтобы все фотографии товара были доступны в кратком описании товара, делаем следующее:

1) В файле /core/functions/product_functions.php в конце функции prdSearchProductByTemplate после строк
if ($row["list_price"]) $row["SavePricePercent"] = ceil(((($row["list_price"]-$row["Price"])/$row["list_price"])*100));
								_setPictures( $row );
добавляем
$row["all_product_pictures"]	 = GetAllPictures( $row["productID"] );

2. В том же файле добавляем новую функцию:
function GetAllPictures( $productID ){
		$pictures = db_query("select photoID, filename, thumbnail, enlarged from ".
										PRODUCT_PICTURES." where productID=".$productID );
					  
		$all_product_pictures = array();
		while( $picture=db_fetch_row($pictures) )
		{
				if ( $picture["filename"] != "")
				{
						if ( file_exists("data/small/".$picture["filename"]))
						{
								if (!file_exists("data/medium/".$picture["thumbnail"] )) $picture["thumbnail"] = 0;
								if (!file_exists("data/big/".$picture["enlarged"] )) $picture["enlarged"] = 0;
								$all_product_pictures[]=$picture;
						}
				}
		}
		return $all_product_pictures;				
}

Теперь в product_brief.tpl.html можно получить фотографии из массива $product_info.all_product_pictures
Например так:
{section name=i loop=$product_info.all_product_pictures}
<img src="data/small/{$product_info.all_product_pictures[i].picture}">
{/section}

Маленькая фотография $product_info.all_product_pictures[i].picture
Средняя - $product_info.all_product_pictures[i].thumbnail
Большая - $product_info.all_product_pictures[i].enlarged

Лично мне это надо было для того, чтобы сделать карусель фотографий товара с миниатюрами всех фотографий.
  • 0