Бортовой журнал Ктулху

Создание модуля / блока - пустышки для Prestashop

Однажды у меня возникла необходимость в отдельном блоке для Prestashop, выводящем произвольную информацию. Нужно было что-то очень простое, базовый каркас, блок-пустышка, котороый у меня не получилось найти.

 

 

Первым делом начал искать мануалы по созданию модулей Prestashop "для чайников", т.к. до этого именно созданием модулей не занимался. Нашелся один неплохой мануал, который послужил стартом (часть первая, часть вторая). Есть еще неплохое описание некоторых переменных, что может пригодиться в дальнейшем.

Т.к. в вышеуказанных статьях процесс создания хорошо расписан, приведу только основное.

Название модуля должно совпадать с названием папки и файлов в этой папке.

Например:

  • Название модуля - Test Module;
  • Название папки модуля - test;
  • Название файлов - test.php и test.tpl.

 

Берем основной кусок кода по первой ссылке:

<?php
class HelloModule extends Module {
public function __construct() {
$this->name="hellomodule";
parent::__construct();
$this->displayName = $this->l("Первый самостоятельный модуль");
$this->version = "0.1";
$this->tab = "Модули-заготовки";
$this->description = $this->l("Модуль, который будет приветствовать всех посетителей");
}
public function install() {
parent::install();
return true;
}
}
?>

В Prestashop все блоки и модули цепляются на так называемые крючки или хуки (теория заговоров хуков).

Добавляю эту возможность в модуль и заодно вывод шаблона.

public function install()
 {
 if (!parent::install())
 return false;
 if (!$this->registerHook('leftColumn'))
 return false;
 return true;
 }
/**
 * Returns module content for left hook
 *
 * @param array $params Parameters
 * @return string Content
 */
 
 function hookLeftColumn($params)
 {
 return $this->display(__FILE__, 'hellomodule.tpl');
 return false;
 }

Вариант с использованием БД MySQL.

Этим куском кода можно заменить в модуле соответствующий код инсталляции, при этом будет создаваться таблица в БД

public function install()
{
if (!parent::install() OR
!Db::getInstance()->execute('
CREATE TABLE ps_test (
'id' int(2) NOT NULL AUTO_INCREMENT,
'name' varchar(255),
PRIMARY KEY('id'))
ENGINE='._MYSQL_ENGINE_.' default CHARSET=utf8'))
return false;
return true;
}

 Как видно, этот код - всего лишь каркас, выводящий шаблон в нужном месте. При желании можно добавить сюда любую функциональность.

Код шаблона (*.tpl):

<div id="informations_block_left" class="block">
<h4>Название</h4>
<div class="block_content">
<p>содержимое</p>
</div>
</div>

Инструкция очень краткая, но она показывает какие-то основы для начинающих.

P.S. дополнительно:

Справочное руководство по разработке модуля PrestaShop 1.5

 

Вложения:
ФайлОписаниеРазмер файла:
Скачать этот файл (hellomodule.zip)hellomodule.zipАрхив с пустым модулем2 Кб