Prestashop V1.6
您好,
我需要创建一个新的非cms表单页面,其中包含一些逻辑,JS,CSS和PHP。
此页面将提交一个PHP脚本,该脚本将执行一些逻辑并重定向回此页面。
如果可能的话,在这个表单页面中包含PHP会很好,但如果没有,我需要在FormPageController中包含PHP并使用模板文件等。
除了正文,包括表单外,页面需要看起来像商店,所以它需要包含页眉和页脚。
我尝试使用CMS页面,但它在允许的范围内限制太多。
我还设置了一个根文件:form-page.php
<?php
include(dirname(__FILE__).'/config/config.inc.php');
Tools::displayFileAsDeprecated();
include(dirname(__FILE__).'/header.php');
$smarty->display(_PS_THEME_DIR_.'form-page.tpl');
include(dirname(__FILE__).'/footer.php');
控制器:FormPage.php
<?php
class FormPageControllerCore extends FrontController
{
public function init(){
parent::init();
}
public function setMedia()
{
parent::setMedia();
$this->addCSS(_THEME_CSS_DIR_.'form-page.css');
$this->addJS(_THEME_JS_DIR_.'form-page.js');
$this->addJS(_PS_JS_DIR_.'validate.js');
}
public function initContent()
{
parent::initContent();
}
}
?>
模板文件:form-page.tpl
<div>
<!-- HTML -->
</div>
{literal}
<style type="text/css">
</style>
{/literal}
<script type="text/javascript">
{literal}
{/literal}
</script>
并在Admin-&gt;偏好设置&gt; SEO页面
中关联该页面结果我只回到完全黑色的页面。
要完成此任务,我还需要添加其他文件吗?
使这项工作的每个必需文件的最小骨架是什么?
我还能在哪里出错?
谢谢
答案 0 :(得分:1)
1)在PS root中创建一个php文件:formpage.php(例如)
include(dirname(__FILE__).'/config/config.inc.php');
Tools::displayFileAsDeprecated();
include(dirname(__FILE__).'/header.php');
$smarty->display(_PS_THEME_DIR_.'formpage.tpl');
include(dirname(__FILE__).'/footer.php');
2)创建一个新控制器:root / controllers / front / FormpageController.php
class FormpageController extends FrontController{
public function init(){
parent::init();
}
public function setMedia()
{
parent::setMedia();
$this->addJS(_THEME_JS_DIR_.'formpage.js');
}
public function initContent(){
parent::initContent();
$this->setTemplate(_PS_THEME_DIR_.'formpage.tpl');
}
}
3)在主题文件夹中创建一个新的.tpl文件 您的内容
所以在你的例子中我认为你的控制器文件名不好?
毕竟删除缓存 - &gt; class_index.php文件