Controller del modulo Reindirizza a 404 PrestaShop
-
21-12-2019 - |
Domanda
Ho un problema con il mio prestashop, vorrei creare una pagina web in un modulo senza utilizzare il CMS.
Ma quando voglio accedere al controller utilizzando questo URL: http://example.com/ Confrontator / Module / ProduitsMarchand / ProductList
Ho quel messaggio e quando clicco sul link, ho un errore 404
[Debug] This page has moved
Please use the following URL instead: http://example.com/comparateur/index.php?controller=ProductList&module=ProduitsMarchand
.
Il mio controller è simile a questo
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");
}
}
.
Preferenze> SEO & URL
Page: produitsmarchands - productlist
URL: product-list
. Soluzione
Hai alcuni errori fondamentali.
Prima di tutto non dovresti usare FrontController ma piuttosto ModuleFrontController.Dal momento che si estende un modulo non è un nuovo controller completamente seporato.
La prossima cosa è che la tua classe è sbagliata.Dovrebbe essere qualcosa di simile a questo.
yourmodulenameyourcontrollnamemodulefrontcontroller
YourModuleName= Nome del tuo modulo
YourControLLERNAME= Nome del tuo controller e deve essere posizionato in YourModule / Controller / Front
e ultimo ma non meno importante questo è completamente sbagliato
$this->setTemplate(__FILE__.'/../../../views/templates/front/ProductList.tpl');
.
Dovresti usare questo
$this->setTemplate('ProductList.tpl');
.
In questo modo il tuo file sarà posizionato in yourmodule / viste / modelli / anteriore
E se hai seguito tutte quelle linee guida dovresti essere in grado di impostare un URL amichevole per il tuo moduelcontroller in preferenze -> SEO & URL
BR