Автор Тема: Свой модуль  (Прочитано 4007 раз)

22 Октябрь 2014, 13:13:55
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Ребят, можно кто сталкивался. Написал свой модуль, прикрепил к хуку footer, но он не выводится.  PrestaShop 1.6.  В поисках по коду выяснил, что во время подключения hook-а данные берутся из xml, которая находится в /config/xml/modules_list.xml . Так вот, если туда вписать ручками названия своего модуля, то все ок. но файл, через несколько дней обновляется и мой модуль сам не прописывает туда. Никто не сталкивался с этим? может кто что подскажет.
22 Октябрь 2014, 14:17:39
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 1808
  • Репутация: +49/-1
  • Сообщество PrestaShop
    • Просмотр профиля
В install в модуле нужно указать hookFooter.
22 Октябрь 2014, 14:35:17
Ответ #2
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
В install в модуле нужно указать hookFooter.

у меня был прописан "footer" просто. Дописал ещё "hookFooter", переустановил модуль. Результат тот же - не отображается, в xml-ке нету
22 Октябрь 2014, 15:18:27
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Значит неправльно написали функцию установки и вывода.
public function install()
{
return (parent::install() && $this->registerHook('header') && $this->registerHook('footer'));
}
...
public function hookFooter($params)
{
return $this->display(__FILE__, 'mymodule.tpl');
}
22 Октябрь 2014, 15:27:45
Ответ #4
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Значит неправльно написали функцию установки и вывода.
public function install()
{
return (parent::install() && $this->registerHook('header') && $this->registerHook('footer'));
}
...
public function hookFooter($params)
{
return $this->display(__FILE__, 'mymodule.tpl');
}

все это прописано. и работает, говорю ведь. Но если только прописать в вышестоящий файлик названия модуля. Я смотрел по базе данных, модуль установлен, привязан к тому хуку, все хорошо. Но сам класс hook-а не смотрит базу, он анализирует этот файлик и уже подгружает нужный модуль на основе данных в нем. И если я напишу туда названия модуля то он все отлично подхватывает. Но через некоторое время файлик обновляется и запись стирает.. Копаться когда и как он генерит файл нету времени, да и лень) подумал, может кто сталкивался. или знает в чем беда.
22 Октябрь 2014, 15:32:00
Ответ #5
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
Для своего модуля нужны только эти 2 функции. Больще ничего, проверено не раз. Все выводит в нужно месте. Исключение только для своей страницы и своего контроллера.
Если в модуле нет своего контроллера, то должно работать.
22 Октябрь 2014, 15:34:47
Ответ #6
  • Ветеран
  • *****
  • Сообщений: 16670
  • Репутация: +14630/-5
  • Сообщество PrestaShop
    • Просмотр профиля
/config/xml/modules_list.xml
Это файл содержит названия модулей, которые есть в стандарной сборке.
Дополнительные модули в этот файл не заносятся. Свои данные они сохраняют в бд.
22 Октябрь 2014, 15:40:24
Ответ #7
  • Новичок
  • *
  • Сообщений: 4
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
/config/xml/modules_list.xml
Это файл содержит названия модулей, которые есть в стандарной сборке.
Дополнительные модули в этот файл не заносятся. Свои данные они сохраняют в бд.

хм.. по коду, все так, и то что ты писал выше, все так и написано (кроме регистрации в hook header). у меня этот модуль работал в ps 1.5. Когда поставил в 1.6 перестал работать.. может есть ещё какие-нибудь нюансы?
22 Октябрь 2014, 15:55:53
Ответ #8
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Между prestashop 1.5 и 1.6 нет особой разницы в модулях. Хуки теже самые, только шаблоны другие и виджеты в админке.
Creating a PrestaShop 1.6 Module