LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 19:42:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: [Решено] Отобразить кол-во товаров из всех подкатегорий V1.1.3  (Прочитано 8152 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
bazic
Осваиваюсь на форуме
***

Репутация: +6/-14
Offline Offline

Пол: Мужской
Сообщений: 53


курить бросаю


« : 25.05.2006, 17:17:56 »

Не отображает кол-во товаров в категории , если товар находится  так
 |Периферия (0)
 |___
 |     |Принтеры (26)
 |     |___
 |           |Лазерные принтеры (26)
 |           |
    

пример
http://startcopy.info/component/option,com_virtuemart/Itemid,75/      
« Последнее редактирование: 16.07.2009, 12:50:15 от beagler » Записан
 
tug
Завсегдатай
*****

Репутация: +40/-4
Offline Offline

Пол: Мужской
Сообщений: 454


« Ответ #1 : 26.05.2006, 08:05:12 »

И что?
Записан
bazic
Осваиваюсь на форуме
***

Репутация: +6/-14
Offline Offline

Пол: Мужской
Сообщений: 53


курить бросаю


« Ответ #2 : 26.05.2006, 10:01:55 »

И что ????? Да ручку в глаз !!!!
Тупо создается впечатление, что товара в папке НЕТ !!!!
Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline Offline

Пол: Мужской
Сообщений: 2994


http://beagler.ru/


« Ответ #3 : 26.05.2006, 13:16:22 »

Так его там и вправду нет - он есть в подпапке.
Записан
tug
Завсегдатай
*****

Репутация: +40/-4
Offline Offline

Пол: Мужской
Сообщений: 454


« Ответ #4 : 26.05.2006, 17:32:13 »

Вопрос-то Вы не задали =)

Есть три варианта решения проблемы в порядке усложнения, но увеличения эффекта:
1. Убрать нафик все "количества товаров" - параметр в админке
2. Хакнуть, чтобы нолик не выводился вообще
3. Хакнуть, чтобы категория проверялась на дочерние. Т.е. если у категории есть дочерние товары, то нолик у неё не выводится.

я даже делал что-то на эту тему... поищу сегодня.
Записан
bazic
Осваиваюсь на форуме
***

Репутация: +6/-14
Offline Offline

Пол: Мужской
Сообщений: 53


курить бросаю


« Ответ #5 : 26.05.2006, 17:44:08 »

Вопрос-то Вы не задали =)

Есть три варианта решения проблемы в порядке усложнения, но увеличения эффекта:
1. Убрать нафик все "количества товаров" - параметр в админке
2. Хакнуть, чтобы нолик не выводился вообще
3. Хакнуть, чтобы категория проверялась на дочерние. Т.е. если у категории есть дочерние товары, то нолик у неё не выводится.

я даже делал что-то на эту тему... поищу сегодня.
третий вариант наиболее приемлим, только макуха дерева категории должна выводить суммарное кол-во товаров во всех дочерних категориях и подкатегориях и подподкатегориях и т.д.
Записан
tug
Завсегдатай
*****

Репутация: +40/-4
Offline Offline

Пол: Мужской
Сообщений: 454


« Ответ #6 : 26.05.2006, 21:31:12 »

Цитировать
только макуха дерева категории должна выводить суммарное кол-во товаров во всех дочерних категориях и подкатегориях и подподкатегориях и т.д.
А Вы хотя бы примерно представляете сколько времени займёт такой запрос?
Если нет, то я Вам советую посмотреть на структуру таблиц virtuemart и подумать об этом.

Возможно Вы имели ввиду просто общее количество товаров во всех категориях.
« Последнее редактирование: 26.05.2006, 22:07:25 от userxp » Записан
bazic
Осваиваюсь на форуме
***

Репутация: +6/-14
Offline Offline

Пол: Мужской
Сообщений: 53


курить бросаю


« Ответ #7 : 27.05.2006, 00:45:33 »

 |Периферия (0) <----- здесь должно быть 26 (если нет других категорий)
 |___
 |     |Принтеры (26)
 |     |___
 |           |Лазерные принтеры (26)
 |           |
        
 |Периферия (0) <----- здесь должно быть 36
 |_________________________________
 |     |Принтеры (26)                          |Многофункциональные устройства (10)
 |     |___                                         |___
 |           |Лазерные принтеры (26)            |Лазерные многофункциональные устройства (5)
 |           |                                              |Струйные многофункциональные устройства (5)
         
