Не используйте название модулей с общими фразами, "Exclusive" плохой вариант, возможно в базе аддонов Preatashop уже есть модуль с таким же названием, лучше - "AlexExclusive", "homeExclusive" и .т.д.
Нужно что бы название модуля, папки, основного файла php и класса совпадали. AlexExclusive/AlexExclusive.php с классом
class AlexExclusive extends Module.
>Не совсем понял зачем новые хуки создавать, если мне в имеющиеся нужно разместить?
Вы не создаете хуки, а размещаете шаблоны в определенные хуки (места, если так можно выразится), или по другому, hook это крюк на который вы подцепляете свой шаблон с выводом данных.
"!$this->registerHook('displayHomeTab') ||" это как раз и попытка зарегистрироваться в хуке displayHomeTab.
В функции install():
return false;
return true;
вы промахнулись с "return false;" переместите в if.
Работа с переменной EXCLUSIVE_NAME лишняя удалите строки с Configuration::get('EXCLUSIVE_NAME') и Configuration::updateValue('EXCLUSIVE_NAME', 'my friend').
public function hookDisplayHomeTab($params)
{
return $this->display(__FILE__, 'AlexExclusive_tab.tpl');
}
public function hookDisplayHomeTabContent($params)
{
$lang_id = (int)Context::getContext()->language->id;
$category = new Category(777, $lang_id); // 777 - желаемая категория "эксклюзива"
$products = $category->getProducts($lang_id, 1, 8, 'position'); // 1 - номер страницы (оставить таким же), 8 - количество продуктов на страницу, 'position' - сортировка по позиции в категории
$this->smarty->assign(
array(
'products' => $products,
'homeSize' => Image::getSize(ImageType::getFormatedName('home')), //размер изображения, оставить таким же
)
);
return $this->display(__FILE__, 'AlexExclusive_content.tpl');
}
в AlexExclusive_tab.tpl
<li><a data-toggle="tab" href="#AlexExclusive" id="AlexExclusive_tab">{l s='Exclusive' mod='AlexExclusive'}</a></li>
в AlexExclusive_content.tpl
{if isset($products) && $products}
{include file="$tpl_dir./product-list.tpl" class='tab-pane' id='AlexExclusive_content'}
{else}
<ul id="AlexExclusive_content" class="tab-pane">
<li class="alert alert-info">{l s='No exclusive products at this time.' mod='AlexExclusive'}</li>
</ul>
{/if}