Jump to content

[Résolu] Surcharge Controlleur non prise en compte


Recommended Posts

Salut les gars,

 

je fais quelques tests avec Prestashop, et j'ai une grande question bien bête...

 

Je commence à désactiver dans l'onglet perfs tout ce qui concerne le cache

J'ai créé une surcharge d'un contrôleur Back : AdminCategoriesController.

Cette surcharge se trouve dans override/controllers/admin/AdminCategoriesController.php

La classe en surcharge est commencée de la sorte :

class AdminCategoriesController extends AdminCategoriesControllerCore

Je vérifie le fichier généré class_index.php et j'ai bien dedans

  'AdminCategoriesController' => 
  array (
    'path' => 'override/controllers/admin/AdminCategoriesController.php',
    'type' => 'class',
    'override' => false,
  ),
  'AdminCategoriesControllerCore' => 
  array (
    'path' => 'controllers/admin/AdminCategoriesController.php',
    'type' => 'class',
    'override' => false,
  ),

J'enlève deux classes du fichier de surcharge : initContent et RenderList qui font appel au parent.

 

Je ne change rien d'autre et il s'agit d'un prestashop d'origine avec juste le module "blocklayered" d'ajouté.

 

J'obtiens un listing de catégories qui ne fonctionne plus ("--" à la place des différents libellés dans le listing en back).

 

J'ai du louper une étape ou mal faire quelque chose mais si vous avez une piste, je prends parce que je tourne en rond là...

 

Dans les logs PHP, j'ai juste cette erreur qui ne vient pas de la surcharge...

 

[01-Aug-2016 18:38:32 Europe/Paris] PHP Notice:  Undefined index: id_category in C:\wamp\www\prestashop\cache\smarty\compile\e6\3b\70\e63b70d55709a48434d98e636e906373683d1400.file.list_content.tpl.php on line 74

 

 

Je précise à toute fin utile que j'ai fait tout le process 2 fois et que si j'enlève mon override, tout refonctionne et l'erreur PHP ci-dessus n'arrive plus.

 

Je vous joins mon fichier d'override... (dernière version de prestashop)

Il n'y a vraiment rien d'ajouté, c'était juste l'override de base... 

 
J'espérais qu'en écrivant tout ça je trouverais mon erreur mais non... alors j'ai bien besoin de votre aide ! 
 
MERCI !

post-270055-0-53628600-1470069844_thumb.png

AdminCategoriesController.php

Edited by roms (see edit history)
Link to comment
Share on other sites

Okay j'ai trouvé. Finalement, la méthode du canard en plastique marche bien toujours :-)

 

Je ne sais pas ce qui causait ce problème mais sûrement une double définition du coup.

 

Le problème : ma surcharge fait appel à parent:: à la fin de la méthode. Le parent:: redéfinit ou surdéfinit un certain nombre de choses.

Du coup je n'ai pris que les méthodes qui m'intéressaient (normalement, c'est ce qu'on fait   :rolleyes: ), et au lieu de faire appel à parent:: j'ai fait appel à AdminController::  pour éviter de passer par la classe d'origine et de surdéfinir des choses..

 

Et ça a l'air de bien se passer donc tant mieux ?!

 

Je ne sais pas si on est vraiment censés faire comme ça, donc je veux bien votre avis..

Link to comment
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...