bazic
Осваиваюсь на форуме
 
Репутация: +6/-14
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
|
 |
« Ответ #1 : 26.05.2006, 08:05:12 » |
|
И что?
|
|
|
|
|
Записан
|
|
|
|
bazic
Осваиваюсь на форуме
 
Репутация: +6/-14
Offline
Пол: 
Сообщений: 53
курить бросаю
|
 |
« Ответ #2 : 26.05.2006, 10:01:55 » |
|
И что ????? Да ручку в глаз !!!! Тупо создается впечатление, что товара в папке НЕТ !!!!
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #3 : 26.05.2006, 13:16:22 » |
|
Так его там и вправду нет - он есть в подпапке.
|
|
|
|
|
Записан
|
|
|
|
|
tug
|
 |
« Ответ #4 : 26.05.2006, 17:32:13 » |
|
Вопрос-то Вы не задали =)
Есть три варианта решения проблемы в порядке усложнения, но увеличения эффекта: 1. Убрать нафик все "количества товаров" - параметр в админке 2. Хакнуть, чтобы нолик не выводился вообще 3. Хакнуть, чтобы категория проверялась на дочерние. Т.е. если у категории есть дочерние товары, то нолик у неё не выводится.
я даже делал что-то на эту тему... поищу сегодня.
|
|
|
|
|
Записан
|
|
|
|
bazic
Осваиваюсь на форуме
 
Репутация: +6/-14
Offline
Пол: 
Сообщений: 53
курить бросаю
|
 |
« Ответ #5 : 26.05.2006, 17:44:08 » |
|
Вопрос-то Вы не задали =)
Есть три варианта решения проблемы в порядке усложнения, но увеличения эффекта: 1. Убрать нафик все "количества товаров" - параметр в админке 2. Хакнуть, чтобы нолик не выводился вообще 3. Хакнуть, чтобы категория проверялась на дочерние. Т.е. если у категории есть дочерние товары, то нолик у неё не выводится.
я даже делал что-то на эту тему... поищу сегодня.
третий вариант наиболее приемлим, только макуха дерева категории должна выводить суммарное кол-во товаров во всех дочерних категориях и подкатегориях и подподкатегориях и т.д.
|
|
|
|
|
Записан
|
|
|
|
|
tug
|
 |
« Ответ #6 : 26.05.2006, 21:31:12 » |
|
только макуха дерева категории должна выводить суммарное кол-во товаров во всех дочерних категориях и подкатегориях и подподкатегориях и т.д. А Вы хотя бы примерно представляете сколько времени займёт такой запрос? Если нет, то я Вам советую посмотреть на структуру таблиц virtuemart и подумать об этом. Возможно Вы имели ввиду просто общее количество товаров во всех категориях.
|
|
|
|
« Последнее редактирование: 26.05.2006, 22:07:25 от userxp »
|
Записан
|
|
|
|
bazic
Осваиваюсь на форуме
 
Репутация: +6/-14
Offline
Пол: 
Сообщений: 53
курить бросаю
|
 |
« Ответ #7 : 27.05.2006, 00:45:33 » |
|
|Периферия (0) <----- здесь должно быть 26 (если нет других категорий) |___ | |Принтеры (26) | |___ | |Лазерные принтеры (26) | | |Периферия (0) <----- здесь должно быть 36 |_________________________________ | |Принтеры (26) |Многофункциональные устройства (10) | |___ |___ | |Лазерные принтеры (26) |Лазерные многофункциональные устройства (5) | | |Струйные многофункциональные устройства (5) тыперь мы поймем друг друга 
|
|
|
|
« Последнее редактирование: 27.05.2006, 00:50:56 от bazic »
|
Записан
|
|
|
|
marti88
Захожу иногда

Репутация: +4/-0
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
Сообщений: 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
Сообщений: 23
|
 |
« Ответ #11 : 20.11.2009, 23:12:31 » |
|
Изменил как было сказано - полетел не только VirtueMart, но и весь сайт ((( Видимо версии магазина не совпадают...
|
|
|
|
|
Записан
|
|
|
|
varakuta
Захожу иногда

Репутация: +0/-1
Offline
Сообщений: 16
|
 |
« Ответ #12 : 29.11.2009, 01:30:43 » |
|
Народ
а для последнего виртмарта есть исправление отображения правильного количества товаров ?
Заранее благодарю )
|
|
|
|
|
Записан
|
|
|
|
mmontana
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 28
|
 |
« Ответ #13 : 13.01.2010, 02:51:07 » |
|
Спасибо! Очень помогло!..)
|
|
|
|
|
Записан
|
|
|
|
Maxd
Захожу иногда

Репутация: +1/-0
Offline
Сообщений: 8
|
 |
« Ответ #14 : 01.02.2010, 21:14:17 » |
|
Народ
а для последнего виртмарта есть исправление отображения правильного количества товаров ?
Заранее благодарю )
Поддерживаю просьбу. метод указанный выше, ложит VM (сайт).
|
|
|
|
|
Записан
|
|
|
|
fprefix
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 17
|
 |
« Ответ #15 : 25.02.2010, 19:31:40 » |
|
Поддерживаю просьбу. метод указанный выше, ложит VM (сайт).
Что-то ложит? Работает всё, внимательней делайте. Проверено на 1.1.4
|
|
|
|
|
Записан
|
|
|
|
ivanesx2008
Осваиваюсь на форуме
 
Репутация: +0/-0
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 .= " "; } $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
Пол: 
Сообщений: 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 .= " "; } $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
Сообщений: 101
|
 |
« Ответ #18 : 10.09.2011, 22:22:32 » |
|
Подскажите пожалуйста, где искать? Мне нужно отключить вообще эти цифры.
Чтобы отключить отображение суммы товаров в категориях VirtueMart: Настройки - Настройки - Сайт - в области «Отображение» убрать галочку в поле «Показывать количество товаров»
|
|
|
|
|
Записан
|
|
|
|
|