как показать весь список продуктов VirtueMart - PullRequest
0 голосов
/ 06 марта 2012

Я создаю компонент в Joomla, который показывает список продукта virtuemart

требование заключается в том, что я не могу использовать код непосредственно из таблицы sql.

, поэтому я использую components/com_virtuemart/virtuemart_parser.php

для кода я получаю список категорий в массиве, и код

require_once( CLASSPATH . 'ps_product_category.php');
$ps_product_category = new ps_product_category();
$tpl = new $GLOBALS['VM_THEMECLASS']();
$category_childs = $ps_product_category->get_child_list(0);
$tpl->set( 'categories', $category_childs );
$categories = ps_product_category::getCategoryTreeArray(true);

из этого кода я получаю все опубликованные категории, но как получить все продукты из категории

how to show product list, how to get product list in array ?

Ответы [ 2 ]

0 голосов
/ 26 декабря 2014

Для отображения категорий товаров в другом компоненте вы можете использовать это:

if (!class_exists( 'VmConfig' )) require(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_virtuemart'.DS.'helpers'.DS.'config.php');
VmConfig::loadConfig();
if (!class_exists( 'VmModel' )) require(JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_virtuemart'.DS.'helpers'.DS.'vmmodel.php');
$categoryModel = VmModel::getModel('Category');
$cats = $categoryModel->getCategoryTree();//Params $parentId=0, $level = 0, $onlyPublished = true,$keyword = ''
if (!class_exists('VirtueMartModelProduct')) require(JPATH_VM_ADMINISTRATOR . DS . 'models' . DS . 'product.php');
$product_model = new VirtueMartModelProduct();
for ($x = 0; $x < count($cats); $x++) {
    echo $cats[$x]->category_name."<Br/>";
    $products = $product_model->getProductsInCategory($cats[$x]->virtuemart_category_id);
    for ($i = 0; $i < count($products); $i++) {
        echo "- ".$products[$i]->product_name."<Br/>";
    }
}
0 голосов
/ 30 апреля 2012

Единственная существующая функция products_in_category (), но она не соответствует вашим потребностям, потому что она возвращает только количество товаров.

Решением, отличным от SQL, является создание пользовательской функции виртуальной машины и ее добавление в

root\components\com_virtuemart\themes\default\theme.php  

Если вы клонируете / модифицируете ps_product :: featuredProducts (), вы должны получить то, что вам нужнобез труда.(также это расположение файла предполагает, что вы используете тему виртуальной машины по умолчанию, как установлено)

...