Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Version stable courante
téléchargement osCSS 1.2.2 RC

Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar cynic- » Mar 12 Oct 2010, 18:08

Bon, à force de trifouiller le code de ma 1.2.2 voila que le panier ne fonctionne plus :
Code: Tout sélectionner
Fatal error: Call to a member function on a non-object in /var/www/vhosts/******/includes/classes/shopping_cart.php on line 424


Message qui apparaît sur les produits avec 1 attribut (couleur). C'est une portion de code venant de SPPC et qui indique ceci (dans un else) :
Code: Tout sélectionner
$this->total -= $currencies->calculate_price($attribute_price[$n]['options_values_price'], $products_tax, $qty);


Ou alors l'affichage du panier se fait sans Fatal error mais ne va pas plus loin que
Code: Tout sélectionner
<p id="ajaxcartSubTotal" class="cartSubTotal">

Ensuite, page blanche...

Je ne vois pas où ça a foiré :|
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar oscim » Mar 12 Oct 2010, 19:03

ta ligne 424 c'est celle la ?

Code: Tout sélectionner
$this->total -= $currencies->calculate_price($attribute_price[$n]['options_values_price'], $products_tax, $qty);


Juste comme ca tu a un global sur ton $currencies ?
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar cynic- » Ven 15 Oct 2010, 12:46

Non, pas de global sur mon $currencies (ni avant les modifications pour SPPC).
Avec un shopping_cart.php d'origine, pas de souci, donc SPPC est bien la cause de mes tourments. Une adaptation incomplète je pense :oops:
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar oscim » Mer 20 Oct 2010, 19:38

Arg :oops: , je t'ai oublié, je pensais t'avoir répondu :D

En fait, peut être que le currencies n'etait pas en global, mais c'est une erreur je pense. Dans la V2, il est déclare en global. unqiuement dans la méthode calculate.

Or , compte tenu de l'erreur, l'appel à une methode d'un objet , qui n'en est pas un je vois pas autre chose.

Tu peut éventuellement poster le méthode complète, ca m'évitera de chercher, et je verrai tes modif.
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar cynic- » Jeu 21 Oct 2010, 11:44

(message édité)
Même en plaçant global $currencies; comme ceci :

