2016-01-27 2 views
1

Я хочу упростить свою жизнь и отобразить флаги языка рядом с полями ввода в панели администратора. Пример:Prestashop: дисплей «Choose language» inline in admin

Включите это: 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

Вы ищете функцию 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); 
      } 
     }); 
    } 
}