В модуле товаров Virtuemart mod_virtuemart_product товары можно выводить по категориям, но иногда нужно вывести какие-то конкретные товары. Тогда было бы удобно если бы была возможность выбора товаров по id.
Для этого нужно сделать небольшие изменения в модуле товаров. А чтобы обновления виртуемарта не затерли, сделанные изменения, можно сделать копию модуля и поменять его название.
Что меняем в модуле..
Первое, это добавляем поле для ввода id товаров. В файл mod_virtuemart_product.xml добавим поле
<field name="product_ids" type="text" default="" label="Product ids" description="Product ids" />
Id товаров будем вводить через пробел.
И, второе, подредактируем файл mod_virtuemart_product.php
Вначале файла добавим строку для получения, добавленного поля
$product_ids = $params->get('product_ids', '');
И вместо
$products = $productModel->getProductListing($Product_group, $max_items, $show_price, true, false,$filter_category, $category_id); $productModel->addImages($products);
Добавим
if (empty($product_ids)){ $products = $productModel->getProductListing($Product_group, $max_items, $show_price, true, false,$filter_category, $category_id); $productModel->addImages($products); }else{ $product_ids = trim($product_ids); $product_ids = explode(' ', $product_ids); $productModel = VmModel::getModel('Product'); $products = array(); foreach($product_ids as $virtuemart_product_id){ $products[] = $productModel->getProduct(trim($virtuemart_product_id)); } $productModel->addImages($products); }
Комментарии
Скопировать все содержание папки
modules/mod_virtuemart_product
1.Переименовать
mod_virtuemart_product_id.php
mod_virtuemart_product_id.xml
2.
В xml файле меняем тэг name на
mod_virtuemart_product_id
3.
Дальше, делаем то, что описано в статье.
4.
Теперь, все архивируем и устанавливаем как обычно, через Установить..
Да, нужно сначала получить содержимое, добавленного поля. Добавил строку, спасибо!
Что бы все это заработало, надо в файле mod_virtuemart_ product.php еще и подключить наше новое поле ввода.
Если исходить из этого примера то выше в сборке // Setting нужно написать $product_ids = $params->get('p roduct_ids','') ; вот тогда все и заработает.
RSS лента комментариев этой записи