Klemart3D Posted April 16, 2015 Share Posted April 16, 2015 (edited) Bonjour à tous, D'après la documentation officielle, pour la maintenance : Si vous souhaitez ajouter plus d'une adresse IP, séparez-les par des virgules ",". Seulement, pour tester un module de paiement, mon prestataire bancaire (qui justifie que la requête vers mon site ne se fait jamais deux fois avec la même IP et que celle-ci est aléatoire), ne peut me fournir qu'un intervalle d'adresses IP, compris entre : XXX.XXX.0.0 et XXX.XXX.255.255. D'après la méthode décrite dans la doc, il me faudrait donc insérer plusieurs milliers d'adresses IP (séparés par des virgules) pour espérer tomber sur celle qui viendra requêter mon site. Une méthode spécifique existe-t-elle pour spécifier un interval/une plage d'adresses IP ? Merci pour toute réponse. PrestaShop™ 1.6.0.13 - Multi-boutique Edited April 16, 2015 by Klemart3D (see edit history) Link to comment Share on other sites More sharing options...
Olecorre Posted April 16, 2015 Share Posted April 16, 2015 Bonsoir, Il faut modifier la méthode displayMaintenancePage qui est dans FrontController (en passant par un override) et j'y mettrais un code La méthode verifplage, je l'ai recup sur internet pas essayé et dans displayMaintenancePage j'ajout un test en place. protected function verifPlageIP($IP,$PlageIP) { $result=TRUE; $tabIP=explode(".",$IP); if(is_array($PlageIP)) { foreach($PlageIP as $valeur) { $tabPlageIP[]=explode(".",$valeur); } for($i=0;$i<4;$i++) { if(($tabIP[$i]<$tabPlageIP[0][$i]) || ($tabIP[$i]>$tabPlageIP[1][$i])) { $result=FALSE; } } } else { $tabPlageIP=explode(".",$PlageIP); for($i=0;$i<4;$i++) { if(($tabIP[$i]!=$tabPlageIP[$i])) { $result=FALSE; } } } return ($result); } /* Display a maintenance page if shop is closed */ protected function displayMaintenancePage() { if ($this->maintenance == true || !(int)Configuration::get('PS_SHOP_ENABLE')) { $this->maintenance = true; $plageIP=array("deb"=>"127.0.0.0","fin"=>"127.254.254.254"); if (!in_array(Tools::getRemoteAddr(), explode(',', Configuration::get('PS_MAINTENANCE_IP'))) && !$this->verifPlageIP(Tools::getRemoteAddr(),$plageIP)) { header('HTTP/1.1 503 temporarily overloaded'); $this->context->smarty->assign($this->initLogoAndFavicon()); $this->context->smarty->assign(array( 'HOOK_MAINTENANCE' => Hook::exec('displayMaintenance', array()), )); // If the controller is a module, then getTemplatePath will try to find the template in the modules, so we need to instanciate a real frontcontroller $front_controller = preg_match('/ModuleFrontController$/', get_class($this)) ? new FrontController() : $this; $this->smartyOutputContent($front_controller->getTemplatePath($this->getThemeDir().'maintenance.tpl')); exit; } } } Voila une piste, sinon le plus simple tu active la boutique le temps de faire les tests de paiement. si elle est pas ouverte peu de chance qu'il y a un acheteur qui se pointe le temps de tests. Cdt 1 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