我正在使用PrestaShop 1.6.1.0
我的模块中有一个支持不同语言的字段,postProcess()
如下所示:
protected function postProcess()
{
$languages = Language::getLanguages(false);
$values = array();
foreach ($languages as $lang)
{
$values['CUSTOMPAGECONFIGURATION_HEADING_TEXT'][$lang['id_lang']] = Tools::getValue('CUSTOMPAGECONFIGURATION_HEADING_TEXT_'.$lang['id_lang']);
}
Configuration::updateValue('CUSTOMPAGECONFIGURATION_HEADING_TEXT', $values['CUSTOMPAGECONFIGURATION_HEADING_TEXT'], true);
return $this->displayConfirmation($this->l('The settings have been updated.'));
}
问题:
当我尝试在自定义控制器(路径:/controllers/front/CustomPageController.php
)中获取此配置变量值时,如下所示,它没有获取任何结果:
$headtxt = Configuration::get('CUSTOMPAGECONFIGURATION_HEADING_TEXT');
print_r($headtxt);
exit;
它没有打印任何内容。我想在控制器中获取此值,但是它不起作用并返回空字符串。
站点正在使用PrestaShop 1.6.1.0,我尝试了许多可用代码。我想念什么吗?
我在我为自定义页面创建的新控制器中使用此代码:
$headtxt = Configuration::get('CUSTOMPAGECONFIGURATION_HEADING_TEXT');
print_r($headtxt);
exit;
我希望输出通过postProcess()
方法保存的配置变量的结果。
答案 0 :(得分:0)
您好,@ Ankur,欢迎您光临!
在您的postProcess()
方法中,您将此配置值保存为多语言值。
但是,在调用Configuration::get()
静态方法时,在我看来您忘了提及语言ID了,这是函数原型:
public static function get($key, $idLang = null, $idShopGroup = null, $idShop = null, $default = false)
这应该有效:
$id_lang = (int)$this->context->cookie->id_lang
$headtxt = Configuration::get('CUSTOMPAGECONFIGURATION_HEADING_TEXT', $id_lang);
print_r($headtxt);
exit;