Php 更改SugarCRM 7中的子面板顺序
如何通过代码或GUI更改每个子面板上的顺序? 在Sugar6中,用户可以通过拖放每个模块下的子面板来更改顺序。 据我所见,这在7.x中是不可能的。 我试图改变Php 更改SugarCRM 7中的子面板顺序,php,customization,sugarcrm,Php,Customization,Sugarcrm,如何通过代码或GUI更改每个子面板上的顺序? 在Sugar6中,用户可以通过拖放每个模块下的子面板来更改顺序。 据我所见,这在7.x中是不可能的。 我试图改变 'order' => 1 在 一点运气都没有。更新: 正如尤塔兰所说, 从7.5.0版开始,这将成为Sugar库存功能的一部分: 在此之前,原因和解决方案如下: “订单”=>1,目前似乎对糖7不起作用 解决方案 复制文件 modules/opportunity/clients/base/layouts/subpanels/sub
'order' => 1
在
一点运气都没有。更新:
正如尤塔兰所说,
从7.5.0版开始,这将成为Sugar库存功能的一部分:
在此之前,原因和解决方案如下:
“订单”=>1
,目前似乎对糖7不起作用
解决方案
复制文件
modules/opportunity/clients/base/layouts/subpanels/subpanels.php
到
custom/modules/opportunity/clients/base/layouts/subpanels/subpanels.php
现在,将自定义子面板定义添加到数组的开头,或按您希望的任何顺序添加
现在,我的示例如下所示:
$viewdefs['Opportunities']['base']['layout']['subpanels'] = array(
'components' => array(
// This is my custom module
array(
'layout' => 'subpanel',
'label' => 'LBL_OPPORTUNITIES_FOOBAR_TITLE',
'context' => array(
'link' => 'opportunities_foobar_1',
),
),
.. // Code ommited
array(
'layout' => 'subpanel',
'label' => 'LBL_EMAILS_SUBPANEL_TITLE',
'context' => array (
'link' => 'archived_emails',
),
),
),
'type' => 'subpanels',
'span' => 12,
);
长答案:
为什么“订单”=>1不再有效
内部包含/MetaDataManager/MetaDataConverter.php:327
:
public function toLegacySubpanelLayoutDefs(array $layoutDefs, SugarBean $bean) {
..
foreach ($layoutDefs as $order => $def) {
..
$return[$def['context']['link']] = array(
'order' => $order,
..
}
视图中呈现的顺序基于每个bean名称插入此文件中的“组件”键的顺序:
modules/opportunity/clients/base/layouts/subpanels/subpanels.php
核心模块在Opportunity子面板文件中硬编码。这将成为Sugar 7.5.0版开始的库存功能的一部分:Nice find。你有没有写错误报告/建议对此进行修复?@MatthewPoer我找到了一个更优雅的解决方案。检查更新的答案。
public function toLegacySubpanelLayoutDefs(array $layoutDefs, SugarBean $bean) {
..
foreach ($layoutDefs as $order => $def) {
..
$return[$def['context']['link']] = array(
'order' => $order,
..
}