Панель выбора языка RU ENG без картинок флажков

Тема в разделе "Opencart", создана пользователем jurikserf, 16 май 2013.

Информация :
Внимание форумчане! При создании тем, или выкладывании какой-либо информации проверьте в какой ветке форума вы находитесь! Не путайте Opencart и Opencart2. При несоблюдении данного условия выносится соответствующее наказание! И потом не говорите что вас НЕ ПРЕДУПРЕЖДАЛИ! По возможности используйте обменники mail, yandex, google, dropbox, rghost Дабы избежать просьб перезалить и проблем с рекламой!
Модераторы: ZiX
  1. jurikserf

    jurikserf Постоялец

    Регистр.:
    4 янв 2013
    Сообщения:
    104
    Симпатии:
    30
    При создании очередного интернет магазина на Opencart была получена просьба от заказчика изменить стиль вывода панели выбора языка.

    Стандартный вариант с картинками флажков ему не понравился...:mad: Хочет видеть просто активный текст RU ENG, при нажатии по одному из которых менялся бы язык отображения магазина.

    Хотел пойти по простому пути и найти шаблон с реализацией модуля выбора языка без флажков, но к моему удивлению не нашлось ни одного шаблона, везде присутствует стандартный вариант отображения.

    Может кто-то может подсказать простое решение....

    Стандартный код в используемом шаблоне:

    Код:
     <?php if (count($languages) > 1) { ?>
      <form action="<?php echo $action; ?>" method="post" enctype="multipart/form-data">
        <div id="language">
       
        <div class="languagemenu"><?php echo $text_language; ?></div>
        <?php foreach ($languages as $language) { if($language_code == $language['code']){?>
        <img class="imagemenu" src="image/flags/<?php echo $language['image']; ?>" title="US" alt="US" />
        <?php }} ?>
        <ul>
          <?php foreach ($languages as $language) { ?>
          <li <?php if($language_code == $language['code']){echo 'class="active"';}?>>
          <img src="image/flags/<?php echo $language['image']; ?>" alt="<?php echo $language['name']; ?>" title="<?php echo $language['name']; ?>" onclick="$('input[name=\'language_code\']').attr('value', '<?php echo $language['code']; ?>').submit(); $(this).parent().parent().parent().parent().submit();" />
          </li>
          <?php } ?>
          </ul>
          <input type="hidden" name="language_code" value="" />
          <input type="hidden" name="redirect" value="<?php echo $redirect; ?>" />
        </div>
      </form>
     
  2. Igornord

    Igornord Создатель

    Регистр.:
    3 сен 2008
    Сообщения:
    34
    Симпатии:
    9
    Первое что приходит на ум - ход конем. Перерисуй png-шки.
     
  3. Yuriy_Z

    Yuriy_Z Доработка+ OpenCart

    Регистр.:
    22 июл 2012
    Сообщения:
    158
    Симпатии:
    91
    PHP:
    <?php if (count($languages) > 1) { ?>
    <form action="<?php echo $action?>" method="post" enctype="multipart/form-data">
      <div id="language"><?php echo $text_language?><br />
        <?php foreach ($languages as $language) { ?>
        <span onclick="$('input[name=\'language_code\']').attr('value', '<?php echo $language['code']; ?>'); $(this).parent().parent().submit();" /><?php echo $language['code']; ?></span>
        <?php ?>
        <input type="hidden" name="language_code" value="" />
        <input type="hidden" name="redirect" value="<?php echo $redirect?>" />
      </div>
    </form>
    <?php ?>
    Со стилями думаю уже сами разберетесь
     
    jurikserf нравится это.
  4. sergeyzz

    sergeyzz Писатель

    Регистр.:
    6 окт 2014
    Сообщения:
    1
    Симпатии:
    0
    я со стилями не разобрался. помогите выделить выбранный язык.
     
  5. No48

    No48 Писатель

    Регистр.:
    6 июл 2014
    Сообщения:
    4
    Симпатии:
    0
    Возможно уже не актуально, но другим может пригодится:

    В файле: catalog/view/theme/{theme}/template/module/language.tpl

    Код:
        <?php foreach ($languages as $language) { ?>
            <img src="image/flags/<?php echo $language['image']; ?>" alt="<?php echo $language['name']; ?>" title="<?php echo $language['name']; ?>" onclick="$('input[name=\'language_code\']').attr('value', '<?php echo $language['code']; ?>'); $(this).parent().parent().submit();" />
        <?php } ?>
    заменить на:

    Код:
        <?php
            $languageActive = $this->session->data['language'];
            $class =" active_lang";
        ?>
        <?php foreach ($languages as $key => $language ) { ?>
            <img src="image/flags/<?php echo $language['image']; ?>" alt="<?php echo $language['name']; ?>" title="<?php echo $language['name']; ?>" onclick="$('input[name=\'language_code\']').attr('value', '<?php echo $language['code']; ?>'); $(this).parent().parent().submit();" class="language<?php if($languageActive==$language['code']){ echo $class;}?>" />
        <?php } ?>