Сегодня я расскажу, как в vamshop, версии 1.83 ( на более ранних тоже должно работать ), вывести в карточке товара список товаров и той же категории, что и просматриваемый товар. Для чего это нужно? Например, для удобства пользовательской навигации. Впрочем, причин сделать это, может быть много. На форуме поддержки Vamshop люди искали это неоднократно. Однако, вразумительного и законченного решения там так и не нашлось. В общем, не будем долго рассуждать насчёт целесообразности такой модификации, а остановимся непосредственно на решении этой задачи.
Итак. Первое, что необходимо сделать, это, конечно же, резервную копию файлов, которые мы будем править. Делайте резервную копию всегда. Даже если Вам кажется, что доработка совсем простая и это излишне.
Далее, мы будем править файлы. Всего их два:
includes/modules/product_info.php
templates/vamshop1/module/product_info/product_info_v1.html — тут вы выбираете конечно же файл карточки товара из своей темы оформления. У меня это тема vamshop1 и файл product_info_v1.html
В файле product_info.php ищем строку:
$info->assign('PRODUCTS_MODEL', $product->data['products_model']);
И сразу после неё добавляем:
$query = "SELECT * FROM ".TABLE_PRODUCTS." as p ";
$query .= "LEFT JOIN ".TABLE_PRODUCTS_DESCRIPTION." as pd ON (p.products_id = pd.products_id) ";
$query .= "LEFT JOIN ".TABLE_PRODUCTS_TO_CATEGORIES." as ptc ON (p.products_id = ptc.products_id) ";
$query .= "WHERE (ptc.categories_id = '".$current_category_id."') and (p.products_status = '1') ";
$query .= "ORDER BY p.products_sort;";
$xproducts_query = vamDBquery($query);
$rows = 0;
$cols = 0;
while ($xproducts_data = vam_db_fetch_array($xproducts_query, true)){
$rows ++;
$cols ++;
$xproducts_list .= "<li class='also'><a href=".vam_href_link('' .$xproducts_data["products_page_url"])."><img src='images/product_images/thumbnail_images/".$xproducts_data["products_image"]."' width='' height='' title='" .$xproducts_data["products_name"]."' alt='" .$xproducts_data["products_name"]."' border='0'></a>" .$xproducts_data["products_price"]."</li>";
}
$info->assign('XPRODUCTS_LIST', $xproducts_list);
Сохраняем этот файл и переходим к файлу карточки товара, в вашей теме оформления. У меня это
product_info_v1.html
В том месте этого файла, где вы хотите отображать список товаров, вставьте такую метку:
- {$XPRODUCTS_LIST}
После выполнения данных манипуляций, вы получите в карточке товара список всех товаров категории в виде изображений товара ссылающихся на сам товар. Под изображением будет цена товара. При желании, можно выводить и наименование товара, но я в своём примере убрал их из вывода и вывел в качестве title для каждого изображения. Сделал я это потому, что в данном уроке хочу не просто выводить блок с товарами, а вывести их в виде слайдера. Кроме того, у нас осталась ещё одна проблемка. Дело в том, что цена в нашем новом списке товаров выводится неформатированная. То есть, с четырьмя нулями после разделителя — не 600 рублей, а 600.0000. Разумеется, это нехорошо. И тут нам придётся чуточку поправить код, который мы меняли выше.
Возвращаемся к файлу
includes/modules/product_info.php
и ищем в нём строку, которую вписали ранее:
$xproducts_list .= "
В самом конце строки фрагмент:
" .$xproducts_data["products_price"]."
Меняем на:
".$vamPrice->Format($xproducts_data["products_price"], true)."
У нас должно получиться:
$xproducts_list .= "
Вот теперь у нас уже полноценный список товаров, с нормальным отображением цен на них.
О том, как этот список превратить в слайдер, я расскажу в следующей статье.
Рекомендую, также ознакомиться с перечнем возможных багов этой модификации и причинами их возникновения
Здравствуйте! Уже несколько дней пытаюсь сделать. тоже самое, но ничего не получается. все варианты испробовал и из форума Вама тоже вставлял. Версия у меня 1.83. Вы на какой версии это проделывали? Хотя все остальное все сделал, когда переводил с OScommerce Vam edition.
Делал и на версии 1.81 и на 1.82 и на 1.83. Ну и на последней — 1.84 тоже. Работает. Обычно, когда не получается, то по невнимательности. Так что, попробуйте по инструкции ещё раз пройтись. Ну а надоест самостоятельно маяться, обращайтесь. Поставим. Написал вот статью о том, почему может не работать данная модификация Возможные баги, при работе модификации товаров категории в карточке товара vamshop