в файле modules/ваш_модуль/ваш_модуль.php в функции install добавляем
$tab = new Tab();
$tab->class_name = 'AdminCsync';
$tab->id_parent = 0;
$tab->module = $this->name;
$tab->name[(int) (Configuration::get('PS_LANG_DEFAULT'))] = $this->l('Синхронизация с 1С');
if (!$tab->add()) return false;
За вывод информации на экран отвечает контроллер$tab->class_name = 'AdminCsync'- наименование создаваемого в модуле контроллера.
$tab->id_parent = 0- ставим 0, еслихотим чтобы наша вкладка отображалась в корне. Если же хотим поместить вкладку напрмер в "Каталог" пользуемся следующим методом
Tab::getIdFromClassName('AdminCatalog');
и строка примет вид $tab->id_parent =Tab::getIdFromClassName('AdminCatalog');Идем далее. $tab->name[(int) (Configuration::get('PS_LANG_DEFAULT'))] = $this->l('Синхронизация с 1С')
- строка отвечает за имя вкладки, непосредственно эта функция $this->l('Синхронизация с 1С')
Для деинсталяции вкладки в функцию uninstall прописываем
$tab = new Tab(Tab::getIdFromClassName('AdminCsync'));
if (!$tab->delete())
return false;К созданной нами вкладке можно добавить иконку, для этого создаем файл стилей, например modules/ваш_модуль/css/ваш_модуль.css. Или открываем существующий для Вашего модуля.В нем добавляем иконку:
.icon-AdminCsync:before {
content: 'f1c0';
}где AdminCsync наименование созданного контролера, а f1c0 сама иконка в юникоде. Если вы создавали новый файл стилей, то не забываем инициализировать его. для этого в файле modules/ваш_модуль/ваш_модуль.php в функции install регистрируем хук $this->registerHook('displayBackOfficeHeader');
затем добавлем созданный нами сss, штатным методом Prestashop добавив в файле modules/ваш_модуль/ваш_модуль.php в код вызов:public function hookDisplayBackOfficeHeader()
{
if (method_exists($this->context->controller, 'addCSS'))
$this->context->controller->addCSS(($this->_path).'css/ecm_csync.css', 'all');
}
Теперь создадим сам конроллер. Он должен находиться в папке modules/ваш_модуль/controllers/admin и называться как задано в функции install , в нашем случае AdminCsync.php , и иметь вид<?php
if (!defined('_PS_VERSION_'))
exit;
class AdminCsyncController extends AdminController {
public function __construct() {
parent::__construct();
//содержимое контроллера
}
}