lbazerque Posted November 7, 2012 Share Posted November 7, 2012 (edited) Bonjour à tous, Je teste actuellement la version 1.5.2 de prestashop en local. J'avoue avoir un peu de mal à retrouver tous mes petits, mais comme l'on dit, le changement est bon pour l'esprit ... ^^ Voilà donc mon problème, sur la version 1.4.7, j'avais créé un override pour la class FrontController me permettant d'aller chercher les fichiers divers et varié de Jquery en extérieur, du genre : <?php /* * charge jquery sur le site de google * */ class FrontController extends FrontControllerCore { public function setMedia() { parent::setMedia(); global $css_files; global $js_files; /* * autres css to host jQuery */ Tools::addCSS(_PS_JS_DIR_.'jquery/plugins/fancybox.2.1.3/jquery.fancybox.css?v=2.1.3','all'); Tools::addCSS(_PS_JS_DIR_.'jquery/plugins/fancybox.2.1.3/jquery.fancybox-buttons.css?v=2.1.3','all'); Tools::addCSS(_PS_JS_DIR_.'jquery/plugins/fancybox.2.1.3/jquery.fancybox-thumbs.css?v=2.1.3','all'); Tools::addCSS(_PS_JS_DIR_.'jquery/plugins/jgrowl.1.2.6/jquery.jgrowl.css','all'); /* * Use Google Libraries API to host jQuery */ $index = array_search(_PS_JS_DIR_ . 'jquery/jquery-1.7.2.min.js', $js_files); if ($index !== false){ array_splice($js_files, $index, 1, array('https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js')); } else { $js_files[] = 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js'; } $index = array_search(_PS_JS_DIR_ . 'jquery/jquery-ui-1.8.10.custom.min.js', $js_files); if ($index !== false){ array_splice($js_files, $index, 1, array('https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js')); } else { $js_files[] = 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js'; } $js_files[] = 'http://un_autre_serveur_externe/fancybox/lib/jquery.mousewheel-3.0.6.pack.js'; $js_files[] = 'http://un_autre_serveur_externe/fancybox/source/jquery.fancybox.js?v=2.1.3'; $js_files[] = 'http://un_autre_serveur_externe/fancybox/source/jquery.fancybox-buttons.js?v=2.1.3'; $js_files[] = 'http://un_autre_serveur_externe/fancybox/source/jquery.fancybox-thumbs.js?v=2.1.3'; $js_files[] = 'http://un_autre_serveur_externe/fancybox/source/jquery.fancybox-media.js?v=1.0.0'; $index = array_search(_PS_JS_DIR_ . 'jquery/plugins/jquery.easing.js', $js_files); if ($index !== false){ array_splice($js_files, $index, 1, array('http://un_autre_serveur_externe/jquery.easing.1.3/jquery.easing.1.3.js')); } else { $js_files[] = 'http://un_autre_serveur_externe/jquery.easing.1.3/jquery.easing.1.3.js'; } $index = array_search(_PS_JS_DIR_ . 'jquery/plugins/jquery.autocomplete.js', $js_files); if ($index !== false){ array_splice($js_files, $index, 1, array('http://un_autre_serveur_externe/autocomplete.1.0.2/jquery.autocomplete.js')); } else { $js_files[] = 'http://un_autre_serveur_externe/autocomplete.1.0.2/jquery.autocomplete.js'; } $index = array_search(_PS_JS_DIR_ . 'jquery/plugins/jquery.serialScroll-1.2.2-min.js', $js_files); if ($index !== false){ array_splice($js_files, $index, 1, array('http://un_autre_serveur_externe/jquery.serialscroll.1.2.2.min/jquery.serialScroll-1.2.2-min.js')); } else { $js_files[] = 'http://un_autre_serveur_externe/jquery.serialscroll.1.2.2.min/jquery.serialScroll-1.2.2-min.js'; } $index = array_search(_PS_JS_DIR_ . 'jquery/plugins/jquery.scrollTo-1.4.3.1-min.js', $js_files); if ($index !== false){ array_splice($js_files, $index, 1, array('http://un_autre_serveur_externe/jquery.scrollto.1.4.3.1.min/jquery.scrollTo-1.4.3.1-min.js')); } else { $js_files[] = 'http://un_autre_serveur_externe/jquery.scrollto.1.4.3.1.min/jquery.scrollTo-1.4.3.1-min.js'; } $js_files[] = 'http://un_autre_serveur_externe/jgrowl.1.2.6/jquery.jgrowl.js?v=1.2.6'; } } ?> tout fonctionne très bien par ailleurs sur ma boutique prestashop 1.4.7 Aujourd'hui, en testant la bouture 1.5.2 je me suis dit, bein si je copie mon fichier FrontController.php dans override/classes/controller logiquement, ça devrait marcher ... Grosse erreur de ma part, Un changement profond ayant été effectué, je sens que ça va me reprendre la tête durant des heures. ma question est donc, comment parvenir à une solution identique d'appel de mes librairies JQUERY en extérieur sous la version 1.5.2 Merci pour vos réponse laurent Edited November 7, 2012 by lbazerque (see edit history) Link to comment Share on other sites More sharing options...
Prestaspirit Posted November 7, 2012 Share Posted November 7, 2012 Bonjour, A priori il n'y a pas de souci à utiliser l'override du frontController, j'imagine que vous avez bien pris le fichier dans override/classes/controller/FrontController.php Je vous déconseille d'utiliser votre code en l'état, vous ajoutez de nouveau script sans supprimer ceux qui sont déjà chargé par prestashop, il vaut mieux supprimer et remplacer proprement les script déjà présent si vous voulez mettre à jours vos scripts Exemple pour jQuery <?php class FrontController extends FrontControllerCore { public function setMedia() { parent::setMedia(); $jquery = array_search(_PS_JS_DIR_ . 'jquery/jquery-1.7.2.min.js', $this->js_files); if ($jquery !== false) array_splice($this->js_files, $jquery, 1, 'https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js'); } } Cordialement Franck Link to comment Share on other sites More sharing options...
lbazerque Posted November 7, 2012 Author Share Posted November 7, 2012 Merci Franck je regarde de suite ton code pour évoluer du côté de la 1.4.7 même si j'avoue que tant que ça fonctionne, je vais éviter d'y toucher ... ^^ Je présume que votre script est valable pour la 1.5.2, donc je vais tester dessus, pour voir sur ma prochaine mise à jour de site .... 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