IchabOd Posted November 28, 2011 Share Posted November 28, 2011 Bonjour à tous, Je souhaite faire une petite modification dans prestashop pour avoir le processus suivant : Lorsque l'admin modifie le statut d'un retour produit, il peut également rentrer un commentaire. Ce commentaire s'affichera dans la page du client, lorsqu'il visualise le retour produit. J'ai un souci de compréhension du fonctionnement de prestashop, et à la limite si quelqu'un avait l'opportunité de m'expliquer comment ça marche, je pourrais comprendre la philosophie, ça m'aiderait grandement. Pour le moment, j'ai compris (ou je crois que j'ai compris) : - Dans tabs/AdminReturn.php, dans la fonction displayForm vers la ligne 197, j'ai rajouté : // RAJOUT COMMENTAIRE ADMIN echo ' <label>Commentaire :</label> <div class="margin-form"> <textarea name="comment_admin_return" cols="70" rows="5"></textarea> </div>'; // FIN RAJOUT COMMENTAIRE ADMIN ça marche il apparait dans l'onglet correspondant.... - Toujours dans tabs/AdminReturn.php, dans la fonction postProcess vers la ligne 97, j'ai rajouté : // RAJOUT $orderReturn->comment = Tools::getValue('comment_admin_return'); // FIN RAJOUT en dessous de : $orderReturn->state = (int)(Tools::getValue('state')); Pour cette partie je n'en suis vraiment pas sûr, mais ça me semble naturel de rajouter une récupération de mon nouveau champ. Puis juste en dessous, il y a cette fonction : if ($orderReturn->save()) Donc là j'imagine qu'on fait appel à la fonction save() de ObjectModel.php, laquelle fait appel à la fonction update ou add (update là en l'occurrence.) - Dans ma table j'ai créé un champ 'comment' dans la table order_return Que faut-il faire de plus ? ou de différent ? Merci à qui voudra bien me répondre.... Link to comment Share on other sites More sharing options...
IchabOd Posted November 29, 2011 Author Share Posted November 29, 2011 Bon pour le moment j'ai réussi à insérer le commentaire en base depuis l'onglet admin. Maintenant je cherche à l'afficher dans la page return-order.tpl. Et c'est pas gagné.... Une piste pour m'aider ? merci Link to comment Share on other sites More sharing options...
IchabOd Posted November 30, 2011 Author Share Posted November 30, 2011 Un p'tit up car j'ai trouvé et ça peut aider quelqu'un : 1- J'ai dans la table 'ps_order_return' un champ 'comment'. 2- Dans OrderReturnController.php, c'est la fonction preProcess() qui fait appel aux modèles, donc aux données, en instanciant un objet $orderRet : $orderRet = new OrderReturn((int)($_GET['id_order_return'])); 3- Dans OrderReturn.php, j'ai donc déclaré une variable public : public $comment; puis dans getFields() j'ai protégé le string : $fields['comment'] = pSQL($this->comment); puis dans getOrdersReturn, la requête de sélection prend tout ce qu'il y a dans la table '._DB_PREFIX_.'order_return, et lorsque le tableau $data est parcouru, j'ai affecté à la ligne $k une colonne 'comment' dans laquelle je place ce que la requête a trouvé dans le champ 'comment' : foreach ($data AS $k => $or) { $state = new OrderReturnState($or['state']); $data[$k]['state_name'] = $state->name[$cookie->id_lang]; $data[$k]['comment'] = $or['comment']; // RAJOUT 30-11-2011 } - dans OrderReturnController.php, j'ai affecté une variable 'comment' dans l'array qui est envoyé à Smarty : self::$smarty->assign(array( 'orderRet' => $orderRet, 'order' => $order, 'comment' => $comment, //RAJOUT 30-11-2011 'state_name' => $state->name[(int)(self::$cookie->id_lang)], 'return_allowed' => false, 'products' => OrderReturn::getOrdersReturnProducts((int)($orderRet->id), $order), 'returnedCustomizations' => OrderReturn::getReturnedCustomizedProducts((int)($orderRet->id_order)), 'customizedDatas' => Product::getAllCustomizedDatas((int)($order->id_cart)) )); - et enfin dans order-return.tpl, j'ai mis la variable 'comment' : {$orderRet->comment} voilà a+ 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