Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 10 Ответов
  • 6117 Просмотров
*

EmDmAl

  • Осваиваюсь на форуме
  • 29
  • 3 / 0
Здравствуйте уважаемые. Установлена Joomla 1.5.22, VirtueMart 1.1.5, включен модуль 'VirtueMart Product Categories', плагин 'VirtueMart Product Snapshot' и 'Virtuemart Extended Search Plugin', остальные подули VM неиспользуются чтобы негрузить сайт. Проблема в том что не отображаются товары при просмотре в категориях. Просмотрел базу, в 'jos_vm_product_category_xref' записи соответсвуют товарам и таблице 'jos_vm_category'. При генерировании ссылки на отображении товара категории вида 'index.php/virtumart?page=shop.browse&category_id=110' (у меня для примера). При поиске товара - ссылки на товар отображаются и можно просмотреть товар. Я думаю что искать прореху надо в shop.browse.php, который отвечает за вывод самого товара. Подскажите хоть что-то, включал модуль 'VirtueMart Module' и юзал с него все напрасно.
*

EmDmAl

  • Осваиваюсь на форуме
  • 29
  • 3 / 0
... если я неправ, то поправьте меня. За вывод товаров в категории отвечает в shop.browse:
Код
	while ($db_browse->next_record()) {
// If it is item get parent:
$product_parent_id = $db_browse->f("product_parent_id");
if ($product_parent_id != 0) {
$dbp->query("SELECT product_full_image,product_thumb_image,product_name,product_s_desc FROM #__{vm}_product WHERE product_id='$product_parent_id'" );
$dbp->next_record();
}

// Set the flypage for this product based on the category.
// If no flypage is set then use the default as set in VirtueMart.cfg.php
$flypage = $db_browse->sf("category_flypage");

if (empty($flypage)) {
            $flypage = FLYPAGE;
        }


        $url_parameters = "page=shop.product_details&flypage=$flypage&product_id=" . $db_browse->f("product_id"). "&category_id=" . $db_browse->f("category_id");
        if( $manufacturer_id ) {
        $url_parameters .= "&manufacturer_id=" . $manufacturer_id;
        }
        if( $keyword != '') {
        $url_parameters .= "&keyword=".urlencode($keyword);
        }
        $url = $sess->url( $mm_action_url.'?'.$url_parameters );

        // Price: xx.xx EUR
if (_SHOW_PRICES == '1' && $auth['show_prices']) {
                   $product_price =
                    $ps_product->show_price( $db_browse->f("product_id"), false,$db_browse->f("product_name") );
}
else {
$product_price = "";
}
// @var array $product_price_raw The raw unformatted Product Price in Float Format
$product_price_raw = $ps_product->get_adjusted_attribute_price($db_browse->f('product_id'));

// i is the index for the array holding all products, we need to show. to allow sorting by discounted price,
// we need to use the price as first part of the index name!
$i = $product_price_raw['product_price'] . '_' . ++$counter;

        if( $db_browse->f("product_thumb_image") ) {
            $product_thumb_image = $db_browse->f("product_thumb_image");
}
else {
if( $product_parent_id != 0 ) {
$product_thumb_image = $dbp->f("product_thumb_image"); // Use product_thumb_image from Parent Product
}
else {
$product_thumb_image = 0;
}
}

if( $product_thumb_image ) {
if( substr( $product_thumb_image, 0, 4)!= "http" ) {
if(PSHOP_IMG_RESIZE_ENABLE == '1') {
$product_thumb_image = $mosConfig_live_site."/components/com_virtuemart/show_image_in_imgtag.php?filename=".urlencode($product_thumb_image)."&newxsize=".PSHOP_IMG_WIDTH."&newysize=".PSHOP_IMG_HEIGHT."&fileout=";
}
elseif( !file_exists( IMAGEPATH."product/".$product_thumb_image )) {
                    $product_thumb_image = VM_THEMEURL.'images/'.NO_IMAGE;
                }
}
}
else {
$product_thumb_image = VM_THEMEURL.'images/'.NO_IMAGE;
}

// Get the full image path, or URL if set, or the no_image
if( $db_browse->f("product_full_image") ) {
$product_full_image = $db_browse->f("product_full_image");
} elseif( $product_parent_id != 0 ) {
$product_full_image = $dbp->f("product_full_image"); // Use product_full_image from Parent Product
}
else {
$product_full_image = VM_THEMEURL . 'images/' . NO_IMAGE;

// Get the size information for the no_image
if( file_exists( VM_THEMEPATH . 'images/' . NO_IMAGE ) ) {
$full_image_info = getimagesize( VM_THEMEPATH . 'images/' . NO_IMAGE );
$full_image_width = $full_image_info[0]+40;
$full_image_height = $full_image_info[1]+40;
}
}

// Get image size information and add the full URL
if( substr( $product_full_image, 0, 4)!= 'http' ) {
// This is a local image
if( file_exists( IMAGEPATH . 'product/' . $product_full_image ) ) {
$full_image_info = getimagesize( IMAGEPATH . 'product/' . $product_full_image );
$full_image_width = $full_image_info[0]+40;
$full_image_height = $full_image_info[1]+40;
}

$product_full_image = IMAGEURL . 'product/' . $product_full_image;
} elseif( !isset( $full_image_width ) || !isset( $full_image_height ) ) {
// This is a URL image
$full_image_info = @getimagesize( $product_full_image );
$full_image_width = $full_image_info[0]+40;
$full_image_height = $full_image_info[1]+40;
}

$files = ps_product_files::getFilesForProduct( $db_browse->f('product_id'), $db_browse->f('product_parent_id') );
$products[$i]['files'] = $files['files'];
$products[$i]['images'] = $files['images'];

$product_name = $db_browse->f("product_name");
if( $db_browse->f("product_publish") == "N" ) {
$product_name .= " (". $VM_LANG->_('CMN_UNPUBLISHED',false).")";
}

if( empty($product_name) && $product_parent_id!=0 ) {
$product_name = $dbp->f("product_name"); // Use product_name from Parent Product
}
$product_s_desc = $db_browse->f("product_s_desc");
if( empty($product_s_desc) && $product_parent_id!=0 ) {
$product_s_desc = $dbp->f("product_s_desc"); // Use product_s_desc from Parent Product
}
$product_details = $VM_LANG->_('PHPSHOP_FLYPAGE_LBL');

if (PSHOP_ALLOW_REVIEWS == '1' && @$_REQUEST['output'] != "pdf") {
// Average customer rating: xxxxx
        // Total votes: x
$product_rating = ps_reviews::allvotes( $db_browse->f("product_id") );
}
else {
$product_rating = "";
}

// Add-to-Cart Button
if (USE_AS_CATALOGUE != '1' && $product_price != ""
&& $tpl->get_cfg( 'showAddtocartButtonOnProductList' )
&& !stristr( $product_price, $VM_LANG->_('PHPSHOP_PRODUCT_CALL') )
&& !ps_product::product_has_attributes( $db_browse->f('product_id'), true )) {

$tpl->set( 'i', $i );
$tpl->set( 'product_id', $db_browse->f('product_id') );
$tpl->set( 'product_in_stock', $db_browse->f('product_in_stock') );
$tpl->set( 'ps_product_attribute', $ps_product_attribute );
$products[$i]['form_addtocart'] = $tpl->fetch( 'browse/includes/addtocart_form.tpl.php' );
$products[$i]['has_addtocart'] = true;
}
else {
$products[$i]['form_addtocart'] = '';
$products[$i]['has_addtocart'] = false;
}

$products[$i]['product_flypage'] = $url;
$products[$i]['product_thumb_image'] = $product_thumb_image;
$products[$i]['product_full_image'] = $product_full_image;
$products[$i]['full_image_width'] = $full_image_width;
$products[$i]['full_image_height'] = $full_image_height;

// Unset these for the next product
unset($full_image_width);
unset($full_image_height);

$products[$i]['product_name'] = shopMakeHtmlSafe( $product_name );
$products[$i]['product_s_desc'] = $product_s_desc;
$products[$i]['product_details'] = $product_details;
$products[$i]['product_rating'] = $product_rating;
$products[$i]['product_price'] = $product_price;
$products[$i]['product_price_raw'] = $product_price_raw;
$products[$i]['product_sku'] = $db_browse->f("product_sku");
$products[$i]['product_weight'] = $db_browse->f("product_weight");
$products[$i]['product_weight_uom'] = $db_browse->f("product_weight_uom");
$products[$i]['product_length'] = $db_browse->f("product_length");
$products[$i]['product_width'] = $db_browse->f("product_width");
$products[$i]['product_height'] = $db_browse->f("product_height");
$products[$i]['product_lwh_uom'] = $db_browse->f("product_lwh_uom");
$products[$i]['product_in_stock'] = $db_browse->f("product_in_stock");
$products[$i]['product_available_date'] = $VM_LANG->convert( vmFormatDate($db_browse->f("product_available_date"), $VM_LANG->_('DATE_FORMAT_LC') ));
$products[$i]['product_availability'] = $db_browse->f("product_availability");
$products[$i]['cdate'] = $VM_LANG->convert( vmFormatDate($db_browse->f("cdate"), $VM_LANG->_('DATE_FORMAT_LC') ));
$products[$i]['mdate'] = $VM_LANG->convert( vmFormatDate($db_browse->f("mdate"), $VM_LANG->_('DATE_FORMAT_LC') ));
$products[$i]['product_url'] = $db_browse->f("product_url");
$products[$i]['vendor_id'] = $db_browse->f("vendor_id");//Вставил поле продавца/магазина

}
*

