Luc Lérot Freelance Posted April 30, 2013 Share Posted April 30, 2013 Bonjour, Je pense que je pige plus le système d'override de PShop à partir de la version 1.5.4.0. J'ai potassé la doc mais j'ai rien trouvé. J'en appelle donc aux dev. En de 1.4.9 à 1.5.3 quand j'écrivais ca dans un override d'admintab à moi, ca fonctionnait : class AdminProductsController extends AdminProductsControllerCore { Petite note, effectivement en 1.4, il fallait que je "triche" en ajoutant ca (mais c'est hors-propos, c'est juste pour éviter des commentaires genre "ah non ca pouvait pas marche en 1.4 parce que ..." : include_once (PS_ADMIN_DIR.'/tabs/AdminProducts.php'); eval("class AdminProductsControllerCore extends AdminProducts {}"); Avec ce code, je pouvais tranquillement réécrire/modifier des fonctions natives quand je pouvais pas utiliser de hooks. En 1.5.4, avec et sans la "triche", je prend ca : Fatal error: Class 'AdminProductsControllerCore' not found in /home/work/prestashop-1.5.4.1/override/controllers/admin/AdminProductsController.php on line 8 Même en trichant à nouveau en incluant /controller/admin/AdminProductsController.php à la main ca tourne pas. Très franchement là, je sèche et j'ai pas des masses envies de rentrer dans le code de l'Autoload.php ou le quelconque nouveau système d'override des 1.5.4 (qui diffère ENCORE UNE FOIS des 1.4.9 et des 1.5.3, mais c'est un autre sujet hein...). Est-ce qu'un codeur qui traine dans le coin pourrait m'éclairer un peu ?! Link to comment Share on other sites More sharing options...
Luc Lérot Freelance Posted May 1, 2013 Author Share Posted May 1, 2013 up ! Peut être qu'un des membres de la Dev-Team pourrait faire un reply ?! En MP, via email, un truc quoi ... Link to comment Share on other sites More sharing options...
J. Danse Posted May 1, 2013 Share Posted May 1, 2013 Le fichier override est bien situé dans /override/controllers/admin ? J'essaie de voir petit à petit d'où vient le soucis, là j'avoue que l'erreur me semble bizarre sur le coup. Est-ce que, éventuellement, une suppression du fichier /cache/class_index.php a été supprimé ? Link to comment Share on other sites More sharing options...
Luc Lérot Freelance Posted May 1, 2013 Author Share Posted May 1, 2013 Merci J. Dans pour le retour. Le fichier est bien au bon endroit oui et j'ai déjà tenté de jouer avec le class_index.php (supression, modif à la main...etc) mais le pb reste. En fait, on dirait que PHP s'attend à trouver AdminProductsControllerCore.php dans le répertoire /override/controllers/admin. Ca me semble aussi très bizarre, mais on ne sait jamais, je suis peut être passé à côté de quelque chose Link to comment Share on other sites More sharing options...
J. Danse Posted May 1, 2013 Share Posted May 1, 2013 Personellement, je viens de regarder. Mon fichier est situé dans /override/controllers/admin/ et se nomme AdminProductsController.php Voici un bout de code du début: <?php class AdminProductsController extends AdminProductsControllerCore { Si ça peut t'aider, Link to comment Share on other sites More sharing options...
Luc Lérot Freelance Posted May 1, 2013 Author Share Posted May 1, 2013 sur une 1.5.4.1 (ou 1.5.4.0) ? Link to comment Share on other sites More sharing options...
J. Danse Posted May 1, 2013 Share Posted May 1, 2013 Normalement, ça ne change rien et je n'ai pas encore fait d'install fraiche de la 1.5.4.1 sur le coup. Link to comment Share on other sites More sharing options...
Luc Lérot Freelance Posted May 1, 2013 Author Share Posted May 1, 2013 (edited) Ravi d'entendre que c'est censé ne rien changer (ca me rassure)...si t'as pas fait d'install fraiche de la 1.5.4.1, tu testes en 1.5.4.0 ? (parce qu'en 1.5.3.x il n'y a pas de pb...) Edited May 1, 2013 by Luc Lérot Freelance (see edit history) Link to comment Share on other sites More sharing options...
Luc Lérot Freelance Posted May 1, 2013 Author Share Posted May 1, 2013 Autre question, est-ce que tu as copié le fichier override AdminProductsController.php à la main ou bien est-ce que c'est fait automatiquement à l'install d'un module par exemple en plaçant le fichier dans /nom_module/override/controllers/admin/AdminProductsController.php ? Link to comment Share on other sites More sharing options...
J. Danse Posted May 1, 2013 Share Posted May 1, 2013 Celui-ci, pour lequel je regarde le test, est fait via le module. Et c'est une 1.5.4.0, fonctionnel. Link to comment Share on other sites More sharing options...
Luc Lérot Freelance Posted May 1, 2013 Author Share Posted May 1, 2013 raaaaah damned ! merci pour le retour ;-) Link to comment Share on other sites More sharing options...
J. Danse Posted May 1, 2013 Share Posted May 1, 2013 Avec plaisir ! Au pire, si tu le souhaites, je peux éventuellement t'aider au delà du forum (via le code, par inspection, sait-on jamais). Bon, évidemment, cela nécessite des accès FTPs (que je ne conseille pas de donner en publique, bien entendu), ;-) Link to comment Share on other sites More sharing options...
Luc Lérot Freelance Posted May 1, 2013 Author Share Posted May 1, 2013 (edited) Bon, résolu, mais franchement pas enchanté : Mon fichier cache/class_index.php, après install de mon module, ressemblait à ca : 'AdminProductsController' => '', 'AdminProductsControllerCore' => 'override/controllers/admin/AdminProductsController.php', ce qui me semblait quand même pas mal faux...right ? Alors je l'ai changé à ca : 'AdminProductsController' => 'override/controllers/admin/AdminProductsController.php', 'AdminProductsControllerCore' => 'controllers/admin/AdminProductsController.php', et là ca tourne.....mais le fichier fini par être remis à jour avec les mauvaises références... Faudrait quand même voir à m'expliquer.... Edited May 1, 2013 by Luc Lérot Freelance (see edit history) Link to comment Share on other sites More sharing options...
J. Danse Posted May 1, 2013 Share Posted May 1, 2013 Sur le coup, de fait, c'est bien la structure du fichier qui n'est pas bonne. Cela dit, c'est pour ça aussi que j'avais demandé si il était bien supprimé, voir quoi. Je ne sais pas d'où vient, sinon, n'ayant pas eu ce soucis jusqu'à présent :-/ Link to comment Share on other sites More sharing options...
Luc Lérot Freelance Posted May 1, 2013 Author Share Posted May 1, 2013 (edited) Ben en le supprimant, ca me pète à la gueule (et oui oui les droits sont corrects). En le supprimant, il me le re-créé mauvais. En le modifiant à la main, il fini par me le re-créer quand même avec la mauvaise structure...En 1.5.3, no problem, depuis la 1.5.4 ca bug. Edited May 1, 2013 by Luc Lérot Freelance (see edit history) Link to comment Share on other sites More sharing options...
J. Danse Posted May 1, 2013 Share Posted May 1, 2013 Ici, je le supprime (supprimé, pas vidé on est d'accord ?) et pas ce soucis. Bizarre, bizarre. Sur le coup, je ne sais pas dire. Link to comment Share on other sites More sharing options...
Luc Lérot Freelance Posted May 1, 2013 Author Share Posted May 1, 2013 Ici, je le supprime (supprimé, pas vidé on est d'accord ?) et pas ce soucis. Bizarre, bizarre. Sur le coup, je ne sais pas dire. Ouais ouais on est d'accord, supprimé, pas vidé.... Merci pour le retour 1 Link to comment Share on other sites More sharing options...
Luc Lérot Freelance Posted May 29, 2013 Author Share Posted May 29, 2013 Ok, SOLVED... En fait, le class_index.php est mal généré parce que les lignes 'AdminProductsController' => '', 'AdminProductsControllerCore' => 'override/controllers/admin/AdminProductsController.php', sont générées au travers d'un regexp qui cherche la chaine 'Core' quelque part dans la classe override. Si le Core est trouvé avant le mot clé "extend", la génération considère que la classe d'override devient la classe Core. Et comme pour assurer une retrocompatibilité avec les 1.4, j'ajoutais ces 2 lignes AVANT la déclaration "extend" : include_once (PS_ADMIN_DIR.'/tabs/AdminProducts.php'); eval("class AdminProductsControllerCore extends AdminProducts {}"); le mot clé "Core" est clairement positionné le "extend" ==> CQFD. Link to comment Share on other sites More sharing options...
Luc Lérot Freelance Posted May 29, 2013 Author Share Posted May 29, 2013 Note : je sais pas comment je peux passer le topic en SOLVED. Un des modérateurs pourrait-il...ah nan c'est vrai. Ah ah !! 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