Всплывающая фотография в кратком описании
#41
Отправлено 09 July 2015 - 10:25 AM
#42
Отправлено 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 были названия файлов для средней и большой фоток.
#43
Отправлено 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. В этом проблема....
#44
Отправлено 09 July 2015 - 04:33 PM
А в чем проблема-то? можно его в функции prdSearchProductByTemplate создать (как элемент выходного массива), можно прямо в category.php выборку из таблицы PRODUCT_PICTURES по productID сделать. На мой взгляд, Вы вполне на это способны, это же ерундовый код на пару строк.В ShopCMS главное фото и дополнительные хранятся в разных массивах: $poduct_info и $all_product_pictures Мне нужно доступ к дополнительным фото товара в кратком описании товара.
[...]
В кратком описании $all_product_pictures недоступно, только $product_info. В этом проблема....
#45
Отправлено 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
Лично мне это надо было для того, чтобы сделать карусель фотографий товара с миниатюрами всех фотографий.