тыперь мы поймем друг друга Smiley
« Последнее редактирование: 27.05.2006, 00:50:56 от bazic » Записан
marti88
Захожу иногда
**

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 18


marti.org.ua


« Ответ #8 : 13.05.2007, 01:27:11 »

Сделать правку файла ps_product_category.php из administrator\components\com_virtuemart\classes

Найти: function products_in_category

заменить:
Код:
function products_in_category( $category_id ) {
if( PSHOP_SHOW_PRODUCTS_IN_CATEGORY == '1' ) {
$num = ps_product_category::product_count($category_id);
if( empty($num) && ps_product_category::has_childs( $category_id )) {
$db = new ps_DB;
$q = "SELECT category_child_id FROM #__{vm}_category_xref ";
$q .= "WHERE category_parent_id='$category_id' ";
$db->query($q);
while( $db->next_record() ) {
$num += ps_product_category::product_count($db->f("category_child_id"));
}
}

return " ($num) ";
}
else
return ( "" );

}

следующим:
Код:
function prod_in_cat_recursive( $category_id ) {
$num=0;
if (ps_product_category::has_childs( $category_id )) {
$db = new ps_DB;
$q = "SELECT category_child_id FROM #__{vm}_category_xref ";
$q .= "WHERE category_parent_id='$category_id' ";
$db->query($q);
while( $db->next_record() ) {
$num += ps_product_category::prod_in_cat_recursive($db->f("category_child_id"));
}
}
$num += ps_product_category::product_count($category_id);
return $num;
}

function products_in_category( $category_id ) {
if( PSHOP_SHOW_PRODUCTS_IN_CATEGORY == '1' ) {
$num = ps_product_category::prod_in_cat_recursive( $category_id );
return " ($num) ";
}
else
return "";
}

количество товаров в подкатегории будет сумироваться для родительских категорий всех уровней, не только на уровень выше.
Записан
gadson
Гость
« Ответ #9 : 02.03.2009, 15:53:41 »


1. Убрать нафик все "количества товаров" - параметр в админке

Подскажите плиз, где искать? Мне нужно отключить вообще эти цифры.
Записан
mixsture
Захожу иногда
**

Репутация: +3/-0
Offline Offline

Сообщений: 16


« Ответ #10 : 31.07.2009, 13:12:30 »

Для production сайта, я бы подумал над более производительным подходом:
1) Выдергиваем иерархию категорий от данной.
2) Считаем товары с where category_id in (1,2,3,4). 1,2,3,4 - это идентификаторы категорий.

Рекурсия же, в отличие от этого подхода делает очень много запросов.
Записан
Олир
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 23


« Ответ #11 : 20.11.2009, 23:12:31 »

Изменил как было сказано - полетел не только VirtueMart, но и весь сайт (((
Видимо версии магазина не совпадают...
Записан
varakuta
Захожу иногда
**

Репутация: +0/-1
Offline Offline

Сообщений: 16


« Ответ #12 : 29.11.2009, 01:30:43 »

Народ

а для последнего виртмарта есть исправление отображения правильного количества товаров ?



Заранее благодарю )
Записан
mmontana
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 28


« Ответ #13 : 13.01.2010, 02:51:07 »

Спасибо! Очень помогло!..)
Записан
Maxd
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 8


« Ответ #14 : 01.02.2010, 21:14:17 »

Народ

а для последнего виртмарта есть исправление отображения правильного количества товаров ?



Заранее благодарю )
Поддерживаю просьбу. метод указанный выше, ложит VM (сайт).
Записан
fprefix
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 17


« Ответ #15 : 25.02.2010, 19:31:40 »

Поддерживаю просьбу. метод указанный выше, ложит VM (сайт).

Что-то ложит? Работает всё, внимательней делайте. Проверено на 1.1.4
Записан
ivanesx2008
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 75



« Ответ #16 : 07.04.2010, 18:26:44 »

