Автор Тема: Prestashop FAQ - как добавить ссылку на свою страницу в панели управления  (Прочитано 688 раз)

23 Июля 2015, 10:27:09
  • Ветеран
  • *****
  • Сообщений: 105584
  • Репутация: +39547/-0
    • Просмотр профиля
    • Webstudio UwK
В 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
23 Июля 2015, 10:35:40
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 105584
  • Репутация: +39547/-0
    • Просмотр профиля
    • Webstudio UwK
Если вы хотите, переопределить стандарный шаблон prestashop для админпанели, то Вы можете сделать это в вашем модуле.
Создайте свой шаблон в папке:
/modules/mymodule/views/templates/admin/...

Cоздание интернет сайтов Webstudio UwK
23 Июля 2015, 10:49:26
Ответ #2
  • Ветеран
  • *****
  • Сообщений: 105584
  • Репутация: +39547/-0
    • Просмотр профиля
    • 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
23 Июля 2015, 11:30:12
Ответ #3
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 33019
  • Репутация: +26761/-0
    • Просмотр профиля
Способов много. Я делаю так.

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
23 Июля 2015, 23:29:58
Ответ #4
  • Новичок
  • *
  • Сообщений: 10
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля