El controlador del módulo redirige a 404 PrestaShop
-
21-12-2019 - |
Pregunta
Tengo un problema con mi PrestaShop, me gustaría crear una página web en un módulo sin usar el CMS.
Pero cuando quiero acceder al controlador usando esta URL: http://example.com/ Comparateur / Módulo / ProduitsMarchand / ProductList
Tengo ese mensaje y cuando hago clic en el enlace, tengo un error 404
[Debug] This page has moved
Please use the following URL instead: http://example.com/comparateur/index.php?controller=ProductList&module=ProduitsMarchand
Mi controlador se ve así
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");
}
}
Preferencias> SEO y URLS
Page: produitsmarchands - productlist
URL: product-list
Solución
Tienes algunos errores fundamentales.
En primer lugar, debe estar usando FrontController, sino más bien modulefrontController.Ya que está extendiendo un módulo, no un nuevo controlador completamente separado.
Lo siguiente es que tu clase está mal.Debe ser algo similar a esto.
YourModulenameYourControllernAmodulefrontController
yourmodulename= nombre de su módulo
YourControllerName= Nombre de su controlador y debe estar ubicado en YourModule / Controlers / Front
y por último, pero no menos importante, esto está completamente equivocado
$this->setTemplate(__FILE__.'/../../../views/templates/front/ProductList.tpl');
Debes usar este
$this->setTemplate('ProductList.tpl');
De esa manera, su archivo se ubicará en YourModule / Views / Plantillas / Front
Y si ha seguido todas esas directrices, debe poder establecer una URL amigable para su ModuelController en las preferencias -> SEO y URL
br's