Prestashop:在管理中内联显示 "Choose language"

Prestashop: display "Choose language" inline in admin

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

转这个:

进入这个:

我试过覆盖

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 和默认主题。

您正在 /js/admin.js 文件中搜索 displayFlags 函数。

这里它适用于我的安装,并进行了以下更改:

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);
            }
        });
    }
}