フロントページにvirtuemart製品のカテゴリを表示するモジュールがあります。在庫がない商品は表示したくありません。
モジュールコードには、製品を選択するための関数があります。
public static function _CountProduct($catids, $params)
{
if ($catids == '*') {
$_catids = $params->get('catid');
$catids = self::_getChildCategories($_catids, $params);
$catids = self::_getPublishCategories($catids);
}
if (empty($catids)) return;
$limitation = 999;
$source_group = null;
$ordering_direction = $params->get('product_ordering_direction');
$source_order = $params->get('source_order', 'group.featured');
$p_special = $params->get('show_front');
$categoryModel = VmModel::getModel('Category');
$categoryModel->_noLimit = true;
$list = array();
if (!empty($catids)) {
$productModel = VmModel::getModel('Product');
$productModel = new VirtuemartModelProductExtend();
$productModel->filter_order = $source_order;
$productModel->specail_product = $p_special;
$productModel->ordering_direction = $ordering_direction;
$desc_maxlength = $params->get('item_des_maxlength');
$items = $productModel->getProductListing($source_group, $limitation, true, true, false, true, $catids);
$productModel->addImages($items);
$ratingModel = VmModel::getModel('ratings');
foreach ($items as $item) {
$item->title = $item->product_name;
$item->id = $item->virtuemart_product_id;
$item->description = $item->product_desc;
self::getVmImages($item, $params);
$item->short_desc = self::_cleanText($item->product_s_desc);
$item->_description = self::_cleanText($item->description);
$item->_description = ($item->_description != '') ? self::truncate($item->_description, $desc_maxlength) : self::truncate($item->short_desc, $desc_maxlength);
$item->vote = $ratingModel->getVoteByProduct($item->virtuemart_product_id);
$item->rating = $ratingModel->getRatingByProduct($item->virtuemart_product_id);
$list[] = $item;
}
}
return count($list);
}
この機能を変更するにはどうすればよいですか?私は最後のバージョンのjoomlaとvirtuemartを使用しています。
任意の助けいただければ幸いです。ありがとう
モジュールでは、$ productModelがあるので、$ productModel-> orderableを確認できます。モジュール内の製品がレンダリングされる場所で、次のようなチェックを行います-
if ($productModel->orderable == false) {
//Do not render product
} else {
//Render product
}