Le contrôleur de module redirige vers 404 PrestaShop
-
21-12-2019 - |
Question
J'ai un problème avec mon PrestaShop, je voudrais créer une page Web dans un module sans utiliser le CMS.
Mais lorsque je veux accéder au contrôleur en utilisant cette URL: http://example.com.com/ Comparatif / Module / ProduitsMarchrand / ProductList
J'ai ce message et quand je clique sur le lien, j'ai une erreur 404
[Debug] This page has moved
Please use the following URL instead: http://example.com/comparateur/index.php?controller=ProductList&module=ProduitsMarchand
Mon contrôleur ressemble à ceci
class ProduitsMarchandProductListModuleFrontController extends ModuleFrontController {
public $php_self ="ProductList";
/**
* Initialize controller
* @see FrontController::init()
*/
public function init() {
parent::init();
}
/**
* Assign template vars related to page content
* @see FrontController::initContent()
*/
public function initContent() {
parent::initContent();
$this->setTemplate("ProductList.tpl");
}
}
Préférences> SEO & URL
Page: produitsmarchands - productlist
URL: product-list
La solution
Vous avez quelques erreurs fondamentales.
Tout d'abord, vous devriez utiliser FrontController, mais plutôt MotuleFrontController.Puisque vous extension un module n'est pas un nouveau contrôleur entièrement séparé.
La prochaine chose est que votre classe est fausse.Cela devrait être quelque chose de similaire à celui-ci.
YourmodulenameyourControlernAmoDuleFrontController
Yourmodulename= nom de votre module
YourControlName= nom de votre contrôleur et doit être situé dans YourModule / contrôleurs / avant
et dernier mais non le moindre c'est complètement faux
$this->setTemplate(__FILE__.'/../../../views/templates/front/ProductList.tpl');
Vous devez utiliser cette
$this->setTemplate('ProductList.tpl');
De cette façon, votre fichier sera situé dans YourModule / Vues / Modèles / Avant
Et si vous avez suivi toutes ces directives, vous devriez pouvoir définir une URL amicale pour votre modelController dans Préférences -> SEO & URL
br's