EmDmAl

  • Осваиваюсь на форуме
  • 29
  • 3 / 0
Подскажите как формируется
Код
$db_browse->next_record()
, $db_browse - это как я понял соединение с базой, а где формируется next_record()?
*

EmDmAl

  • Осваиваюсь на форуме
  • 29
  • 3 / 0
Переустановил заново Joomla 1.5.22, VirtueMart 1.1.5, включен модуль 'VirtueMart Product Categories', плагин 'VirtueMart Product Snapshot' и 'Virtuemart Extended Search Plugin'. Товары стали отображаться, только в одной из категории которая является верхней родительской и ее в ее дочерних отображается по одному товару. Может быть в базе где-то прописываются кол-во выводимых товаров?
*

EmDmAl

  • Осваиваюсь на форуме
  • 29
  • 3 / 0
В базе затронуты следующие таблицы:
jos_vm_category_xref, jos_vm_product_category_xref, jos_vm_category, jos_vm_product, jos_vm_product_price, jos_vm_manufacturer, jos_vm_product_mf_xref. Для связи категорий с товарами используется jos_vm_product_category_xref. Почти во всех категориях выводятся по одному товару. Посмотрел бвзу данных это первый товар по списку в базе остальные невыводит почему. Может кто-то сталкивался с подобной проблемой и подскажет мне?
*

