zalim_mohamed Posted July 22, 2010 Share Posted July 22, 2010 j'ai suivi l'etape de creation de module qui existe dans ce pdf http___www.prestashop.pdf.j'ai cree un fichie php unmodule.php contient le code suivant:<?phpclass UnModule extends Module{ public function __construct() { $this->name ='unmodule'; $this->tab ='Divers'; $this->version ='1.0'; parent::__construct(); $this->page =basename(__FILE__,'.php'); $this->displayName =$this->l('Module block'); $this->description =$this->l('Adds a block featuring nothing'); } public function install() { if (parent::install() == false ) return false; return true; }}<?puis un fichie unmodule.tpl videensuite j'ai employée avec http://localhost/prestashop/admin123/ ma donne cette resultat:Erreur(s) de parsing dans le(s) module(s)unmodulesvp aide moi http___www.prestashop.pdf http___www.prestashop.pdf Link to comment Share on other sites More sharing options...
J. Danse Posted August 1, 2010 Share Posted August 1, 2010 Je vois un soucis sur la fin du code PHP. Tu as un <? en lieu de ?> Je ne sais pas si cela va régler ton soucis, mais c'est peut-être une piste à voir. Link to comment Share on other sites More sharing options...
zalim_mohamed Posted August 4, 2010 Author Share Posted August 4, 2010 j'ai cree un module qui presenté dans le pdf creation de module de prestashop:D.3 Etude de Cas Il nous faut donc le nom du client ; récupérer son id client (id_customer dans prestashop) ; le nombre de commandes (order) associé à ce client ; si nombre de commandes est strictement supérieur à 1 alors il gagne une voiture sinon (2 – nombre de commande) avant de gagner une voiture. Voilà les « fonctions » à programmer : si le client est logué on récupère son identifiant sinon on ne fait rien. On prépare la requête SQL On récupère la connexion à la base avec Db :getInstance et on exécute la requête. On traite la réponse (tri et traitement). On prépare les données à passer à Smarty On affiche la réponse Nous avons déjà nos 2 fichiers : unmodulefunction.php et unmodulefunction.tpl. L’utilisateur arrive sur la page de traitement via le lien de notre bloc module ; on peut préparer notre script selon son état (pas du client) : connecté ou non. jai copier le code suivant dans le fichier unmodule.function.php :<?php global $smarty; include('../../../config/config.inc.php'); include(_PS_ROOT_DIR_.'/header.php'); //le client est connecté ou non //si pas connecté if (!$cookie->isLogged()) { $message="pour profiter de tout nos avantages et connaitre les derniers infos, merci de vous identifiez"; $smarty->assign('message',$message); } else {// $message="bonjour";// $customer=new Customer(intval($cookie->id_customer));// //$exclusion= array('secure_key','old_passwd','active','date_add','date_upd');// $fields= $customer->getFields();// foreach ($fields AS $key => $value)// if (!in_array($key, $exclusion))// $customer->{$key};// $smarty->assign('customer',$customer); $sql="SELECT count( `id_order` ) FROM `ps_orders` JOIN `ps_customer` ON `ps_customer`.`id_customer` = `ps_orders`.`id_customer` WHERE `customer`.`id_customer= $cookie->id_customer"; $reponce=Db::getInstance()->ExecuteS($sql); $smarty->assign('commande',$nombre_commande[0]); } $smarty->display(dirname(__FILE__).'/unmodulefunction.tpl'); include(_PS_ROOT_DIR_.'/footer.php'); ?>mais aucune chagement reçu ni le message svp qlq me explique pourqoi aide moi http___www.prestashop.pdf Link to comment Share on other sites More sharing options...
amaury Posted August 5, 2010 Share Posted August 5, 2010 Attention à plusieurs choses :- Si tu veux de l'aide, il est préférable de soigner son orthographe et la façon de présenter ton problème- Indente ton code, on n'y comprend rienPour ton problème, je ne vois pas la solution mais il est préférable pour toi de commencer par un module facile à faire (Genre afficher un message) et de modifier celui-ci pour faire ce que tu veux qu'il fasse. Link to comment Share on other sites More sharing options...
zalim_mohamed Posted August 5, 2010 Author Share Posted August 5, 2010 merci pour ton consiel. svpje te demander s'il y a qlq TP pour moi j'ai trouver seulement se tp de creation de module.concernant le probleme :j'ai essaie ce code qui je le trouve dans le pdf precedent <?php global $smarty; include('../../../config/config.inc.php'); include(_PS_ROOT_DIR_.'/header.php'); //le client est connecté ou non //si pas connecté if (!$cookie->isLogged()) { $message="pour profiter de tout nos avantages et connaitre les derniers infos, merci de vous identifiez"; $smarty->assign('message',$message); } else { // $message="bonjour"; // $customer=new Customer(intval($cookie->id_customer)); // //$exclusion= array('secure_key','old_passwd','active','date_add','date_upd'); // $fields= $customer->getFields(); // foreach ($fields AS $key => $value) // if (!in_array($key, $exclusion)) // $customer->{$key}; // $smarty->assign('customer',$customer); $sql="SELECT count( `id_order` ) FROM `ps_orders` JOIN `ps_customer` ON `ps_customer`.`id_customer` = `ps_orders`.`id_customer` WHERE `customer`.`id_customer= $cookie->id_customer"; $reponce=Db::getInstance()->ExecuteS($sql); $smarty->assign('commande',$nombre_commande[0]); } $smarty->display(dirname(__FILE__).'/unmodulefunction.tpl'); include(_PS_ROOT_DIR_.'/footer.php'); ?> mais je ne trouve aucune changement sur la page Link to comment Share on other sites More sharing options...
amaury Posted August 5, 2010 Share Posted August 5, 2010 Si je comprend bien ton code :Quand le client n'est pas connecté, la variable {$MESSAGE} dans ton fichier TPL sera remplacé par "pour profiter de tout nos avantages et connaitre les derniers infos, merci de vous identifiez"Quand le client est connecté, tu effectue une requete SQL qui assigne a la variable {$COMMANDE} le contenu de $nombre_commande[0];Déjà, as-tu un {$COMMANDE} sur ton TPL pour voir ce que celui-ci te donne ? Link to comment Share on other sites More sharing options...
zalim_mohamed Posted August 5, 2010 Author Share Posted August 5, 2010 merci pour votre explication mais aucun de ce deux la n'est pas afichie même si j'ai déjà les deux variable {$commande} et {$message} dans mon fichier .tpl Link to comment Share on other sites More sharing options...
amaury Posted August 5, 2010 Share Posted August 5, 2010 Question bête mais au cas où : Tu as bien activé ton module dans l'administration de ton site ? Link to comment Share on other sites More sharing options...
zalim_mohamed Posted August 5, 2010 Author Share Posted August 5, 2010 bien sur j'ai installer mon mon module puis je fait le test Link to comment Share on other sites More sharing options...
amaury Posted August 5, 2010 Share Posted August 5, 2010 Si ton fichier TPL contient : {$message} {$commande} Seulement, essaye de mettre du "vrai" texte comme : Message : {$message} Commande : {$commande} J'ai besoin de savoir si ton TPL est bel et bien affiché car avec le premier code, tu devrait déjà avoir quelque chose quoi qu'il arrive. Link to comment Share on other sites More sharing options...
zalim_mohamed Posted August 5, 2010 Author Share Posted August 5, 2010 voila les deux fichie et j'ai utilisé le ddlx_presta_green_planet comme theme unmodule.function.php Link to comment Share on other sites More sharing options...
zalim_mohamed Posted August 5, 2010 Author Share Posted August 5, 2010 voila les deux fichie et j'ai utilisé le ddlx_presta_green_planet comme theme Link to comment Share on other sites More sharing options...
amaury Posted August 6, 2010 Share Posted August 6, 2010 Il me semble qu'il faut 3 fichiers, non ?1/ Un .php contenant une classe qui permet de créer le module dans le backoffice qui va appeler le ème fichier :2/ Fichier .php (que tu m'a envoyé) qui contient ce que le bloc doit "calculer"3/ Un fichier tpl affichant le résultatIl serait intéressant d'avoir les 3 que je t'explique où se trouve le problème. Link to comment Share on other sites More sharing options...
zalim_mohamed Posted August 6, 2010 Author Share Posted August 6, 2010 le premier fichier c'est blockunmodule.phple deuxieme c'est blockunmodule.tpl <!-- Block unmodule --> {l s='Block' mod='blockunmodule'} {l s='Nouvelles fonctions' mod='blockunmodule'} <!-- /Block unmodule --> le troisieme c'es le fichier unmodule.function.php qui je t'envoie la dernier fois puis pour presenté les resultat de fichier unmodule.function.php,on a le fichie unmodulefunction.tpl: Message : {$message} Commande : {$commande} merci bcp blockunmodule.php Link to comment Share on other sites More sharing options...
amaury Posted August 6, 2010 Share Posted August 6, 2010 Je connais le problème mais je n'ai pas la solution.Quand tu fait un module, je te conseille de passer temporairement tes premières variables dans /config/config.inc.php à ça : @ini_set('display_errors', 'on'); define('_PS_DEBUG_SQL_', true); Ca te permet de voir des erreur s'il y en a. Là tu avais une erreur SQL qui annule tout affichage dans ton fichier TPL.Malheureusement, je suis pas très à l'aise avec l'outil de gestion SQL de prestashop, donc je peux pas trop t'aider.Bonne continuation... Link to comment Share on other sites More sharing options...
Fefaine Posted November 3, 2010 Share Posted November 3, 2010 C'est juste qu'il y a une erreur dans le pdf.Plus d'infos ici http://www.prestashop.com/forums/viewreply/189055/ $sql = "SELECT count(`id_order`) FROM `ps_orders` JOIN `ps_customer` ON `ps_customer`.`id_customer` = `ps_orders`.`id_customer` WHERE `ps_customer`.`id_customer` = $cookie->id_customer"; $nombre_commande = Db::getInstance()->ExecuteS($sql); $nbCommandes = (int)$nombre_commande[0]; $smarty -> assign('nb_commande',$nbCommandes); Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now