Добавить собственный значок в список заказов в Prestashop

Я хотел бы добавить новую кнопку в список заказов, но понятия не имею, как это сделать:

что бы я хотел сделать

Я хочу сделать так, чтобы новое обновление не удалило его.

Изменить: эта новая кнопка просто откроет новое окно браузера, поэтому она полностью независима от функций PrestaShop. Но я бы хотел поместить его в эту строку панели инструментов.

Спасибо за помощь!


person KMatko    schedule 13.04.2016    source источник
comment
В настоящее время ваш вопрос слишком общий. Объясните, пожалуйста, назначение этой кнопки.   -  person Florian Lemaitre    schedule 14.04.2016


Ответы (1)


Вы можете сделать это с помощью переопределений. Создайте файл с именем AdminOrdersController.php в папке overrides/controllers/admin/ и добавьте следующее:

<?php
class AdminOrdersController extends AdminOrdersControllerCore
{
    public function initPageHeaderToolbar()
    {
        parent::initPageHeaderToolbar(); // this will assign native icons

        // This is where you add you custom icon
        $this->page_header_toolbar_btn['my_custom_icon'] = array(
            'href' => self::$currentIndex.'&mycustomaction&token='.$this->token,
            'desc' => $this->l('My custom action', null, null, false),
            'icon' => 'process-icon-save'
        );
    }

    public function initProcess()
    {
        parent::initProcess();

        if (Tools::getIsset('mycustomaction')) {
            if ($this->tabAccess['view'] === '1') {
                $this->display = 'mycustomaction';
                $this->action = 'mycustomaction';
            }
            else
                $this->errors[] = Tools::displayError('You do not have permission to edit this.');
        }
    }

    public function initContent()
    {
        parent::initContent();

        if ($this->display == 'mycustomaction')
            $this->content.= $this->renderMyCustomAction();
    }

    public function renderMyCustomAction()
    {
        // this is where you render your custom page.
    }
}

Обратите внимание, что это быстрый макет. Хотя должно работать :)

ОБНОВЛЕНИЕ

Если вы просто хотите, чтобы значок открывал новую страницу, оставьте только метод initPageHeaderToolbar и укажите правильный атрибут href, вы можете удалить методы initProcess, initContent и renderMyCustomAction. Я оставлю их в своем исходном ответе на тот случай, если кто-то сочтет это полезным.

person Eihwaz    schedule 14.04.2016