Florent Posted August 6, 2015 Share Posted August 6, 2015 Bonjour,J'essaie de dupliquer le champ " Ajoutez une note privée" dans le back office. Pour avoir un champ "Réservation".Mon problème est que les infos rentrées dans le champ créé ne sont pas enregistrées dans la base de données.J'ai créé une variable "reservation" dans ma base de données, au niveau de la table ps_customer, avec des paramètres identiques à la variable "note".J'ai ensuite modifié le fichier controllers/admin/AdminCustomersController.php en ajoutant : // Add a Reservation 'customer_reservation' => Tools::htmlentitiesUTF8($customer->reservation), Et public function ajaxProcessUpdateCustomerReservation() { if ($this->tabAccess['edit'] === '1') { $reservation = Tools::htmlentitiesDecodeUTF8(Tools::getValue('reservation')); $customer = new Customer((int)Tools::getValue('id_customer')); if (!Validate::isLoadedObject($customer)) die ('error:update'); if (!empty($reservation) && !Validate::isCleanHtml($reservation)) die ('error:validation'); $customer->reservation = $reservation; if (!$customer->update()) die ('error:update'); die('ok'); } } J'ai aussi modifié le fichier js/admin.js en ajoutant : function saveCustomerReservation(customerId){ var reservationContent = $('#reservationContent').val(); var data = 'token=' + token_admin_customers + '&tab=AdminCustomers&ajax=1&action=updateCustomerReservation&id_customer=' + customerId + '&reservation=' + encodeURIComponent(reservationContent); $.ajax({ type: "POST", url: "index.php", data: data, async : true, success: function(r) { if (r == 'ok') { $('#submitCustomerReservation').attr('disabled', true); } showSuccessMessage(update_success_msg); } }); } Et enfin, j'ai modifié le fichier view.tpl pour afficher le champ en back office en ajoutant : <div class="panel"> <div class="panel-heading"> <i class="icon-file"></i> {l s='Add a Reservation'} </div> <form id="customer_reservation" class="form-horizontal" action="ajax.php" method="post" onsubmit="saveCustomerReservation({$customer->id|intval});return false;" > <div class="form-group"> <div class="col-lg-12"> <textarea name="reservation" id="reservationContent" onkeyup="$('#submitCustomerReservation').removeAttr('disabled');">{$customer_reservation}</textarea> </div> </div> <div class="row"> <div class="col-lg-12"> <button type="submit" id="submitCustomerReservation" class="btn btn-default pull-right" disabled="disabled"> <i class="icon-save"></i> {l s='Save'} </button> </div> </div> <span id="note_feedback"></span> </form> </div> Si quelqu'un a une idée, je suis preneur...Merci Link to comment Share on other sites More sharing options...
herve25 Posted August 7, 2015 Share Posted August 7, 2015 Bonjour, Est-ce que tu as bien surchargé ta classe Customer également ?Sinon ton code $customer->reservation = $reservation; Ne correspond à rien. Link to comment Share on other sites More sharing options...
Florent Posted August 7, 2015 Author Share Posted August 7, 2015 (edited) Bonjour, Merci pour ta réponse. Alors, je ne suis pas expert, je fais les choses par déduction en recherchant dans le code. Donc, non, je n'ai pas surchargé la classe Customer. Tu fais ça comment et où ? C'est bon j'ai trouvé ! :-) J'ai copié le fichier classes/Customer.php dans override/classes, et j'ai ajouté les infos sur la variable "reservation". Merci beaucoup pour ton aide. Par contre, j'aimerais me servir de cette variable sur la Page Produit. Mais, je ne sais pas comment "appeler" les infos relatives à Customer. Edited August 7, 2015 by Florent (see edit history) 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