Virtuemart: выводим характеристики дочерних товаров

Если вы читаете эту запись, то наверняка знаете, что такое Virtuemart и что такое дочерние товары. Если вдруг забыли, для чего они нужны, то освежите это в своей памяти. Не буду останавливаться на этом. Сейчас рассмотрим более сложную тему, а именно вывод характеристик дочерних товаров.

Не секрет, что стандартный вывод параметров очень куцый: название, цена. Максимум короткое описание. А если мы захотим вывести картинку, да ещё произвольного размера, да ещё и длину-ширину-высоту, то что делать? Сдаваться? Отнюдь! Будем пилить Virtuemart, что же ещё остается-то?

Для начала определим файлы, с которыми будем работать. Их два:

components/com_virtuemart/themes/default/templates/product_details/includes/addtocart_list_single.tpl.php – он отвечает за вывод всех переменных дочерних товаров на сайте

administrator/components/com_virtuemart/classes/ps_product_attribute.php – тут производится подготовка всех необходимых переменных

В качестве примера “приготовим” переменную, которая отвечает за вывод длины товара.

Ищем в  ps_product_attribute.php функцию list_attribute_list (459 строка).

Для начала нам необходимо вытащить эту переменную из базы. Ищем запросы и добавляем туда поле product_width, как показано ниже. Теперь мы вытащили из базы Virtuemart одно из свойств дочернего товара:

1
2
3
4
5
if( $pp ) {
$q = "SELECT product_id,product_name,product_parent_id,product_sku,product_width, product_in_stock,product_full_image,product_thumb_image FROM #__{vm}_product WHERE product_publish='Y' AND product_parent_id='$product_id' ORDER BY product_id " ;
} else {
$q = "SELECT product_id,product_name,product_parent_id,product_sku,product_width,product_in_stock,product_full_image,product_thumb_image FROM #__{vm}_product WHERE product_publish='Y' AND product_id='$product_id'  ORDER BY product_id " ;
}

Далее ищем такой код (596 строка):

1
$productArray = get_object_vars( $productData ) ;

Ниже вставляем

1
2
$product_width = $db->f("product_width");
$productArray["product_width"] = $product_width;

Почти всё, осталось только создать переменную для фронтенда. Ищем код (626 строка):

1
$product_image = $tpl->vmBuildFullImageLink( $productArray );

И вставляем ниже

1
$products[$ci]['product_width'] = $product_width;

Теперь у нас готова переменная  для вывода на сайте и никто нам не запрещает это сделать. Берем файл addtocart_list_single.tpl.php и в нужном месте вставляем код вывода длины дочернего товара:

1
echo $product['product_width'];

Вот, в принципе, и всё. Аналогично можно вывести любые другие свойства дочерних товаров в Virtuemart.

  • Думаете, что сделать сайт самому нереально? Напрасно! Если есть желание, то это можно осуществить!
  • Знаете, где находится гостиница Тамань? Мне рекомендовали там отдохнуть. Вот я и в раздумьях.

Один комментарий to “Virtuemart: выводим характеристики дочерних товаров”

  1. elvencedor Says:

    всё да не всё :) $product_description не встает так легко ;)

Прокомментировать

XHTML: Можете использовать теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я ЧЕЛОВЕК!!!!.

Наталья Подольская шаблоны wordpress Энциклопедия животного мира. Фото и статьи. Заказать свадебный макияж в Минске, пробный макияж бесплатно!