
gatien
Members-
Posts
46 -
Joined
-
Last visited
gatien's Achievements
Newbie (1/14)
0
Reputation
-
Bonjour, J'ai d'une part voulu refaire le site, tout du moins le thème, de façon de plus propre, maitrisant beaucoup mieux smarty et le css, plutot que de colmater les imperfections de l'ancien site et les incompatibilités de certains navigateurs. Je n'avais besoin que de quelques tables, c'était donc plus simple ainsi. Concernant l'accès de l'admin, j'ai renommé le dossier avec un nom différent (d'après le guide presta, il faut mettre le nom de la boutique, mais ça ne change rien) ce qui doit donner : http //monsite. com/Nomdossieradmin Faites une recherche sur le forum, je crois que cela a déjà été traité. Arf, j'ai mon cou et mes yeux réduit à néant avec " site:prestashop.com" et google ... Il y a des problèmes similaires mais pas de solutions miracles. J'ai passé l'aprem à tout écumer, et je referais tout ce soir je pense.
-
Bonjour, J'en peux plus, je suis à bout alors si j'omets des informations, veuillez m'en excuser d'avance. Bon alors mon problème s'apparente plus à une installation qu'à une migration : J'ai une boutique en version 1.25 et une base de donnée (DB) "A". ça tourne bien en serveur dédié gandi. Donc j'ai voulu refaire une boutique en v.1.4 stable avec une DB "B" d'où j'ai copié les informations vitales extraites de DB A (produits,noms,commandes,catégorie) de façon à ne pas perdre le référencement en gardant les mêmes liens et ID. La boutique fonctionne bien en local avec wamp. J'ai décidé de la mettre en ligne ce week end pour effectuer les dernières modifs nécessaires. Et la patatra , rien ne va. J'ai résolu le problème de l'affichage du F.O qui consistait à modifier les champs 157 et 158 de la table PS_configuration; mais pour le BO je sèche. L'erreur est la suivante : " ERREUR 404" et tout ce qui va avec. J'ai de plus en plus l'impression que c'est dû à la réécriture de l'url que j'ai activé avant le chargement. De même en local ça ne tourne plus correctement; il y a un " /fr " qui s'est ajouté derrière http://localhost/prestashop. Si vous êtes en mesure de comprendre mon problème et que vous pensez avoir la solution, merci de m'en faire part. Je serai ravi de mettre un joli [RESOLU] ici.
-
Erreur après mise à jour 1.4
gatien replied to switii's topic in Utilisation de PrestaShop : configuration et difficultés
J'arrive enfin à afficher mon FO. Ma solution pour ceux que ça intéresserait : -sur FTP : j'ai pris "mon nouveau site", avec mon "nouveau htaccess" fait en local, plus ma nouvelle base de données avec les bons paramètres dans settings. Ensuite dans votre navigateur : http://monsite.kom/phpmyadmin. Vous recherchez la table ps_configuration : ligne 157 et 158 et vous mettez le nom de votre domaine à la place de localhost. C'était la cause de la redirection. Il est possible qu'il y ait des erreur pour les paniers et commandes car il y a "localhost/orderconfirmation.php" ligne 245. Pensez à rafraichir vos navigateurs, ça marchait avec firefox mais pas avec chrome, il a fallu tout supprimé dans chrome pour que ça marche aussi ... Par contre maintenant : pas d'accès au BO => erreur 404 -
Erreur après mise à jour 1.4
gatien replied to switii's topic in Utilisation de PrestaShop : configuration et difficultés
Bonjour, Exactement le même problème avec la "ligne 28" du même fichier : Fatal error: Class 'ObjectModel' not found in /srv/nomserveur/www/www.monsite.com/htdocs/classes/Configuration.php on line 28 J'ai une boutique en prod version 1.25. J'ai totalement refait en local avec la 1.4 et wamp en adaptant les anciennes données manuellement par phpmyadmin. ça fonctionne très bien en local, mais impossible d'afficher quoi que ce soit à part phpmyadmin. J'ai utilisé le htaccess du site en 1.25, j'ai essayé plusieurs combinaisons dans le setting. J'ai fait 4 upload via ftp. J'ai eu certains résultats en fonction des modifs que je faisais : - j'avais la page d'accueil du FO sans avoir de traces de produits ou autres informations gardées dans la DB (en utilisant la base 1.25) - J'avais la page d'accueil http://monsite.com qui redirigeait instantanément vers : http://localhost (wamp) avec bien sûr tous mes projets visibles, si je mettais dans le setting le nom de la base que j'ai utilisée en local. Si vous avez des pistes, je suis également preneur. -
Parfait, ça marche aussi maintenant. J'ai compris pas mal de choses après bien des heures, et surtout comment sont transmises les infos. Je suis content d'avoir enfin réussi ma première fonction PHP. Je crois que je vais en faire d'autres du coup, ça me parait très intéressant. Avant ça il faut que je l'adapte au product list via les fichiers search je pense. Lorsque j'ai une fonction dans une Classe (Product par exemple), dois je la reproduire dans une autre classe si par exemple j'utilise cette même fonction dans une autre page.php ou la formule "$smarty->assign('nombre_de_produits', Product::NombreTotalProduits($product->supplier_reference));" suffit elle à renvoyer vers la Classe Product et utiliser cette fonction ? En tout cas, merci de votre aide.
-
Je viens de trouver comment y arriver partiellement en modifiant la syntaxe. static public function NombreTotalProduits($supplier_reference) { $sql = 'SELECT COUNT(*) AS value' . ' FROM `ps_product`WHERE `supplier_reference`='.$supplier_reference.' '; $nb = Db::getInstance()->getRow($sql); return $nb["value"]; } Par contre, chose étrange, ça ne marche qu'avec un supplier_reference égal à un nombre. Si c'est des lettres, ça ne marche pas. A quoi cela est il dû ?
-
ça ne passe toujours pas : voici mon code actuel sur Product.php : static public function NombreTotalProduits($supplier_reference=false) { if(!$supplier_reference) return false; $result = Db::getInstance()->Execute('SELECT COUNT(*) AS `value` FROM `ps_product` WHERE `$supplier_reference`='.$supplier_reference); return $Result["value"]; } et celui sur product.php $smarty->assign('nombre_de_produits', $product->supplier_reference); edit : dans ce dernier code, il ne renvoie apparemment à la classe qui effectue la requête. Il ne sert qu'à afficher le numéro supplier_reference du produit par une autre variable. Si je modifie en : $smarty->assign('nombre_de_produits', Product::NombreTotalProduits($product->supplier_reference)); , là debug indique NULL
-
Alors si je fais ça, le debug confirme bien que la variable test existe et lui donne la valeur du produit sur la page actuelle (soit 2302 pour le produit que je teste) ça me sort '2302' si je remplace la variable test par {$nombre_de_produit} dans la page produit et non pas le nombre de fois que '2302' existe dans l'ensemble de mon catalogue. C'est pareil si je fais {$nombre_de_produit|@count}
-
Toujours pareil, la page produit s'affiche, mais sans l'information demandée. J'ai cependant remplacé Tools par Product dans la première portion de votre code. Le résultat {debug} est : {$nombre_de_produits} null Je pense que le problème vient de la clause WHERE : pourquoi si je met un unique supplier_reference ça fonctionne, et quand je le remplace par la variable, là ça ne va plus ? Soit j'indique mal l'information et j'oublie quelque chose, soit la variable n'est pas déclarée ou ne remonte pas dans la Classe. Même en prenant modèle sur les autres select count, je n'y arrive pas :/ edit : a nouveau avec ce code, je remplace dans la clause WHERE : WHERE `supplier_reference`=$supplier_reference par WHERE `supplier_reference`=2302 et là maintenant ça marche (résultat : 4), si j'essaye autre chose, le nombre change et correspond aussi.
-
Eh bien non, il y a toujours un problème. Je n'arrive pas à adapter la requête sql pour l'afficher dans la page produit Là ça ne marche pas static public function NombreTotalProduits() { $Result = Db::getInstance()->getRow('SELECT COUNT(*) AS `value` FROM `ps_product`WHERE `supplier_reference`=$product->supplier_reference '); return $Result["value"]; } Mais si je remplace la variable par un numéro supplier_reference existant, ça marche static public function NombreTotalProduits() { $Result = Db::getInstance()->getRow('SELECT COUNT(*) AS `value` FROM `ps_product`WHERE `supplier_reference`=2302 '); return $Result["value"]; } L'intérêt est quand même d'utiliser la variable $product->supplier_reference. Est ce possible de l'utiliser dans Classes/Product.php ?
-
Bonjour, Ce que je souhaite : afficher : “x articles à partir de x euros (pour ceux ayant toujours le même supplier_reference), car il y aura aussi le cas du prix minimal à afficher. J’avais trouvé une piste sur le forum (après l'avoir fouillé plusieurs heures) pour afficher le nombre total de produits de la boutique, mais ça ne marche pas (j’ai laissé la formule telle quelle sans modifier les paramètres qui m’intéressent). Ajout dans Classes/Product.php : static public function NombreTotalProduits() { $Result = Db::getInstance()->GetRow(' SELECT COUNT(*) AS `value` FROM `'._DB_PREFIX_.'product`'); return $Result["value"]; } Ajout dans product.php : $smarty->assign('nombre_de_produits', Tools::NombreTotalProduits()); Ajout dans product.tpl {$nombre_de_produits} Je place peut être mal les 2 premiers. J’avais aussi vu une méthode en utilisant : {php} requête {/php} directement dans le tpl concerné, mais là non plus pas de succès. Des idées ? Merci d'avance
-
Merci. Mais malheureusement, ça ne fonctionne pas si je l'ajoute dans product.tpl / product-list.tpl. Je cherchais plus le moyen d'utiliser la requête SQL pour afficher : "x articles à partir de x euros (pour ceux ayant toujours le même supplier_reference) car il y aura aussi le cas du prix minimal à afficher. J'avais trouvé une piste sur le forum, mais ça ne marche pas (j'ai laissé la formule telle quelle sans modifier les paramètres qui m'intéressent). Ajout dans Classes/Product.php : static public function NombreTotalProduits() { $Result = Db::getInstance()->GetRow(' SELECT COUNT(*) AS `value` FROM `'._DB_PREFIX_.'product`'); return $Result["value"]; } Ajout dans product.php : $smarty->assign('nombre_de_produits', Tools::NombreTotalProduits()); Ajout dans product.tpl {$nombre_de_produits} Je place peut être mal les 2 premiers. J'avais aussi vu une méthode en utilisant : {php} requête {/php} directement dans le tpl concerné, mais là non plus pas de succès. Topic sur le sujet : http://www.prestashop.com/forums/viewthread/97104/developpement/aide_pour_utiliser_une_requete_sql_dans_product_et_productlist_dot_tpl__nb_de_produits_ayant_la_meme_ref_dot_/
-
Bonjour, Merci de votre réponse. J'avais cependant trouvé la bonne solution dans la nuit : > </pre> <ul> {foreach from=$categoryProducts item='categoryProduct' name=categoryProduct} {if $product->supplier_reference==$categoryProduct.supplier_reference}METTRE LES INFOS DU PRODUIT {/if}{/foreach}</ul> La je planche sur un autre problème : Comment afficher le nombre de ces articles (tous ceux ayant un supplier_reference identique) dans product list. Il faudrait apparemment faire une requête SQLavec select count, mais je n'y arrive pas. Mais comme un topic = un sujet, je vais en faire un autre ...
-
Bonjour, J'ai souhaité faire une petite modification dans mon module productscategory qui était déja pas mal modifié. Je voudrais donc sélectionner et afficher parmi tous les produits de la liste uniquement ceux qui ont la même référence fournisseur (supplier_reference). Ces informations existent bien, mais je ne sais pas comment placer le code dans mon fichier productscategory.tpl. Ci dessous un extrait du résultat avec Debug sur product.tpl {$categoryProducts} Array (6) 0 => Array (59) id_product => "4467" supplier_reference => "AAA" 2 => Array (59) id_product => "2302" supplier_reference => "AAA" 3 => Array (59) id_product => "2303" supplier_reference => "BBB" 4 => Array (59) id_product => "2305" supplier_reference => "AAA" Si je met dans mon productscategory.tpl incorporé dans le des infos des objets de même catégorie : {$categoryProducts.0.id_product} : cela affiche bien "4467" avec chacun de ces 4 articles; Mon problème : que faut il mettre à la place de "0" (ou 2, 3 et 4) dans {$categoryProducts.0.id_product} pour que l'on puisse faire appel aux informations de l'array situé après. C'est à dire ne pas afficher 4 fois "4467", mais respectivement : "4467", "2302", "2303" et "2305". Fonction PHP ? Créer une variable ? Utiliser foreach ? ... Merci d'avance