Prestashop(1.6.0.6)中的新功能,我的管理员产品页面出现问题。所有可翻译字段都显示:none(我用chrome检查代码)。
因此,当我想要创建新产品时,我不能,因为名称字段是必需的。
我认为找到.js很简单,但不是。
如果有人可以帮助我,我会很高兴。
感谢您的帮助
您好,
我做了一些搜索,看到函数hideOtherLanguage(id)隐藏并显示translatable-field元素。
function hideOtherLanguage(id)
{
console.log(id_language);
$('.translatable-field').hide();
$('.lang-' + id).show();
var id_old_language = id_language;
id_language = id;
if (id_old_language != id)
changeEmployeeLanguage();
updateCurrentText();
}
当我将Id设置为1(默认语言)时,它可以正常工作。似乎当我加载页面时,函数被调用两次而最后一次调用,id值是未定义的。所以show()函数不起作用。
如果有人可以帮助我。谢谢。
在我的控制台中,我只看到一个错误
undefined不是一个函数。 在index.php / Line 1002下 ... $( “#product_form”)。验证({ ...
但我找到了form.tpl模板,并在评论中设置了这一行,但没有任何改变。
答案 0 :(得分:0)
编辑:根据对此链接http://forge.prestashop.com/browse/PSCFV-2928的评论,这可能是由于安装文件损坏引起的 - 所以在干净安装时 - 尝试重新下载并重新安装。 ..
我遇到了类似的问题 - 在模块管理页面中,使用PrestaShop HelperForm
创建配置表单时。我将提供最可能的案例及其可能的解决方案。
HelperForm的解决方案在PS 1.6.0.14上进行了测试
一般情况下会发生 2例。
首先,您必须检查您收到的HTML。
=>在开发者工具/ firebug / etc中显示源代码 - NOT ...!
=>我的意思是纯收到的(JavaScript un 触及)html。
display: none
&#34;:<小时/>
display: none
&#34; 这意味着模板/ html已经以这种方式准备 - 很可能在某些TPL文件中我看到类似的代码:
<div class="translatable-field lang-{$language.id_lang}"
{if $language.id_lang != $id_lang_default}style="display:none"{/if}>
或特别是 HelperForm
模板:
<div class="translatable-field lang-{$language.id_lang}"
{if $language.id_lang != $defaultFormLanguage}style="display:none"{/if}>
案例1是最容易解决的,你只需找到,在哪里设置这种默认语言。
查看您(或其他人)准备HelperForm
对象的位置 - 例如:
$formHelper = new HelperForm();
...
某处会有类似$formHelper->default_form_language = ...;
的内容
我的错误第一个解决方案是从上下文中获取默认表单语言 - 可能未设置:
<德尔> $this->context->controller->default_form_language; //THIS IS WRONG!
德尔>
正确的方法是从配置中获取默认语言 - 例如:
$default_lang = new Language((int)Configuration::get('PS_LANG_DEFAULT'));
$formHelper->default_form_language = $default_lang->id;
......这特别解决了我的问题...
如果HelperForm还有其他东西用于表单创建,问题仍然非常相似。
您必须找到文件中的位置(可能是tpls),以便为您的案例打印display:none
- 然后找到检查变量集的位置并自己正确设置。
<小时/>
display: none
&#34; 这意味着在通过JavaScript 加载HTML 后完成。有两种选择:
hideOtherLanguage()
,但输入语言设置错误 - 这意味着不会显示任何语言并且全部隐藏。.translatable-field
上调用某种.hide() - 您必须以艰难的方式搜索它并删除/注释掉它。