allibaba Posted August 8, 2017 Share Posted August 8, 2017 (edited) Bonjour, Depuis la mise à jour de presta de 1.4 à 1.6 j'ai pleins de bug sur mon module devis perso. J'en ai résolu quelques un mais comme je ne code pas à la base ça deviens compliqué... En l’occurrence le problème qui me reste c'est que lors d'une nouvelle demande de devis il n'y a pas d'envoie de mail à l'administrateur. Après être passé en mode debug j'ai les message d'erreur suivants sur le back office: avant d’accéder au module: Strict Standards: Declaration of AdminDevis::getList() should be compatible with AdminTabCore::getList($id_lang, $orderBy = NULL, $orderWay = NULL, $start = 0, $limit = NULL, $id_lang_shop = false) in /modules/devisperso/AdminDevis.php on line 15 et une fois sur la page du module: Notice à la ligne 227 du fichier /modules/devisperso/AdminDevis.php[8] Undefined variable: cookieNotice à la ligne 227 du fichier /modules/devisperso/AdminDevis.php[8] Trying to get property of non-object Je vous mets le code au cas où vous pourriez m'aider. Merci d'avance ! ligne 5 à 95: include_once (PS_ADMIN_DIR . '/../classes/AdminTab.php'); include_once (_PS_MODULE_DIR_.'devisperso/DevisClass.php'); include_once (_PS_MODULE_DIR_.'devisperso/devisperso.php'); class AdminDevis extends AdminTab { private $module = 'devisperso'; /* liste des devis dans l'onglet Devis */ public function __construct() { global $cookie; $devisperso = new Devisperso(); $this->table = 'devis'; $this->className = 'DevisClass'; $this->lang = false; $this->edit = true; $this->delete = true; $this->colorOnBackground = true; $this->_listTotal = Db::getInstance()->getValue('SELECT FOUND_ROWS()'); $this->_select = 'CONCAT(c.`firstname`, \' \', c.`lastname`) as `customer`, s.`statut_desc` as `statut_devis`, s.color '; $this->_join = 'LEFT JOIN `'._DB_PREFIX_.'customer` c ON (c.`id_customer` = a.`id_customer`) LEFT JOIN `'._DB_PREFIX_.'devis_statut` s ON (s.`id_statut` = a.`id_statut` AND s.`id_lang` = '.$cookie->id_lang.' )'; $statusArray = array(); $status = DevisClass::getStatut((int)$cookie->id_lang); foreach ($status AS $stat) $statusArray[$stat['id_statut']] = $stat['statut_desc']; $this->fieldsDisplay = array( 'statut_devis' => array('title' => $devisperso->getL('Status'), 'align' =>'center', 'width' => 90, 'type' => 'select', 'select' => $statusArray, 'filter_key' => 's!id_statut'), 'id_devis' => array('title' => 'ID', 'align' => 'center', 'width' => 30), 'id_customer' => array('title' => $devisperso->getL('ID Customer'), 'align' => 'center', 'width' => 30, 'filter_key' => 'a!id_customer'), 'customer' => array('title' => $devisperso->getL('Customer'), 'left' => 'center', 'width' => 150, 'filter_key' => 'customer', 'tmpTableFilter' => true), 'total_devis' => array('title' => $devisperso->getL('Total'), 'width' => 70, 'align' => 'right', 'prefix' => '<b>', 'suffix' => '</b>', 'price' => true, 'currency' => true), 'date_demande' => array('title' => $devisperso->getL('Request Date'), 'align' => 'right', 'widthColumn' => 110, 'width' => 80, 'type' => 'date', 'filter_key' => 'a!date_demande'), 'date_reponse' => array('title' => $devisperso->getL('Answer Date'), 'align' => 'right', 'widthColumn' => 110, 'width' => 80, 'type' => 'date', 'filter_key' => 'a!date_reponse'), 'date_expiration'=> array('title' => $devisperso->getL('Expiration Date'), 'align' => 'right', 'widthColumn' => 110, 'width' => 80, 'type' => 'date', 'filter_key' => 'a!date_expiration')//, ); ligne 187 à 229 : // + mail client (mail dans la langue du devis) $lang = new Language($dev->id_lang); $customer = new Customer($liste['id_customer']); if (strpos(_PS_VERSION_, '1.4') !== false && strpos(_PS_VERSION_, '1.4.0') === false) $objet = Mail::l('A quote request has expired !'); else $objet = $devisperso->getL('A quote request has expired !'); Mail::Send( $liste['id_lang'], 'devis_expiration', $objet, array('{id_devis}' => $liste['id_devis']), $customer->email, $customer->firstname.' '.$customer->lastname, strval(Configuration::get('PS_SHOP_EMAIL')), strval(Configuration::get('PS_SHOP_NAME')), NULL, NULL, _PS_MODULE_DIR_.'devisperso/mails/'); } } return parent::getList((int)($cookie->id_lang), !Tools::getValue($this->table.'Orderby') ? 'date_demande' : NULL, !Tools::getValue($this->table.'Orderway') ? 'DESC' : NULL); } Edited August 10, 2017 by allibaba (see edit history) Link to comment Share on other sites More sharing options...
allibaba Posted August 9, 2017 Author Share Posted August 9, 2017 Alors, d'après mes recherches, pour la ligne 227 il faudrait que j'applique "context" à cette partie du code ... mais je ne sais pas faire :-( return parent::getList((int)($cookie->id_lang), !Tools::getValue($this->table.'Orderby') ? 'date_demande' : NULL, !Tools::getValue($this->table.'Orderway') ? 'DESC' : NULL); Si quelqu'un peut m'aider? Merci d'avance! Link to comment Share on other sites More sharing options...
Matt K. Posted August 9, 2017 Share Posted August 9, 2017 Bonjour, Essaye de remplacer '$cookie->id_lang' par '$this->context->cookie->id_lang'. Bon courage ! 1 Link to comment Share on other sites More sharing options...
allibaba Posted August 10, 2017 Author Share Posted August 10, 2017 Bonjour, Merci beaucoup le code à résolu les 2 problèmes de la ligne 227! Merci encore Link to comment Share on other sites More sharing options...
allibaba Posted August 10, 2017 Author Share Posted August 10, 2017 Maintenant il me reste le problème de la ligne 15. Strict Standards: Declaration of AdminDevis::getList() should be compatible with AdminTabCore::getList($id_lang, $orderBy = NULL, $orderWay = NULL, $start = 0, $limit = NULL, $id_lang_shop = false) in /modules/devisperso/AdminDevis.php on line 15 J'ai trouvé un début de réponse sur ces posts: https://stackoverflow.com/questions/17234259/strict-standards-declaration-of-should-be-compatible-with et https://stackoverflow.com/questions/3115388/declaration-of-methods-should-be-compatible-with-parent-methods-in-php/9243127#9243127 mais idem, malgré plusieurs tentatives je n'ai pas réussi à corriger l'erreur. Je vais continuer à tester mais je prends tous vos conseils! Merci d'avance Link to comment Share on other sites More sharing options...
Matt K. Posted August 10, 2017 Share Posted August 10, 2017 Bonjour, Pour moi c'est le même problème. Mais dans ce cas je ne sais pas d'où sort $id_lang. Tu peux montrer le code de la fonction ? Merci ! Link to comment Share on other sites More sharing options...
allibaba Posted August 10, 2017 Author Share Posted August 10, 2017 Re, J'ai pu corriger l'erreur en modifiant la fonction getList (je ne sais pas pourquoi je ne l'ai pas vu plus tôt) avant public function getList($id_lang=null, $orderBy = NULL, $orderWay = NULL, $start = 0, $limit = NULL) après public function getList($id_lang=null /*this one can be optional */, $orderBy = NULL, $orderWay = NULL, $start = 0, $limit = NULL, $id_lang_shop = false) ... mais le plus drôle c'est que l'envoi de mail administrateur ne fonctionne toujours pas! 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