Prestashop FAQ - как добавить ссылку на свою страницу в панели управления

Автор Виталий, 23 июля 2015, 10:27:09

« назад - далее »

Виталий

В prestashop можно добавить ссылку в меню админки для своей страницы 2-мя способавми.

1. В своем модуле.
Для этого нужно добавить функции установки и удаления

private function installTab() {
        $tab = new Tab();
        $tab->name[$this->context->language->id] = $this->l("My tab");
        $tab->class_name = 'AdminMymodule';
        $tab->module = 'mymodule';
        $tab->id_parent = 0;
        if (!$tab->add())
                return false;

        return true;
    }

private function uninstallTab() {
        $idTab = Tab::getIdFromClassName('AdminMymodule);
        if ($idTab != 0)
        {
            $tab = new Tab($idTab);
            $tab->delete();
            return true;
        }

        return false;
}


2. В админке
Панель управления > Администрирование > Пункт меню
Добавить пункт меню.
Указать модуль и класс.
Cоздание интернет сайтов Webstudio UwK

Виталий

Если вы хотите, переопределить стандарный шаблон prestashop для админпанели, то Вы можете сделать это в вашем модуле.
Создайте свой шаблон в папке:
/modules/mymodule/views/templates/admin/...

Cоздание интернет сайтов Webstudio UwK

Виталий

Создание контроллера для своей страницы AdminMymoduleController.php
class AdminMymoduleController extends AdminController
{
public function initContent()
        {
                parent::initContent();
                $smarty = $this->context->smarty;

                $smarty->assign('mypage', 'My page');

        }
}
Cоздание интернет сайтов Webstudio UwK

coder

Способов много. Я делаю так.

1. Контроллер /mymodule/controllers/admin/AdminMymoduleController.php
<?php
class AdminMymoduleController extends ModuleAdminController
{
public function __construct()
       {
               
$this->table = 'mymodule_tab';
$this->lang = true;

$this->context = Context::getContext();

$this->fieldImageSettings = array('name' => 'image', 'dir' => 'mymodule');

parent::__construct();
}

       public function
postProcess()
{
if (Tools::isSubmit('submitAdd'.$this->table))
{
// Create object
...
// Save object
...
}
}


2. Класс модуля /mymodule/mymodule.php
<?php
class Mymodule extends Module
{
       public function
__construct()
       {
              ....
       }

       public function
install()
{
               ....
               
// Install Tabs
       $parent_tab = new Tab();
       $parent_tab->name[$this->context->language->id] = $this->l('My Tab');
       $parent_tab->class_name = 'AdminMyмodule';
       $parent_tab->id_parent = 0;
       $parent_tab->module = $this->name;
       $parent_tab->add();
               ...
       }

       public function
displayForm()
{
               ...
return $this->display(__FILE__, 'views/templates/admin/content.tpl');
}


3. Шаблон страницы /mymodule/views/templates/admin/content.tpl

Stake1988