Как создать модуль для prestashop? У меня задача написать експорт\импорт в xls для prestashop,как реализовать сам скрипт я более-менее понимаю,но вот интеграция в престашоп не выходит.Все как то очень запутано,контролеры,модели,класы,ООП.
Пытаюсь разобраться как создавать вкладку в админке для модуля при его установке.Ничего не выходит,в документации нету про бекофис и модули для бекофиса,на форумах сложно понять что к чему.
Вот пока такое name = 'productsxls';
$this->tab = 'administration';
$this->version = '1.0';
$this->author = 'Indus indusovich';
$this->need_instance = 0;
$this->ps_versions_compliancy = array('min' => '1.5', 'max' => '1.6');

parent::__construct();

$this->displayName = $this->l('Export/Import XLS');
$this->description = $this->l('This module can export and import your products in excel (xls format) table');

$this->confirmUninstall = $this->l('Are you sure you want to uninstall?');

if (!Configuration::get('productsxls'))
$this->warning = $this->l('No name provided');
}
public function install()
{
$parent_tab = new Tab();
$parent_tab->class_name = 'TabsAdminControllerName';
$parent_tab->module = $this->name;
$parent_tab->id_parent = 0;
$languages = Language::getLanguages(false);
foreach ($languages as $lang)
$parent_tab->name[$lang['id_lang']] = 'Tab Name';
$parent_tab->save();
}

public function uninstall()
{
if (!parent::uninstall() || !Configuration::deleteByName('productsxls'))
{
return false;
}
return true;
}

}
?>

21 Авг 2019 в 07:06
234 +1
0
Ответы
1

Для создания модуля в Prestashop и добавления вкладки в админке при его установке, необходимо выполнить следующие шаги:

Создайте папку с названием вашего модуля (например, productsxls) в директории modules в корне вашего Prestashop.

Создайте файл productsxls.php в вашей папке модуля и добавьте в него следующий код:

<?php
if (!defined('_PS_VERSION_'))
exit;
class ProductsXls extends Module
{
public function __construct()
{
$this->name = 'productsxls';
$this->tab = 'administration';
$this->version = '1.0';
$this->author = 'Indus indusovich';
$this->need_instance = 0;
$this->ps_versions_compliancy = array('min' => '1.5', 'max' => '1.6');
parent::__construct();
$this->displayName = $this->l('Export/Import XLS');
$this->description = $this->l('This module can export and import your products in excel (xls format) table');
$this->confirmUninstall = $this->l('Are you sure you want to uninstall?');
if (!Configuration::get('productsxls'))
$this->warning = $this->l('No name provided');
}
public function install()
{
if (!parent::install() ||
!$this->registerHook('header') ||
!$this->registerHook('backOfficeHeader') ||
!$this->createTab())
{
return false;
}
return true;
}
public function uninstall()
{
if (!parent::uninstall() ||
!$this->deleteTab())
{
return false;
}
return true;
}
public function createTab()
{
$parent_tab = new Tab();
$parent_tab->class_name = 'AdminProductsXls';
$parent_tab->module = $this->name;
$parent_tab->id_parent = Tab::getIdFromClassName('IMPROVE_YOUR_CLASS_NAME'); // Укажите родительскую вкладку
$languages = Language::getLanguages(false);
foreach ($languages as $lang)
{
$parent_tab->name[$lang['id_lang']] = 'Export/Import XLS';
}
if (!$parent_tab->save())
{
return false;
}
return true;
}
public function deleteTab()
{
$id_tab = Tab::getIdFromClassName('AdminProductsXls');
if ($id_tab)
{
$tab = new Tab($id_tab);
if (!$tab->delete())
{
return false;
}
}
return true;
}
}
?>

В файле productsxls.php укажите правильное имя класса и название родительской вкладки в методах createTab() и deleteTab().

В родительской вкладке укажите имя модуля, которое соответствует классу вашего модуля в файле productsxls.php.

После этого установите модуль в админке Prestashop и появится вкладка "Export/Import XLS".

Надеюсь, это поможет вам создать модуль для Prestashop и добавить вкладку в админке при установке модуля.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир