Детальный анализ модуля Prestashop 1.5 (часть 2)
Летний период-пора отпусков и отдыха. Но я не хотел бы надолго задерживать моих читателей в изучении вопроса создании модуля.
Созданный нами основной файл модуля mymodule.php помещенный в одноименную папку можно залить на
сайт или лучше на виртуальный хостинг в папку modules и посмотреть результат нашей работы. Зайдите в
раздел модулей в бэк-офисе. Так как модуль мы зарегистрировали в категории front_office_features,
то искать его будем в разделе “модули для фронт-офиса”.
Мы можем даже установить этот модуль и зайти в настройки модуля.
Затем нам необходимо указать расположение модуля в зарегистрированном хуке, для этого кликаем на
menage hook (управление хуками) и нажать на кнопку transplantant a module (расположить модуль)
Попадаем в редактор расположения модулей в разделе Hook info(хуки) выбираем место отображения
модуля. Тут надо быть внимательным, модуль можно расположить только в зарегистрированных хуках в
основном файле модуля. Мы регистрировали в левом и правом хуке, соответственно и выбор у нас
только из левого и правого хука.
Но без шаблона модуля отображающего его на главной странице, мы увидим сообщение No template
found for module mymodule (не найден шаблон для модуля mymodule)
Создадим этот файл, который должен быть с расширение .tpl и лучше что бы он имел имя модуля
mymodule.tpl. В версии ПрестаШоп 1.5 этот файл должен находиться в папке
mymodule/views/templates/hook/mymodule.tpl
Запишем следующий код в шаблоне модуля. Привожу его с комментариями. Внешне он напоминает HTML
код с переменными Smarty
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
<!-- Block mymodule -->
<div id="mymodule_block_left" class="block">// помещаем модуль в div и назначаем ему класс,
<h4>Welcome!</h4>// в тегах указано название блока модуля, так же может быть переменной smarty
<div class="block_content">// содержание модуля
<p>Hello, // это надпись для ориентира постоянная для примера
{if isset($my_module_name) && $my_module_name}// проверка назначения новой переменной
{$my_module_name}
{else}
my friend// если новую переменную не назначили в настройках, выводим сообщение
//указанное по умолчанию из основного файла модуля
{/if}
!
</p>
<ul>
<li><a href="{$my_module_link}" title="Click this link">Click me!</a></li>// ссылка
//назначенная в основном модуле переменной my_module_link
</ul>
</div>
</div>
<!-- /Block mymodule -->
|
По поводу переменных smarty хочу напомнить блок из основного модуля mymodule.php отвечающего за
вывод информации модуля во фронт-офисе
|
1
2
3
4
5
6
7
8
9
10
11
12
|
public function hookDisplayLeftColumn($params)
{
$this->context->smarty->assign(
array(
'my_module_name' => Configuration::get('MYMODULE_NAME'),
'my_module_link' => $this->context->link->getModuleLink('mymodule', 'display')
)
);
return $this->display(__FILE__, 'mymodule.tpl');
}
|
переменная ‘my_module_name’ => Configuration::get(‘MYMODULE_NAME’), по умолчанию имеет значение
my frends
‘my_module_link’ => $this->context->link->getModuleLink(‘mymodule’, ‘display’) об этой переменной, которая указывает ссылку для шаблона модуля в новой странице будет сказано позже.
Поместив файл шаблона в указанную выше папку и открыв страницу нашего сайта видим как наш модуль
выглядит на главной странице.
Попробуйте в настройках модуля изменить слово my frend на свое, и посмотрите на эту магию кода на
главной странице.
P.S.
Что бы не возвращаться к вопросу о файле config.xml сразу отмечу в этой заметке, что этот
файл создается автоматически, как только вы поместили папку модули с основным файлом в директорию
модулей магазина. Посмотрите его код и вы надеюсь сами поймете его назначение.
Продолжение следует
До встречи на страницах webnewbie.ru










Leave a Reply