Помогите с подобной проблемой но в стороннем модуле... Количество товаров суммируется только в первой подкатегории. Если подкатегорий больше чем одна, то количество товаров в них не учитывается. Вот код
Код:
<?php
defined('_JEXEC') or die('Restricted access');

$menu = &JSite::getMenu();
$items = $menu->getItems('link', 'index.php?option=com_virtuemart');
$itemid = isset($items[0])? '&Itemid='.$items[0]->id : '';

$modtype = $params->get('modtype');
$showtitle = $params->get('showtitle');
$showdesc = $params->get('showdesc');
$showsubcat = $params->get('showsubcat');
$showthumb = $params->get('showthumb');
$col = $params->get ('num_cols', 2);
$colwidth = floor(100/$col);
$x = 0;
$y = 1;
$row = ceil(count($list)/$col);
$total = $col*$row;
$rest = ($total-count($list))+1;

if($modtype == 0){
$headtag = "<link rel=\"stylesheet\" href=\"" . JURI::root(). "/modules/mod_tpindexvm/tmpl/tpindexvm.css\" type=\"text/css\" />";
}else{
$headtag = "<link rel=\"stylesheet\" href=\"" . JURI::root(). "/modules/mod_tpindexvm/tmpl/tpindexvm_menu.css\" type=\"text/css\" />";
}
$mainframe->addCustomHeadTag($headtag);

if($list){
if($modtype == 0){
$data  = "<div class=\"productthumb\">";
$data .= '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
for($a=0; $a<$total; $a++){
if($y == 1){
$data .= '<tr valign="top"><td width="' . $colwidth . '%">';
}else{
$data .= '<td width="' . $colwidth . '%">';
}


if(isset($list[$a]->id)){
$linkp = JRoute::_('index.php?option=com_virtuemart&page=shop.browse&category_id='.$list[$a]->id.$itemid, false);
$data .= "<div class=\"pthumb\">";

if($showthumb == 1){
$class = " bbb";
}else{
$class = "";
}

if($showtitle == 1){
$data .= "<a href=\"$linkp\" title=\"" . $list[$a]->name . "\" id=\"productthumbbig$x\" class=\"productthumbbigtitle\">";
$data .= "<span>" . $list[$a]->name . "</span>";
$data .= "</a>";
}

if($showthumb == 1){
$data .= "<a href=\"$linkp\" title=\"" . $list[$a]->name . "\" id=\"productthumbbig$x\" class=\"productthumbbig\">";
$data .= "<div class=\"pthumbimg\"><img src='" . JURI::base(true). "/components/com_virtuemart/shop_image/category/" . $list[$a]->filename . "' /></div>";
$data .= "</a>";
}

if($showdesc == 1 || $showsubcat == 1){
$data .= "<div class='detail" . $class . "'>";

if($showdesc == 1){ $data .= "<div class='desc'>" . $list[$a]->desc . "</div>";}

if($showsubcat == 1){
$child = modTPIndexHelper::getListChild($params, $list[$a]->id);
if(count($child) > 0){
$data .= "<ul>";
for($i=0; $i<count($child); $i++){
$linkc = JRoute::_('index.php?option=com_virtuemart&page=shop.browse&category_id='.$child[$i]->id.$itemid, false);
$data .= "<li><a href=\"$linkc\" title=\"" . $child[$i]->name . "\">" . $child[$i]->name . " (" . number_format($child[$i]->total, 0, "", "."). ")</a></li>";
}
$data .= "</ul>";
}
}
$data .= "</div>";
$data .= "<div class='clear'></div>";
}
$data .= "</div>";
}else{
$data .= "&nbsp;";
}

$x++;
if($y == $col){
$data .= '</td></tr>';
$y = 1;
}else{
$data .= '</td>';
$y++;
}
}
$data .= "</table>";
}else{
$data  = "<div class=\"productthumb_menu\">";
$data .= '<ul class="parent">';
for($a=0; $a<$total; $a++){
if(isset($list[$a]->id)){
$data .= '<li>';
$linkp = JRoute::_('index.php?option=com_virtuemart&page=shop.browse&category_id='.$list[$a]->id.$itemid, false);
$data .= "<div class=\"pthumb\">";

if($showthumb == 1){
$class = " bbb";
}else{
$class = "";
}

$data .= "<a href=\"$linkp\" title=\"" . $list[$a]->name . "\" id=\"productthumbbig$x\" class=\"productthumbbigtitle\">";
$data .= "<span>" . $list[$a]->name . "</span>";
$data .= "</a>";

if($showthumb == 1){
$data .= "<a href=\"$linkp\" title=\"" . $list[$a]->name . "\" id=\"productthumbbig$x\" class=\"productthumbbig\">";
$data .= "<img src='" . JURI::base(true). "/components/com_virtuemart/shop_image/category/" . $list[$a]->filename . "' />";
$data .= "</a>";
}

if($showdesc == 1 || $showsubcat == 1){
$data .= "<div class='detail" . $class . "'>";

if($showdesc == 1){ $data .= "<div class='desc'>" . $list[$a]->desc . "</div>";}

if($showsubcat == 1){
$child = modTPIndexHelper::getListChild($params, $list[$a]->id);
if(count($child) > 0){
$data .= "<ul>";
for($i=0; $i<count($child); $i++){
$linkc = JRoute::_('index.php?option=com_virtuemart&page=shop.browse&category_id='.$child[$i]->id.$itemid, false);
$data .= "<li><a href=\"$linkc\" title=\"" . $child[$i]->name . "\">" . $child[$i]->name . " (" . number_format($child[$i]->total, 0, "", "."). ")</a></li>";
}
$data .= "</ul>";
}
}
$data .= "</div>";
$data .= "<div class='clear'></div>";
}
$data .= "</div>";
$data .= '</li>';
}

$x++;
}
$data .= "</ul>";
}
$data .= "</div>";
}else{
$data = "";
}
echo $data;
?>
Записан
vitaliy.balatskiy
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Пол: Мужской
Сообщений: 105



