将自定义图标添加到订单' Prestashop中的列表视图

时间:2016-04-13 19:53:18

标签: button prestashop orders

我想在订单列表视图中添加新按钮,但我不知道该怎么做:

what I would like to do

我希望新升级不会删除它。

编辑:这个新按钮只会打开新的浏览器窗口,因此它完全独立于PrestaShop功能。但我想把它放在这个工具栏中。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

你可以用覆盖来做到这一点。在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属性,则可以删除initProcessinitContentrenderMyCustomAction方法。我将把它们保留在我的原始回复中,以防其他人认为它有用。