更新:
正如乌塔兰所说,
从 7.5.0 版开始,这将成为 Sugar 库存功能的一部分:https://web.sugarcrm.com/support/issues/66590
到此为止,原因和解决方法如下:
'order' => 1 目前似乎不适用于 Sugar 7。
解决方案
复制文件
modules/Opportunities/clients/base/layouts/subpanels/subpanels.php
到
custom/modules/Opportunities/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,
);
长答案:
为什么 'order' => 1 不再起作用了?
内部include/MetaDataManager/MetaDataConverter.php:327:
public function toLegacySubpanelLayoutDefs(array $layoutDefs, SugarBean $bean) {
..
foreach ($layoutDefs as $order => $def) {
..
$return[$def['context']['link']] = array(
'order' => $order,
..
}
在视图中呈现的顺序取决于每个 bean-name 插入到此文件中的“components”键中的顺序:
modules/Opportunities/clients/base/layouts/subpanels/subpanels.php
核心模块被硬编码在 Opportunities 的子面板文件中。