我为此苦苦挣扎了好几个小时: 我正在尝试将新字段添加到使用Prestashop中的HelperForm类为自定义模块生成的表单中。
我尝试在getContent()
函数中为模块的配置页面执行此操作
以下字段被接受并且有效:
array(
'type' => 'file',
'label' => $this->l('Button image'),
'id' => 'button_image_path',
'name' => 'button_image_path',
'image' => '<img src="'._MODULE_DIR_.$this->name.'\\img\\'.basename($buttonImage["setting_value"]).'" class="button-image-preview" width="30">'
)
但是,当我尝试添加其他类似字段时:
array(
'type' => 'text',
'label' => $this->l('Number of displayed products'),
'name' => 'CROSSSELLING_NBR',
'desc' => $this->l('Set the number of products displayed in this block.'
)
出现此错误:
Notice on line 387 in file D:\wamp\www\qmart.ro\tools\smarty\sysplugins\smarty_internal_templatebase.php(157) : eval()'d code
[8] Undefined index: CROSSSELLING_NBR
但是,输入仍然会生成,看起来像这样:
<input type="text" name="CROSSSELLING_NBR" id="CROSSSELLING_NBR" value="" class="">
我尝试过的事情:
我没有更改核心文件中的任何内容。
因此,正在为这些输入构建表单,但是这种“未定义索引”的情况仍然会发生。
答案 0 :(得分:0)
因此,显然他们强迫您为输入选择一些默认值。
我通过添加以下行来解决它:
$helper->fields_value['CROSSSELLING_NBR'] = '';
答案 1 :(得分:0)
根据您的代码...
array(
'type' => 'text',
'label' => $this->l('Number of displayed products'),
'name' => 'CROSSSELLING_NBR',
'desc' => $this->l('Set the number of products displayed in this block.'
)
您在'desc'中有一个错误,您需要关闭最后的括号,这应该可行...
array(
'type' => 'text',
'label' => $this->l('Number of displayed products'),
'name' => 'CROSSSELLING_NBR',
'desc' => $this->l('Set the number of products displayed in this block.')
)