Módulo Controlador redireciona para 404 Prestashop
-
21-12-2019 - |
Pergunta
Eu tenho um problema com meu Prestashop, eu gostaria de criar uma página da web em um módulo sem usar o CMS.
Mas quando eu quiser acessar o controlador usando este Url : http://example.com/comparateur/module/ProduitsMarchand/ProductList
Eu tenho essa mensagem e quando eu clicar no link, eu tenho um erro 404
[Debug] This page has moved
Please use the following URL instead: http://example.com/comparateur/index.php?controller=ProductList&module=ProduitsMarchand
O meu controlador parece com isso
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");
}
}
Preferências > SEO e URLs
Page: produitsmarchands - productlist
URL: product-list
Solução
Você tem alguns erros fundamentais.
Primeiro de tudo você deve nt estar usando FrontController, mas, ao invés de ModuleFrontController.Já que vocês são a extensão de um módulo não totalmente sepearate novo controlador.
A próxima coisa é que a turma está errado.Deve ser algo semelhante a isto.
YourModuleNameYourControllerNamemodulefrontcontroller
YourModuleName = nome do módulo
YourControllername = nome do seu controlador e deve estar localizado na yourmodule//controladores de frente
E por último, mas não menos importante, isso é completamente errado
$this->setTemplate(__FILE__.'/../../../views/templates/front/ProductList.tpl');
Você deve usar este
$this->setTemplate('ProductList.tpl');
Dessa forma, o arquivo será localizado no yourmodule/vista/templates/frente
E se você tiver seguido todas as orientações que você deve ser capaz de definir uma url amigável para a sua moduelController em Preferências -> SEO & URL
BR