php - 使用 HelperForm 时 Prestashop 表单输入不可见
问题描述
我正在开发一个 prestashop 模块,这只是一个开始。问题出在我的模块的配置页面中。
我附加了一些文本框,标签和描述可见,但文本框不可见。
我查看了许多其他示例,但还没有发现任何差异和问题所在。
神秘的是,如果我将类型更改为date
or file
,它是可见的。
// This function called in getContent() of main module php file.
public function displayForm()
{
$fields_form = array(
'form' => array(
'legend' => array(
'title' => $this->trans('*'),
),
// Here is the textbox.
'input' => array(
array(
'type' => 'text',
'label' => $this->trans('Link:'),
'name' => 'LINK_PRODUCT',
'desc' => $this->trans('Please input the link...'),
'lang' => true,
'required' => true
)
),
'submit' => array(
'title' => $this->trans('Save'),
'class' => 'btn btn-default pull-right'
)
)
);
$helper = new HelperForm();
$helper->module = $this;
$helper->name_controller = $this->name;
$helper->token = Tools::getAdminTokenLite('AdminModules');
$helper->currentIndex = AdminController::$currentIndex . '&configure=' . $this->name;
$helper->title = $this->displayName;
$helper->show_toolbar = false;
$helper->submit_action = 'submit';
$helper->fields_value['LINK_PRODUCT'] = Configuration::get('LINK_PRODUCT');
return $helper->generateForm(array($fields_form));
}
我想让文本框可见,我应该怎么做?
解决方案
您想要多语言,因此您需要定义默认语言。将此代码添加到您的助手定义中
$helper->default_form_language = $this->context->language->id;
并更换
$helper->fields_value['LINK_PRODUCT'] = Configuration::get('LINK_PRODUCT');
和
$helper->tpl_vars = array(
'fields_value' => array('LINK_PRODUCT' => Configuration::get('LINK_PRODUCT')),
'languages' => $this->context->controller->getLanguages(),
'id_language' => $this->context->language->id,
);
定义 LINK_PRODUCT 变量的所有可用语言和值。而且,不要忘记您使用多语言字段,并且您需要有一个包含变量值的数组。因此,在提取和保存期间,您需要将它们视为所有语言的值。例如,如果您有三种可用的语言,则需要获取三个值。获得它们的最好方法是
$values = [];
foreach ($this->context->controller->getLanguages() as $language) {
$values[$language['id_lang']] = Configuration::get('LINK_PRODUCT', $language['id_lang']);
}
$helper->tpl_vars = array(
'fields_value' => array('LINK_PRODUCT' => $values),
'languages' => $this->context->controller->getLanguages(),
'id_language' => $this->context->language->id,
);
当你保存它时,使用类似的组合,但使用updateValue
推荐阅读
- php - 在 NodeJS 中检查查询结果?
- python - 基于元素字符串的过滤列表
- modal-dialog - 在 MSC Nastran 中获取简化模型的固有频率
- ios - 全新安装后使用 CloudKit 从 CoreData 加载具有“允许外部存储”的二进制数据时“无法为文件创建保护位置”
- c++ - cmake上relove错误CHECK_CXX_FLAGS如何失败
- kubernetes - Kubernetes 请求和限制关系
- terraform - Terraform Try for Argument 存在
- javascript - 黑暗启动,在 android 上多次调用 client.configure 错误
- python-3.x - 如何在python中为图像画线
- python - 有没有办法在仍然使用递归方法的同时解决内存错误?