« Ответ #17 : 18.01.2011, 18:45:21 »

Помогите с подобной проблемой но в стороннем модуле... Количество товаров суммируется только в первой подкатегории. Если подкатегорий больше чем одна, то количество товаров в них не учитывается. Вот код
Код:
<?php
defined('_JEXEC') or die('Restricted access');

$menu = &JSite::getMenu();
$items = $menu->getItems('link', 'index.php?option=com_virtuemart');
$itemid = isset($items[0])? '&Itemid='.$items[0]->id : '';

$modtype = $params->get('modtype');
$showtitle = $params->get('showtitle');
$showdesc = $params->get('showdesc');
$showsubcat = $params->get('showsubcat');
$showthumb = $params->get('showthumb');
$col = $params->get ('num_cols', 2);
$colwidth = floor(100/$col);
$x = 0;
$y = 1;
$row = ceil(count($list)/$col);
$total = $col*$row;
$rest = ($total-count($list))+1;

if($modtype == 0){
$headtag = "<link rel=\"stylesheet\" href=\"" . JURI::root(). "/modules/mod_tpindexvm/tmpl/tpindexvm.css\" type=\"text/css\" />";
}else{
$headtag = "<link rel=\"stylesheet\" href=\"" . JURI::root(). "/modules/mod_tpindexvm/tmpl/tpindexvm_menu.css\" type=\"text/css\" />";
}
$mainframe->addCustomHeadTag($headtag);

