我试图用helperForm做一个表单,但这是不可能的。 我正在关注官方文档,但FrontControler对我来说是不可能的。
http://doc.prestashop.com/display/PS16/Using+the+HelperForm+class
我可以这样做吗?
向我显示的错误是:
Uncaught --> Smarty: Unable to load template file 'helpers/form/form.tpl'
我的班级是:
public function renderForm()
{
$fields_form = array( 'form' => array(
'legend' => array(
'title' => $this->module->l('Edit carrier'),
'image' => '../img/admin/icon_to_display.gif'
),
'input' => array(
array(
'type' => 'text',
'name' => 'shipping_method',
),
),
'submit' => array(
'title' => $this->module->l('Save'),
'class' => 'btn btn-default pull-right'
)
));
$helper = new HelperForm();
$helper->show_toolbar = false;
$helper->table = $this->table;
$this->fields_form = array();
$helper->identifier = $this->identifier;
$helper->submit_action = 'submitBlockCart';
return $helper->generateForm(array($fields_form));
}
我疯了......
答案 0 :(得分:1)
答案很简单:你不能使用FrontEnd中的HelperForm。
据我所知,你只能在BackOffice中使用helperForm,所以我认为你不能在前面。
答案 1 :(得分:0)
我已经在很多线程上看到过这种错误。您的admin/themes/your_theme/template/helpers/form/form.tpl
是否在您的服务器上并具有正确的访问权限?
有时整个helpers
目录因特殊原因而丢失。
编辑帮助表单仅适用于后台。您无法从FrontController上下文中使用它。
答案 2 :(得分:0)
实际上,我不知道你是否,但你肯定可以在自定义模块中使用HelperForm
。
查看createTemplate
中的Helper
类(HelperForm
扩展)/classes/helper/Helper.php
中的函数elseif ($this->module) {
$override_tpl_path = _PS_MODULE_DIR_.$this->module->name.'/views/templates/admin/_configure/'.$this->base_folder.$tpl_name;
}
,特别是这段代码:
module
您可以看到,如果您定义属性form.tpl
,则帮助程序将在/views/templates/admin/_configure/helpers/form/
下的模块文件夹中使用模板form.tpl
。
所以你需要做的是:
admin/themes/default/template/helpers/form/form.tpl
从$helper->module = $this;
复制到模块中的上述路径generateForm()
$helper->tpl_vars
醇>
注意:
此外,您可能还希望定义name
以便能够使用输入的属性{
"bool": {
"must": [
{
"span_near": {
"clauses": {
"0": {
"span_multi": {
"match": {
"wildcard": {
"data.Title.eng": "method"
}
}
}
},
"1": {
"span_multi": {
"match": {
"wildcard": {
"data.Title.eng": "system"
}
}
}
}
},
"slop": 1,
"in_order": false
}
}
]
}
}
。