Jump to content

[RESOLU] 1.3.2 Impossible d'acceder à l'onglet de paiement => vide, Bug replicable?


Recommended Posts

Je n'arrive pas à acceder à l'onglet de paiement.

J'ai 4 modules de paiement installés tgg_atos, bankswire, check, paypal api. Seul tgg_atos en module exterieure.

Je suis passé sou 1.3.2 sous peu. Je n'arrive pas à dire si c'est lié ou pas.

Sinon le probleme semble lié à l'affichage des pays, qui fait écran blanc (aucun retour)

Pour faire revenir la page à la normale, il m'a suffit de s"activer la partie PAYS

//$this->displayModuleRestrictions($countries, $this->l('Countries restrictions'), 'country', $textCountries, 'world');



J'ai essayé de debugguer le probleme mais je ne vois pas exactement ou ca coince.

Des idées?

Share this post


Link to post
Share on other sites

réponse à ma question

apres avoir planché dessus, je me suis apercu que pour le cheque et pour le virement, tous les pays étaient cochés (ou du moins comme tel dans la BD).

j'ai donc supprimé les pays liées aux modules de paiement en trop et tout est revenu à la normale. Il semble qu'il y a un probleme de performance ici.

Le code SQL à lancer

DELETE FROM `ps_module_country` WHERE id_module = 'numerodumodule'

Bref pour tester et voir si le bug est présent chez vous:

cochez l'ensemble des pays pour 1,2,3,4 modes de paiement et voyez le résultat.

Share this post


Link to post
Share on other sites

probleme de performance à nouveau. Meme si j'ai une table avec peu d'éléments. le probleme est réapparu apres quelques temps (sans explication).

la classe utilise un code qui fait que chaque module de paiement est parcouru pour chaque instruction de vérification.

l'astuce consiste donc à OPTIMISER le code:

Voici le code:


class AdminPayment extends AdminTab
{
   public $paymentModules = array();
   public $paymentModulesActive = array();

   public function __construct()
   {
       /* Get all modules then select only payment ones*/
       $modules = Module::getModulesOnDisk();
       foreach ($modules AS $module)        
           if ($module->tab == 'Payment')
           {

               if ($module->active)
                   $this->paymentModulesActive[] = $module;        

...




et de remplacer les codes dans la fonction public function displayModuleRestrictions

foreach ($this->paymentModules as $module)

par
foreach ($this->paymentModulesActive as $module)



où la vérification sur module->active est faite (uniquement).

Share this post


Link to post
Share on other sites

bon apres tout cela, il semble que ce probleme se représente avec d'autres modules

je viens de trouver le probleme, il s'agit d'un probleme de mémoire

j'ai placé dans l'index ceci:

ini_set('memory_limit','64M');



en début de fichier dans l'admin.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More