Автор Тема: Перенос контактной информации из FOOTER в HEADER.  (Прочитано 359 раз)

08 Август 2015, 10:24:39
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
/themes/default-bootstrap/modules/blockcontactinfos/blockcontactinfos.tpl - здесь формируется модуль информации, который выводится в footer'ре. (см. картинку) Подскажите, а как его вывести в header'ре?

Через админку как то можно? Или только через код?
08 Август 2015, 11:21:34
Ответ #1
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86543
  • Репутация: +25419/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Только через код. Нужно менять хук вывода. В файле /modules/blockcontactinfos/blockcontactinfos.php заменить
public function hookFooter($params)на
public function hookTop($params)
08 Август 2015, 23:38:30
Ответ #2
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, но пока есть сложности:

На комбинацию:

public function hookHeader()
{
$this->context->controller->addCSS(($this->_path).'blockcontactinfos.css', 'all');
}

public function hookHeader($params)
{
if (!$this->isCached('blockcontactinfos.tpl', $this->getCacheId()))
foreach (Blockcontactinfos::$contact_fields as $field)
$this->smarty->assign(strtolower($field), Configuration::get($field));
return $this->display(__FILE__, 'blockcontactinfos.tpl', $this->getCacheId());
}

Ругалась:


Fatal error: Cannot redeclare Blockcontactinfos::hookHeader() in /var/www/PrestaShop-1.6/modules/blockcontactinfos/blockcontactinfos.php on line 91
Удалил:

public function hookHeader()
{
$this->context->controller->addCSS(($this->_path).'blockcontactinfos.css', 'all');
}

Что то поменялось, в header что то выводит, но без данных...просто пустые div'ы
08 Август 2015, 23:54:30
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1288
  • Репутация: +34/-1
  • Сообщество PrestaShop
    • Просмотр профиля
09 Август 2015, 00:51:59
Ответ #4
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Простите, невнимально прочитал Ваши рекомендации.
Текст поправил. Теперь так:

   public function hookTop($params)

{

if (!$this->isCached('blockcontactinfos.tpl', $this->getCacheId()))

foreach (Blockcontactinfos::$contact_fields as $field)

$this->smarty->assign(strtolower($field), Configuration::get($field));

return $this->display(__FILE__, 'blockcontactinfos.tpl', $this->getCacheId());

}

Пустые дивы исчезли. Из футера пропала информация, но в хедер не добавилась... Или надо теперь в админке?
09 Август 2015, 11:26:40
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 14056
  • Репутация: +14569/-2
  • Сообщество PrestaShop
    • Просмотр профиля
В функции установки замените footer на top:
public function install()
{
.....
return (parent::install() && $this->registerHook('header') && $this->registerHook('top'));
}
Переустановите модуль.
Измените шаблон модуля /themes/default-bootstrap/modules/blockcontactinfos/blockcontactinfos.tpl под размеры шапки сайта.
Измените стили.
10 Август 2015, 22:03:48
Ответ #6
  • Новичок
  • *
  • Сообщений: 24
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Все великолепно заработало. Спасибо огромное.