в файле 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(); //содержимое контроллера } }