EmDmAl

  • Осваиваюсь на форуме
  • 29
  • 3 / 0
При включении отображения в шаблоне кол-во товаров выдает правильное кол-во в базе. Запрос в shop_browse_queries.php выглядет так
LEFT JOIN `#__{vm}_product_price` ON `#__{vm}_product`.`product_id` = `#__{vm}_product_price`.`product_id` WHERE `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` AND `#__{vm}_product_category_xref`.`category_id`=`#__{vm}_category`.`category_id` AND `#__{vm}_product_category_xref`.`category_id`=1111625 AND ((`#__{vm}_product`.`product_id`=`#__{vm}_product_price`.`product_id` AND `#__{vm}_shopper_group`.`shopper_group_id`=`#__{vm}_product_price`.`shopper_group_id`) OR `#__{vm}_product_price`.`product_id` IS NULL) AND `#__{vm}_shopper_group`.`default` = 1 AND `product_parent_id`=0 AND `product_publish`='Y' AND `category_publish`='Y'
стандартный запрос. Где-же происходит лажа.....
*

EmDmAl

  • Осваиваюсь на форуме
  • 29
  • 3 / 0
При включении отображения в шаблоне кол-во товаров выдает правильное кол-во в базе. Запрос в shop_browse_queries.php выглядет так
LEFT JOIN `#__{vm}_product_price` ON `#__{vm}_product`.`product_id` = `#__{vm}_product_price`.`product_id` WHERE `#__{vm}_product_category_xref`.`product_id`=`#__{vm}_product`.`product_id` AND `#__{vm}_product_category_xref`.`category_id`=`#__{vm}_category`.`category_id` AND `#__{vm}_product_category_xref`.`category_id`=1111625 AND ((`#__{vm}_product`.`product_id`=`#__{vm}_product_price`.`product_id` AND `#__{vm}_shopper_group`.`shopper_group_id`=`#__{vm}_product_price`.`shopper_group_id`) OR `#__{vm}_product_price`.`product_id` IS NULL) AND `#__{vm}_shopper_group`.`default` = 1 AND `product_parent_id`=0 AND `product_publish`='Y' AND `category_publish`='Y'
стандартный запрос, такой же как и в других категориях. В shop.browse.php $num_rows выводит 1. Где-же происходит лажа.....
*

EmDmAl

  • Осваиваюсь на форуме
  • 29
  • 3 / 0
Ну неужели никто не сталкивался с подобной ситуацией.
*

EmDmAl

  • Осваиваюсь на форуме
  • 29
  • 3 / 0
В shop.browse.php
Код
$num_rows = $db_browse->f("num_rows");
уже заведомо ложное, = 1 или меньше чем в базе. Наверное все дело в запросе, вообще непонятно, запрос у всех одинаков!
*

EmDmAl

  • Осваиваюсь на форуме
  • 29
  • 3 / 0
А модуль вывода категорий выводит правильное кол-во товаров в меню...:(
*

EmDmAl

  • Осваиваюсь на форуме
  • 29
  • 3 / 0
Все дело было в пустых артикулах товаров. Здесь артикул используется примерно как служебное поле, без него не выводится товар. Может кто знает как убрать из запроса поле артикула? Присваивать ему левое не оригинальное значение - это невыход.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Модуль «VirtueMart Товары» вывод товаров по рейтингу

Автор myrka

Ответов: 0
Просмотров: 1834
Последний ответ 10.01.2017, 17:09:22
от myrka
Глючат некоторые товары в VirtueMart

Автор satyricon

Ответов: 0
Просмотров: 1432
Последний ответ 21.12.2016, 09:30:16
от satyricon
Не отображается цена в товаре

Автор zgel0

Ответов: 1
Просмотров: 1354
Последний ответ 11.10.2015, 14:08:35
от zgel0
Как вывести последние товары определенной категории VirtueMart на статической странице?

Автор shopspy

Ответов: 0
Просмотров: 1374
Последний ответ 25.01.2015, 13:32:28
от shopspy
yootheme unity не отображается товар, категории (virtuemart, joomshoping)

Автор zrkyuseo

Ответов: 0
Просмотров: 1766
Последний ответ 26.12.2014, 13:08:58
от zrkyuseo