PDA

Zobacz pełną wersję : class not found w liście produktów w VM (przy wyświetlaniu koszyka)



vereb
27-12-2010, 09:38
Witam, mam następujący problem, w Virtuemarkt (1.1.4) mam zainstalowany moduł mod_vm_prod_cat_full który wyświetla listę kategorii i podkategorii. Chcę aby wyświetlał także ilość produktów w poszczególnych kategoriach, więc znalazłem funkcję która to umożliwia:


function products_in_category( $category_id ) {
if( PSHOP_SHOW_PRODUCTS_IN_CATEGORY == '1' || vmIsAdminMode() ) {
$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 "<span class=\"kolor_red\">$num</span>";
}else return ( "" );
};Wszystko ładnie działa do czasu gdy chę wyświetlić koszyk lub formularz kontaktowy. Wtedy wyświetla mi błąd:

<span class="level0">
Akcesoria (
Fatal error: Class 'ps_product_category' not found in /modules/mod_vm_prod_cat_full/tmpl/default.php on line 17gdzie linijka 17 to:

$num = ps_product_category::product_count($category_id);P roszę o pomoc w rozwiązaniu tej sprawy.

stone
27-12-2010, 19:17
Class nie jest zadeklarowana na stronach gdzie występuje błąd. Możesz obejść to w ten sposób że znajdziesz kod funkcji które występują po ps_product_category
i wkleić w ich miejsce. Operacja ta może też się nie udać, zależy od stopnia złożoności tych funkcji

vereb
28-12-2010, 12:47
Dzięki za odpowiedź.
Próbuje zastosować Twoje wskazówki, ale nie wychodzi. Nie do końca rozumiem


znajdziesz kod funkcji które występują po ps_product_category
i wkleić w ich miejsce.

tzn. zamiast nich? chyba nie bo nie chce rezygnować z tych funkcji.
i gdybyś mógł wyjaśnić co znaczy "po ps_product_category" -> w pliku ps_product_category.php czy w plikach odpowiadających za koszyk (te w których podstrony się sypią).


---------- Post dodany o 12:47 ---------- Poprzedni post był o 11:42 ----------

Chyba znalazłem odpowiedź :)
W module VirtueMart Full Category List, w pliku default.php nad funkcją


function products_in_category( $category_id ) {
if( PSHOP_SHOW_PRODUCTS_IN_CATEGORY == '1' || vmIsAdminMode() ) {
$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 "<span class=\"kolor_red\">$num</span>";
}else return ( "" );
};

wstawić:


require_once(CLASSPATH.'ps_product_category.php');

koszyk już się wyświetla wraz z listą produktów :) pozdrawiam

stone
28-12-2010, 17:55
O widzisz, to dobrze, może i mi się przyda na zaś.:) Pozdrawiam