商店设置中的 Opencart 3 多语言字段
Opencart 3 multilanguage fields in store settings
我想在 Opencart 3 商店设置中将“打开”字段设为多语言。
在admin\view\template\setting\setting.twig。
我找到了这些行:
<div class="form-group">
<label class="col-sm-2 control-label" for="input-open"><span data-toggle="tooltip" data-container="#tab-general" title="{{ help_open }}"> {{ entry_open }}</span></label>
<div class="col-sm-10">
<textarea name="config_open" rows="5" placeholder="{{ entry_open }}" id="input-open" class="form-control">{{ config_open }}</textarea>
</div>
</div>
我从 textarea 制作 - 输入并添加 {% for language in languages %}
、语言标志和语言 ID。
{% for language in languages %}
<div class="form-group">
<label class="col-sm-2 control-label" for="input-open{{ language.language_id }}"><img src="language/{{ language.code }}/{{ language.code }}.png" title="{{ language.name }}" /><span data-toggle="tooltip" data-container="#tab-general" title="{{ help_open }}"> {{ entry_open }}</span></label>
<div class="col-sm-10">
<input type="text" name="config_open[{{ language.language_id }}][title]" placeholder="{{ entry_open }}" id="input-open{{ language.language_id }}" value="{{ config_open[language.language_id] ? config_open[language.language_id].title }}" class="form-control" />
</div>
</div>
{% endfor %}
之后,在商店设置中,我有两种语言的“打开”字段。这些字段中的信息现在已存储。
在前端控制器中,我做了这个。
$data['open'] = nl2br($this->config->get('config_open'));
什么时候一种语言都可以,但现在我有一个错误:
Warning: nl2br() expects parameter 1 to be string, array given in /var/www/fastuser/data/www/localstite.loc/storage/modification/catalog/controller/common/header.php on line 81
已编辑...
相应的控制器文件必须包含此代码:
$this->load->model('localisation/language');
$languages = $this->model_localisation_language->getLanguages();
foreach ($languages as $language) {
if (isset($this->request->post[config_open' . $language['language_id']])) {
$data['config_open'][$language['language_id']] = $this->request->post['config_open' . $language['language_id']];
} else {
$data['config_open'][$language['language_id']] = $this->config->get('config_open' . $language['language_id']);
}
}
行:
<input type="text" name="config_open[{{ language.language_id }}][title]" placeholder="{{ entry_open }}" id="input-open{{ language.language_id }}" value="{{ config_open[language.language_id] ? config_open[language.language_id].title }}" class="form-control" />
替换为:
<input type="text" name="config_open{{ language.language_id }}" placeholder="{{ entry_open }}" id="input-open{{ language.language_id }}" value="{% if config_open[language.language_id] %}{{ config_open[language.language_id] }}{% endif %}" class="form-control" />
和前端线:
$data['open'] = nl2br($this->config->get('config_open'));
替换为:
$data['open'] = nl2br($this->config->get('config_open' . $this->config->get('config_language_id')));
我想在 Opencart 3 商店设置中将“打开”字段设为多语言。
在admin\view\template\setting\setting.twig。 我找到了这些行:
<div class="form-group">
<label class="col-sm-2 control-label" for="input-open"><span data-toggle="tooltip" data-container="#tab-general" title="{{ help_open }}"> {{ entry_open }}</span></label>
<div class="col-sm-10">
<textarea name="config_open" rows="5" placeholder="{{ entry_open }}" id="input-open" class="form-control">{{ config_open }}</textarea>
</div>
</div>
我从 textarea 制作 - 输入并添加 {% for language in languages %}
、语言标志和语言 ID。
{% for language in languages %}
<div class="form-group">
<label class="col-sm-2 control-label" for="input-open{{ language.language_id }}"><img src="language/{{ language.code }}/{{ language.code }}.png" title="{{ language.name }}" /><span data-toggle="tooltip" data-container="#tab-general" title="{{ help_open }}"> {{ entry_open }}</span></label>
<div class="col-sm-10">
<input type="text" name="config_open[{{ language.language_id }}][title]" placeholder="{{ entry_open }}" id="input-open{{ language.language_id }}" value="{{ config_open[language.language_id] ? config_open[language.language_id].title }}" class="form-control" />
</div>
</div>
{% endfor %}
之后,在商店设置中,我有两种语言的“打开”字段。这些字段中的信息现在已存储。
在前端控制器中,我做了这个。
$data['open'] = nl2br($this->config->get('config_open'));
什么时候一种语言都可以,但现在我有一个错误:
Warning: nl2br() expects parameter 1 to be string, array given in /var/www/fastuser/data/www/localstite.loc/storage/modification/catalog/controller/common/header.php on line 81
已编辑...
相应的控制器文件必须包含此代码:
$this->load->model('localisation/language');
$languages = $this->model_localisation_language->getLanguages();
foreach ($languages as $language) {
if (isset($this->request->post[config_open' . $language['language_id']])) {
$data['config_open'][$language['language_id']] = $this->request->post['config_open' . $language['language_id']];
} else {
$data['config_open'][$language['language_id']] = $this->config->get('config_open' . $language['language_id']);
}
}
行:
<input type="text" name="config_open[{{ language.language_id }}][title]" placeholder="{{ entry_open }}" id="input-open{{ language.language_id }}" value="{{ config_open[language.language_id] ? config_open[language.language_id].title }}" class="form-control" />
替换为:
<input type="text" name="config_open{{ language.language_id }}" placeholder="{{ entry_open }}" id="input-open{{ language.language_id }}" value="{% if config_open[language.language_id] %}{{ config_open[language.language_id] }}{% endif %}" class="form-control" />
和前端线:
$data['open'] = nl2br($this->config->get('config_open'));
替换为:
$data['open'] = nl2br($this->config->get('config_open' . $this->config->get('config_language_id')));