模块配置工具栏按钮不';在Prestashop 1.6中未显示
我正在努力使我的定制prestashop模块适应prestashop 1.6。配置页面上的工具栏按钮在1.6中没有显示(它们确实在1.5中显示),并且没有给出错误消息 1.5中的工具栏: 1.6版中没有工具栏 有人知道如何在prestashop 1.6中显示它们吗?这是我声明工具栏的代码片段:模块配置工具栏按钮不';在Prestashop 1.6中未显示,prestashop,prestashop-1.6,Prestashop,Prestashop 1.6,我正在努力使我的定制prestashop模块适应prestashop 1.6。配置页面上的工具栏按钮在1.6中没有显示(它们确实在1.5中显示),并且没有给出错误消息 1.5中的工具栏: 1.6版中没有工具栏 有人知道如何在prestashop 1.6中显示它们吗?这是我声明工具栏的代码片段: $helper = new HelperForm(); // Module, token and currentIndex $helper->module = $this; $
$helper = new HelperForm();
// Module, token and currentIndex
$helper->module = $this;
$helper->name_controller = $this->name;
$helper->token = Tools::getAdminTokenLite('AdminModules');
$helper->currentIndex = AdminController::$currentIndex.'&configure='.$this->name;
// Language
$helper->default_form_language = $default_lang;
$helper->allow_employee_form_lang = $default_lang;
// Title and toolbar
$helper->title = $this->displayName;
$helper->show_toolbar = true;
$helper->toolbar_scroll = true; // yes - > Toolbar is always visible on the top of the screen.
$helper->submit_action = 'delete'.$this->name;
$this->uri = ToolsCore::getCurrentUrlProtocolPrefix() .$this->context->shop->domain_ssl.$this->context->shop->physical_uri;
$helper->toolbar_btn = array(
'import' => array(
'desc' => $this->l('Descargar CSV'),
'href' =>$this->uri. 'modules/' . $this->getName() . '/excel.csv',
),
'delete' => array(
'desc' => $this->l('Borrar CSV'),
'href' => AdminController::$currentIndex.'&configure='.$this->name.'&delete'.$this->name.
'&token='.Tools::getAdminTokenLite('AdminModules'),
),
'back' => array(
'href' => AdminController::$currentIndex.'&token='.Tools::getAdminTokenLite('AdminModules'),
'desc' => $this->l('Back to list')
)
);
提前感谢。在做了一些研究之后,我尝试使用HelperList而不是HelperPerform,工具栏按钮确实出现在列表标题处,而不是绿色区域 另一方面,HelperForm提供了一个“按钮”数组(我不确定这是否是Prestashop 1.6的更改,还是1.5.x版本中的更改),它在表单下方的某种工具栏中显示在提交按钮的左侧。
我想工具栏的行为和用途随着新的后端主题而改变。我也在帮助列表中搜索显示按钮的方式,但我希望它们出现在面板页脚中 唯一一个这样工作的按钮是
back
按钮
$helperList->toolbar_btn = array(
'back' => array(
'href' => $this->context->link->getAdminLink('AdminModules').'&configure='.$this->name.'&add_new_feed=1',
'desc' => $this->l('New Feed')
));
显然,缺点在于icon,它与目的不符。我一直在帮助修复我们为prestashop开发的一个模块,这是我们发现的错误之一。如果要在绿色栏中显示任何信息,必须使用属性$page\u header\u toolbar\u btn来扩展位于“/classes/controller”的AdminCrontrollerCore类,直到prestashop团队修复我将报告的错误。如果你想让你的插件与旧版本兼容,你必须使用_PS_version全局变量 编辑:拉取请求以解决错误。 下面是我的示例代码:
class AdminOrdersController extends AdminOrdersControllerCore
{
.....
public function initToolbar()
{
if ($this->display == 'view' && $this->_order->module == 'mymodule') {
if ($this->_mymodule->isOrderComplete($this->_order)) {
$mymodule_return = array(
'short' => $this->l('mymodule account'),
'href' => self::$currentIndex . '&id_order=' . $this->_order->id . '&vieworder&return_mymodule=1&token=' . $this->token,
'desc' => $this->l('return to mymodule'),
'class' => 'process-icon-standardreturn mymodule-return',
);
$mymodule_partial_return = array(
'short' => 'return customer mymodule account',
'href' => '#',
'desc' => $this->l('return to mymodule'),
'class' => 'process-icon-partialreturn',
);
//Depend of the prestashop version, we use $toolbar_btn[]
// or we use $page_header_toolbar_btn[]
if (_PS_VERSION_ > '1.5') {
$mymodule_return['class'] = "process-icon-delete mymodule-return";
$this->page_header_toolbar_btn['return_mymodule'] = $mymodule_return;
} else {
$this->toolbar_btn['return_mymodule'] = $mymodule_return;
$this->toolbar_btn['return_mymodule_partial'] = $mymodule_partial_return;
}
}
}
}
}
class AdminOrdersController extends AdminOrdersControllerCore
{
.....
public function initToolbar()
{
if ($this->display == 'view' && $this->_order->module == 'mymodule') {
if ($this->_mymodule->isOrderComplete($this->_order)) {
$mymodule_return = array(
'short' => $this->l('mymodule account'),
'href' => self::$currentIndex . '&id_order=' . $this->_order->id . '&vieworder&return_mymodule=1&token=' . $this->token,
'desc' => $this->l('return to mymodule'),
'class' => 'process-icon-standardreturn mymodule-return',
);
$mymodule_partial_return = array(
'short' => 'return customer mymodule account',
'href' => '#',
'desc' => $this->l('return to mymodule'),
'class' => 'process-icon-partialreturn',
);
//Depend of the prestashop version, we use $toolbar_btn[]
// or we use $page_header_toolbar_btn[]
if (_PS_VERSION_ > '1.5') {
$mymodule_return['class'] = "process-icon-delete mymodule-return";
$this->page_header_toolbar_btn['return_mymodule'] = $mymodule_return;
} else {
$this->toolbar_btn['return_mymodule'] = $mymodule_return;
$this->toolbar_btn['return_mymodule_partial'] = $mymodule_partial_return;
}
}
}
}
}