Code: Tout sélectionner
function calculate() {
global $currencies; // Ajout pour bug SPPC sur produits avec attributs
$this->total = 0;
$this->weight = 0;
(...)


Ca semblait fonctionner, mais non. J'ai parlé trop vite :(
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar cynic- » Jeu 21 Oct 2010, 12:52

Ou plus exactement, je n'ai plus la "fatal error" mais le prix s'affiche en "undefined" pendant une fraction de seconde (rafraîchissement de la quantité) puis gros blanc, plus aucun contenu sur ma page après
Code: Tout sélectionner
<p id="ajaxcartSubTotal" class="cartSubTotal">
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar cynic- » Jeu 21 Oct 2010, 13:18

Mais ça serait-y pas la fonction calculate_price qui sort de nulle part, je vais appliquer ces modifications et voir :
http://www.oscommerce-fr.info/forum/ind ... ntry269745

(d'ailleurs c'était déjà abordé et non résolu sur un autre topic SPPC)
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar oscim » Jeu 21 Oct 2010, 15:22

Ah ben peut être alors, mais dans ce cas, tu devrais toujours avoir une alert lors de l'usage de cette fonction, qui n'est pas dans la class.

PS, effectivement dans osCSS2, j'ai utilisé la fonction tep_add_tax() :D
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar cynic- » Jeu 21 Oct 2010, 15:44

Bon alors voici les modif faites :

1 - Dans catalog/includes/classes/currencies.php ajouter à la fin
Code: Tout sélectionner
function calculate_price($products_price, $products_tax, $quantity = 1) {
global $currency;
return tep_round(tep_add_tax($products_price, $products_tax), $this->currencies[$currency]['decimal_places']) * $quantity;
}


2 - Dans catalog/includes/classes/order.php contrairement à ce qui est indiqué sur le forum oscommerce-fr, ne rien faire car cette ligne est déjà telle quelle :
Code: Tout sélectionner
$shown_price = tep_add_tax($this->products[$index]['final_price'], $this->products[$index]['tax'] * $this->products[$index]['qty']);


3 - Dans catalog/includes/classes/shopping_cart.php
Remplacer ceci
Code: Tout sélectionner
$this->total += $currencies->calculate_price($attribute_price[$n]['options_values_price'], $products_tax, $qty);
} else {
$this->total -= $currencies->calculate_price($attribute_price[$n]['options_values_price'], $products_tax, $qty);

Par :
Code: Tout sélectionner
//   $this->total += $currencies->calculate_price($attribute_price[$n]['options_values_price'], $products_tax, $qty);
$this->total += tep_add_tax($products_price, $products_tax) * $qty;
} else {
//   $this->total -= $currencies->calculate_price($attribute_price[$n]['options_values_price'], $products_tax, $qty);
$this->total -= tep_add_tax($products_price, $products_tax) * $qty;

C'est étrange d'ajouter la fonction calculate_price dans le point 1, pour ensuite la commenter dans le point 3... checker si cette fonction n'est pas utile ailleurs...
Bizarrement mon prix est maintenant affiché, OK, mais multiplié par 2. Un détail a dû m'échapper :mrgreen:
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar cynic- » Ven 29 Oct 2010, 16:20

Mes prix sont doublés dans le panier, à cause de $this->total += tep_add_tax($products_price, $products_tax) * $qty; qui est présent 2 fois dans catalog\includes\classes\shopping_cart.php
Pourquoi 2 fois ? Parce que la 2eme fois vient remplacer $this->total += $currencies->calculate_price($attribute_price[$n]['options_values_price'], $products_tax, $qty); qui posait problème.

Nouveau souci :aie:

PS : les prix de mes attributs ne sont plus sauvegardés en bdd
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar oscim » Ven 29 Oct 2010, 16:25

Dur :x

Bon, ben compte tenu que tu a ajouté la methode calculate_price dans la class shopping cart

Peut être peut tu conserver ca

Code: Tout sélectionner
$this->total += $currencies->calculate_price($attribute_price[$n]['options_values_price'], $products_tax, $qty);
} else {
$this->total -= $currencies->calculate_price($attribute_price[$n]['options_values_price'], $products_tax, $qty);


Logiquement tu ne devrait plus avoir ton alert .
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar cynic- » Lun 08 Nov 2010, 13:32

Eeeeeeh non dès que je conserve ceci...

Code: Tout sélectionner
$this->total += $currencies->calculate_price($attribute_price[$n]['options_values_price'], $products_tax, $qty);
} else {
$this->total -= $currencies->calculate_price($attribute_price[$n]['options_values_price'], $products_tax, $qty);


... ma page ne se charge plus (ni le bas du panier ni ma colonne de gauche)
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar oscim » Lun 08 Nov 2010, 17:03

Arg, décidément, :(

Et ton erreur E_ALL te renvoi toujours la même ?
Fatal error / Call to a member function on a non-object : classes/shopping_cart.php
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar cynic- » Mar 09 Nov 2010, 18:46

Non, plus de message d'erreur, "juste" du blanc :?
En récupérant les fichiers originaux, à savoir les classes currencies, order, shopping_cart, auxquels j'ai réappliqué les modifications induites par SPPC, les calculs de prix fonctionnent à nouveau.

Je ne place pas en [résolu], n'ayant pas compris / cerné le problème totalement pour l'instant.
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar oscim » Mar 09 Nov 2010, 19:05

Oulalualau , le fantome d'osC te poursuit :mrgreen:
Pour un web au normes du W3C, pour un web plus propre !

- Download osCSS Toutes versions
- stable osCSS 2.1.0 (help|info|new dev) Official help|wiki|Tuto for osCSS 2 | doc doxygen
- Utiliser le tracker pour suivre les évolutions et développements
- Inscrivez vos sites sur oscss pour présenter vos réalisations
Avatar de l’utilisateur
oscim
Site Admin
 
Messages: 1643
Inscription: Mar 25 Sep 2007, 11:33

Re: Fatal error / Call to a member function on a non-object : classes/shopping_cart.php

Messagepar cynic- » Mar 09 Nov 2010, 19:15

Haha ouais :mrgreen:
Un peu comme les fantômes gloutons dans le labyrinthe, et moi je suis PacMan

Image
cynic-
Site Admin
 
Messages: 694
Inscription: Mar 04 Déc 2007, 13:04


Retourner vers osCSS 1.2.2 RC

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

cron