Lion-Soul Posted November 8, 2012 Share Posted November 8, 2012 (edited) Bonjour je travaille actuellement sur une partie login avec de l'ajax Je sait que de base authentification passe par le fichier AuthController.php cepandant les fonctions qui sont dedant ne me convienne pas complétement. Mon ami qui est plutôt bon en php me dit d'override la fonction Comment je peut faire? http://doc.prestasho...fault+behaviors edit j'ai teste cette manipulation : /override/controllers/front/ProductController.php /modules/my_module/override/controllers/front/ProductController.php avec AuthController.php Mais rien n'y fait doit-je reinstaller le module? edit j'ai déjà poste sur un autre forum dans Adapter Prestashop>Devloppement mais dans le doute d'etre au bon endroit je poste ici Edited November 8, 2012 by Lion-Soul (see edit history) Link to comment Share on other sites More sharing options...
Ninja Of Web Posted November 8, 2012 Share Posted November 8, 2012 Oui après chaque modification dans ton module concernant cette override, tu doit réinstaller ton module pour que les modification soit prise en compte. Car pendant l’installation du module, il fait un merge de ce que tu as dans le répertoire override de ton module pour le mettre dans le répertoire override à la racine. Loïc. Link to comment Share on other sites More sharing options...
Lion-Soul Posted November 8, 2012 Author Share Posted November 8, 2012 (edited) Merci de ta réponse mais malheureusement pour moi je n'ai toujours pas de résultat je te poste ma fonction overide <?php class AuthController extends AuthControllerCore { protected function processSubmitLogin() { Hook::exec('actionBeforeAuthentication'); $passwd = trim(Tools::getValue('passwd')); $email = trim(Tools::getValue('email')); if (empty($email)) $this->errors[] = Tools::displayError('E-mail address required'); elseif (!Validate::isEmail($email)) $this->errors[] = Tools::displayError('Invalid e-mail address'); elseif (empty($passwd)) $this->errors[] = Tools::displayError('Password is required'); elseif (!Validate::isPasswd($passwd)) $this->errors[] = Tools::displayError('Invalid password'); else { $customer = new Customer(); $authentication = $customer->getByEmail(trim($email), trim($passwd)); if (!$authentication || !$customer->id) { // Handle brute force attacks sleep(1); $this->errors[] = Tools::displayError('Authentication failed'); } else { $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare: CompareProduct::getIdCompareByIdCustomer($customer->id); $this->context->cookie->id_customer = (int)($customer->id); $this->context->cookie->customer_lastname = $customer->lastname; $this->context->cookie->customer_firstname = $customer->firstname; $this->context->cookie->logged = 1; $customer->logged = 1; $this->context->cookie->is_guest = $customer->isGuest(); $this->context->cookie->passwd = $customer->passwd; $this->context->cookie->email = $customer->email; // Add customer to the context $this->context->customer = $customer; if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0)) $this->context->cookie->id_cart = (int)Cart::lastNoneOrderedCart($this->context->customer->id); // Update cart address $this->context->cart->id = $this->context->cookie->id_cart; $this->context->cart->setDeliveryOption(null); $this->context->cart->id_address_delivery = Address::getFirstCustomerAddressId((int)($customer->id)); $this->context->cart->id_address_invoice = Address::getFirstCustomerAddressId((int)($customer->id)); $this->context->cart->secure_key = $customer->secure_key; $this->context->cart->update(); $this->context->cart->autosetProductAddress(); Hook::exec('actionAuthentication'); // Login information have changed, so we check if the cart rules still apply CartRule::autoRemoveFromCart($this->context); CartRule::autoAddToCart($this->context); if (!$this->ajax) { if ($back = Tools::getValue('back')) Tools::redirect(html_entity_decode($back)); Tools::redirect('index.php?controller=my-account'); } } } if ($this->ajax) { $return = array( 'hasError' => !empty($this->errors), 'errors' => $this->errors, 'token' => Tools::getToken(false), 'lastname'=>$customer->lastname, 'firstname'=>$customer->firstname ); die(Tools::jsonEncode($return)); } else $this->context->smarty->assign('authentification_error', $this->errors); } } Tout ça posé dans le chemin /modules/mon_module/override/controllers/front/ Ca serai le premier overide que je ferai je galere un peu y a t'il une erreure Edited November 8, 2012 by Lion-Soul (see edit history) Link to comment Share on other sites More sharing options...
Lion-Soul Posted November 8, 2012 Author Share Posted November 8, 2012 J'ai fini par trouve jsuis a 15.0.17 http://www.prestashop.com/forums/topic/188701-resolu-override-des-classes-ne-fonctionne-pas-sur-la-15017/ et voila la solution j'avai tout fait bien T_T 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