Автор Тема: Переместить блок языков  (Прочитано 386 раз)

04 Июня 2015, 17:30:54
  • Фрилансер
  • *
  • Сообщений: 158
  • Репутация: +5/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Доброго времени всем.

PrestaShop 1.6 , тема default-bootstrap

Пытаюсь переместить блок выбора языка из хука DisplayNav(Navigation) в хук DisplayTop

То есть, чтоб выбор языка располагался не в меню, а рядом с блоком "Корзина". И чтоб это был не выпадающий список, а предлагаемые варианты языков
располагались в строчку или в столбик (ссылки или кнопки...... сам сделаю)

В расположении блоков => Править  выбор не доступен.

Ковырял здесь
/themes/default-bootstrap/css/modules/blockcurrencies/blockcurrencies.css
и здесь:
themes/default-bootstrap/css/modules/blocklanguages/blocklanguages.css

удаётся переместить блок только а пределах  меню Navigation.

Прошу совета......

 


04 Июня 2015, 19:12:33
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22212
  • Репутация: +17111/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
В файле /modules/blockcurrencies/blockcurrencies.php заменить хук displayNav на displayTop
public function install()
{
return parent::install() && $this->registerHook('displayTop')
переустановить модуль.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
05 Июня 2015, 06:18:51
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 158
  • Репутация: +5/-0
  • Сообщество PrestaShop
    • Просмотр профиля
mAgency

Спасибо, но файл /modules/blockcurrencies/blockcurrencies.php не существует. Существует файл blockcurrencies.tpl
Но можно ли использовать Вашу функцию в этом случае?

Вообще то блок валют меня устраивает. Есть ли необходимость править и его?

=====================================================
Вот, собственно, модуль выбора языка
./themes/default-bootstrap/modules/blocklanguages/blocklanguages.tpl


<!-- Block languages module -->
{if count($languages) > 1}
<div id="languages-block-top" class="languages-block">
{foreach from=$languages key=k item=language name="languages"}
{if $language.iso_code == $lang_iso}
<div class="current">
<span>{$language.name|regex_replace:"/\s\(.*\)$/":""}</span>
</div>
{/if}
{/foreach}
<ul id="first-languages" class="languages-block_ul toogle_content">
{foreach from=$languages key=k item=language name="languages"}
<li {if $language.iso_code == $lang_iso}class="selected"{/if}>
{if $language.iso_code != $lang_iso}
{assign var=indice_lang value=$language.id_lang}
{if isset($lang_rewrite_urls.$indice_lang)}
<a href="{$lang_rewrite_urls.$indice_lang|escape:'html':'UTF-8'}" title="{$language.name}">
{else}
<a href="{$link->getLanguageLink($language.id_lang)|escape:'html':'UTF-8'}" title="{$language.name}">
{/if}
{/if}
<span>{$language.name|regex_replace:"/\s\(.*\)$/":""}</span>
{if $language.iso_code != $lang_iso}
</a>
{/if}
</li> {/foreach}</ul></div>{/if}<!-- /Block languages module -->

Авот  то место, где он должен отображаться

/themes/default-bootstrap/header.tpl

.........................
                                              <div>
<div class="container">
<div class="row">

Вот здесь, где дефолтовый логотип был, только справа

{if isset($HOOK_TOP)}{$HOOK_TOP}{/if}
</div></div></div></header>

.................................

Использовать include? Как поступить с  существующим отображением (списком языков)?
В общем, не php-шник я. Помогите.......
 
05 Июня 2015, 08:06:03
Ответ #3
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22212
  • Репутация: +17111/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Цитировать
Спасибо, но файл /modules/blockcurrencies/blockcurrencies.php не существует. Существует файл blockcurrencies.tpl
Существует, Смотрите от корня сайта, а не в папке themes.
Файлы шаблонов модулей TPL находяться в папке /themes/название темы/modules/название модуля/...
Основной файл php находится в /modules/название модуля/...

Цитировать
Вот здесь, где дефолтовый логотип был, только справа
   {if isset($HOOK_TOP)}{$HOOK_TOP}{/if}
В файле php можно поменять вывод модуля. Это как раз то, что вам нужно - HOOK_TOP
После изменения хука и переустановки модуля, можно изменить очередь вывода модуля в админке Модули > Расположение блоков.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
05 Июня 2015, 14:32:55
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 158
  • Репутация: +5/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, всё ОК.

Попутный вопрос:

Где в Prestashop объявлябтся переменные? Конкретно интересует  $light-text-color в файле
./prestashop/themes/default-bootstrap/sass/modules/blockuserinfo/blockuserinfo.scss

05 Июня 2015, 15:48:13
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 13625
  • Репутация: +14563/-1
  • Сообщество PrestaShop
    • Просмотр профиля
/themes/default-bootstrap/sass/...
в этих файлах и объявляются переменные классов для стилей.
Что такое Haml/Sass?
08 Июня 2015, 10:26:49
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 158
  • Репутация: +5/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, то, что нужно. Чётко и конкретно ;)