Prestashop:显示"选择语言"内联管理员

时间:2016-01-27 11:57:15

标签: prestashop prestashop-1.5

我想简化我的生活并在管理面板中的输入字段旁边显示内联语言标记。 例如:

转过来: enter image description here

进入: enter image description here

我试过覆盖

abstract class ModuleCore { public function displayFlags() }

但没有效果。

然后我将admin\themes\default\template\helpers\options\options.tpl修改为:

<div class="displayed_flag">
{foreach $languages as $language}
    <img src="../img/l/{$language.id_lang}.jpg"
        class="pointer"
        alt="{$language.name}"
        title="{$language.name}"
        onclick="changeLanguage('{$key}', '{if isset($custom_key)}{$custom_key}{else}{$key}{/if}', {$language.id_lang}, '{$language.iso_code}');" />
{/foreach}
</div>

但仍然没有。

当然我删除了class_index.php,清除缓存等...

我正在使用Prestashop 1.5.5和默认主题。

1 个答案:

答案 0 :(得分:1)

您正在displayFlags文件中搜索/js/admin.js功能。

此处可通过此更改在我的安装中运行:

function displayFlags(languages, defaultLanguageID, employee_cookie)
{
    if ($('.translatable'))
    {
        $('.translatable').each(function() {
            if (!$(this).find('.displayed_flag').length > 0) {
                $.each(languages, function(key, language) {
                    if (language['id_lang'] == defaultLanguageID)
                    {
                        defaultLanguage = language;
                        return false;
                    }
                });
                var displayFlags = $('<div></div>')
                    .addClass('displayed_flag');
                $.each(languages, function(key, language) {
                    var img = $('<img>')
                        .addClass('pointer')
                        .css('margin', '0 2px')
                        .attr('src', '../img/l/' + language['id_lang'] + '.jpg')
                        .attr('alt', language['name'])
                        .click(function() {
                            changeFormLanguage(language['id_lang'], language['iso_code'], employee_cookie);
                        });
                    displayFlags.append(img);
                });
                if ($(this).find('p:last-child').hasClass('clear'))
                    $(this).find('p:last-child').before(displayFlags);
                else
                    $(this).append(displayFlags);
            }
        });
    }
}