Автор Тема: Доработка дизайна.  (Прочитано 165 раз)

04 Август 2021, 15:29:30
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здраствуйте.
Нужно доработать меню выбора языка.
есть переделанный модуль выбор языка
override\modules\ps_languageselector\ps_languageselector.php
<?php

use PrestaShop\PrestaShop\Core\Module\WidgetInterface;

if (!
defined('_PS_VERSION_'))
exit;

class 
Ps_LanguageselectorOverride extends Ps_Languageselector implements WidgetInterface
{

public function install()
{
if (!parent::install() || !$this->registerHook('XXXXXX'))
  return false;
return true;
}

public function getWidgetVariables($hookName null, array $configuration = [])
{
$id_shop = (int)$this->context->shop->id;
$id_group = (int)$this->context->shop->id_shop_group;
$shop = new Shop($id_shop);
$shopsList $shop::getShops(false$id_group);

foreach ($shopsList as $index => $currShop) {
$shopsList[$index]['lang'] = Language::getLanguages(true$currShop['id_shop'])[0];
}

return array(
'shopsGroup' => $shopsList,
'currentShop' => $id_shop
);
}

public function hookDisplayXXXXXX($params)
{
$shopsList $this->getWidgetVariables();

if (count($shopsList['shopsGroup'])) {
$this->smarty->assign($shopsList);
return $this->fetch('module:ps_languageselector/ps_languageselector.tpl');
    }

    return 
false;
}

}
/themes/xxx/modules/ps_languageselector/ps_languageselector.tpl
<div id="mod-ps-languageselector">
  <h4>{l s='Language:' d='Shop.Theme.Global'}</h4>
  {if isset($shopsGroup)}
    {foreach from=$shopsGroup item=shop}
      <a href="http://{$shop.domain}" class="{if $shop.id_shop == $currentShop}active{/if}">
        {if isset($shop.lang.id_lang)}
          <img src="/img/l/{$shop.lang.id_lang}.jpg" alt="{$shop.lang.language_code}" title="{$shop.lang.name}" />
        {else}
          <img src="/img/l/none.jpg" alt="Flag no found">
        {/if}
      </a>
    {/foreach}
  {/if}
</div>
суть в том что он меняет выбор языка на выбор магазина
<div class="language-selector-wrapper">
  <div class="language-selector dropdown js-dropdown">
    <div class="desktop-dropdown">
      <span id="language-selector-label" class="hidden-md-up">{l s='Language:' d='Shop.Theme.Global'}</span>
      <button class="btn-unstyle dropdown-current expand-more" data-toggle="dropdown" data-offset="0,2px" aria-haspopup="true" aria-expanded="false" aria-label="{l s='Language dropdown' d='Shop.Theme.Global'}">
        <span><img src="{$urls.img_lang_url}{$current_language.id_lang}.jpg" alt="{$current_language.name_simple}" width="16" height="11"></span>
        <span>&nbsp;&nbsp;{$current_language.name_simple}</span>
        <span class="dropdown-icon"><span class="expand-icon"></span></span>
      </button>
      <div class="dropdown-menu js-language-source" aria-labelledby="language-selector-label">
        <ul class="language-list">
          {foreach from=$languages item=language}
            <li {if $language.id_lang == $current_language.id_lang} class="current" {/if}>
              <a href="{url entity='language' id=$language.id_lang}" title="{$language.name}" class="dropdown-item" data-iso-code="{$language.iso_code}">
                <span class="l-name">
                  <span><img src="{$urls.img_lang_url}{$language.id_lang}.jpg" alt="{$language.name_simple}" width="16" height="11"></span>
                  <span>&nbsp;&nbsp;{$language.name_simple}</span>
                </span>
                <span class="l-code">{$language.iso_code}</span>
              </a>
            </li>
          {/foreach}
        </ul>
      </div>
    </div>
  </div>
</div>
этот код родной для шаблона. нужно адаптировать код к шаблону
07 Август 2021, 20:21:22
Ответ #1
  • Фрилансер
  • *
  • Сообщений: 172
  • Репутация: +0/-44
    • Просмотр профиля
    • RUS-DESIGN
Здравствуйте. Обращайтесь, сделаю.
12 Август 2021, 18:08:39
Ответ #2
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте. Обращайтесь, сделаю.
написал