if($list){
if($modtype == 0){
$data  = "<div class=\"productthumb\">";
$data .= '<table width="100%" border="0" cellspacing="0" cellpadding="0">';
for($a=0; $a<$total; $a++){
if($y == 1){
$data .= '<tr valign="top"><td width="' . $colwidth . '%">';
}else{
$data .= '<td width="' . $colwidth . '%">';
}


if(isset($list[$a]->id)){
$linkp = JRoute::_('index.php?option=com_virtuemart&page=shop.browse&category_id='.$list[$a]->id.$itemid, false);
$data .= "<div class=\"pthumb\">";

if($showthumb == 1){
$class = " bbb";
}else{
$class = "";
}

if($showtitle == 1){
$data .= "<a href=\"$linkp\" title=\"" . $list[$a]->name . "\" id=\"productthumbbig$x\" class=\"productthumbbigtitle\">";
$data .= "<span>" . $list[$a]->name . "</span>";
$data .= "</a>";
}

if($showthumb == 1){
$data .= "<a href=\"$linkp\" title=\"" . $list[$a]->name . "\" id=\"productthumbbig$x\" class=\"productthumbbig\">";
$data .= "<div class=\"pthumbimg\"><img src='" . JURI::base(true). "/components/com_virtuemart/shop_image/category/" . $list[$a]->filename . "' /></div>";
$data .= "</a>";
}

if($showdesc == 1 || $showsubcat == 1){
$data .= "<div class='detail" . $class . "'>";

if($showdesc == 1){ $data .= "<div class='desc'>" . $list[$a]->desc . "</div>";}

if($showsubcat == 1){
$child = modTPIndexHelper::getListChild($params, $list[$a]->id);
if(count($child) > 0){
$data .= "<ul>";
for($i=0; $i<count($child); $i++){
$linkc = JRoute::_('index.php?option=com_virtuemart&page=shop.browse&category_id='.$child[$i]->id.$itemid, false);
$data .= "<li><a href=\"$linkc\" title=\"" . $child[$i]->name . "\">" . $child[$i]->name . " (" . number_format($child[$i]->total, 0, "", "."). ")</a></li>";
}
$data .= "</ul>";
}
}
$data .= "</div>";
$data .= "<div class='clear'></div>";
}
$data .= "</div>";
}else{
$data .= "&nbsp;";
}

$x++;
if($y == $col){
$data .= '</td></tr>';
$y = 1;
}else{
$data .= '</td>';
$y++;
}
}
$data .= "</table>";
}else{
$data  = "<div class=\"productthumb_menu\">";
$data .= '<ul class="parent">';
for($a=0; $a<$total; $a++){
if(isset($list[$a]->id)){
$data .= '<li>';
$linkp = JRoute::_('index.php?option=com_virtuemart&page=shop.browse&category_id='.$list[$a]->id.$itemid, false);
$data .= "<div class=\"pthumb\">";

if($showthumb == 1){
$class = " bbb";
}else{
$class = "";
}

$data .= "<a href=\"$linkp\" title=\"" . $list[$a]->name . "\" id=\"productthumbbig$x\" class=\"productthumbbigtitle\">";
$data .= "<span>" . $list[$a]->name . "</span>";
$data .= "</a>";

if($showthumb == 1){
$data .= "<a href=\"$linkp\" title=\"" . $list[$a]->name . "\" id=\"productthumbbig$x\" class=\"productthumbbig\">";
$data .= "<img src='" . JURI::base(true). "/components/com_virtuemart/shop_image/category/" . $list[$a]->filename . "' />";
$data .= "</a>";
}

if($showdesc == 1 || $showsubcat == 1){
$data .= "<div class='detail" . $class . "'>";

if($showdesc == 1){ $data .= "<div class='desc'>" . $list[$a]->desc . "</div>";}

if($showsubcat == 1){
$child = modTPIndexHelper::getListChild($params, $list[$a]->id);
if(count($child) > 0){
$data .= "<ul>";
for($i=0; $i<count($child); $i++){
$linkc = JRoute::_('index.php?option=com_virtuemart&page=shop.browse&category_id='.$child[$i]->id.$itemid, false);
$data .= "<li><a href=\"$linkc\" title=\"" . $child[$i]->name . "\">" . $child[$i]->name . " (" . number_format($child[$i]->total, 0, "", "."). ")</a></li>";
}
$data .= "</ul>";
}
}
$data .= "</div>";
$data .= "<div class='clear'></div>";
}
$data .= "</div>";
$data .= '</li>';
}

$x++;
}
$data .= "</ul>";
}
$data .= "</div>";
}else{
$data = "";
}
echo $data;
?>

Та же беда. Ищу уже много времени решение для этого модуля, но пока толку ноль. А модуль очень даже ничего!
Записан
Overmort
Осваиваюсь на форуме
***

Репутация: +7/-0
Offline Offline

Сообщений: 101



« Ответ #18 : 10.09.2011, 22:22:32 »

Подскажите пожалуйста, где искать? Мне нужно отключить вообще эти цифры.

Чтобы отключить отображение суммы товаров в категориях VirtueMart: Настройки - Настройки - Сайт - в области «Отображение» убрать галочку в поле «Показывать количество товаров»
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet