我的Prestashop有问题,我想在不使用CMS的情况下在模块中创建网页。
但是当我想使用此Url访问控制器时:http://example.com/comparateur/module/ProduitsMarchand/ProductList
我有这个消息&当我点击链接时,我有一个404错误
[Debug] This page has moved
Please use the following URL instead: http://example.com/comparateur/index.php?controller=ProductList&module=ProduitsMarchand
我的控制器看起来像这样
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");
}
}
偏好设置> SEO&网址
Page: produitsmarchands - productlist
URL: product-list
答案 0 :(得分:5)
你有一些基本的错误。
首先,您不应该使用FrontController而是使用ModuleFrontController。因为您正在扩展模块而不是完全独立的新控制器。
接下来就是你的班级错了。它应该与此类似。
YourModuleNameYourControllerNameModuleFrontcontroller
YourModuleName =您模块的名称
YourControllername =控制器的名称,应位于yourmodule / controllers / front
中最后但并非最不重要的是,这是完全错误的
$this->setTemplate(__FILE__.'/../../../views/templates/front/ProductList.tpl');
你应该使用这个
$this->setTemplate('ProductList.tpl');
这样您的文件将位于yourmodule / views / templates / front
中如果您已遵循所有这些指导原则,您应该能够在首选项中为您的moduelController设置友好的网址 - > SEO& URL
BR的