将自定义图标添加到 Prestashop 中的订单列表视图
Add custom icon to orders' list view in Prestashop
我想在订单的列表视图中添加新按钮,但我不知道该怎么做:
我想以新升级不会删除它的方式来做。
编辑:这个新按钮只会打开新浏览器 window,因此它完全独立于 PrestaShop 功能。但是我想把它放在这个工具栏行中。
感谢您的帮助!
您可以使用覆盖来做到这一点。在 overrides/controllers/admin/
文件夹中创建一个名为 AdminOrdersController.php
的文件,并添加以下内容:
<?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
,[=16] =] 和 renderMyCustomAction
方法。我会把它们留在我原来的回复中,以防其他人觉得它有用。
我想在订单的列表视图中添加新按钮,但我不知道该怎么做:
我想以新升级不会删除它的方式来做。
编辑:这个新按钮只会打开新浏览器 window,因此它完全独立于 PrestaShop 功能。但是我想把它放在这个工具栏行中。
感谢您的帮助!
您可以使用覆盖来做到这一点。在 overrides/controllers/admin/
文件夹中创建一个名为 AdminOrdersController.php
的文件,并添加以下内容:
<?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
,[=16] =] 和 renderMyCustomAction
方法。我会把它们留在我原来的回复中,以防其他人觉得它有用。