如何通过代码或通过GUI更改每个子面板上的顺序? 在Sugar 6中,用户只需通过拖放每个模块下的子面板即可更改顺序。 从我可以看到这是不可能在7.x. 我曾试图改变在SugarCRM 7中更改子面板顺序
'order' => 1
在
custom/Extension/modules/Opportunities/Ext/Layoutdefs/some_file.php
没有运气可言..
如何通过代码或通过GUI更改每个子面板上的顺序? 在Sugar 6中,用户只需通过拖放每个模块下的子面板即可更改顺序。 从我可以看到这是不可能在7.x. 我曾试图改变在SugarCRM 7中更改子面板顺序
'order' => 1
在
custom/Extension/modules/Opportunities/Ext/Layoutdefs/some_file.php
没有运气可言..
UPDATE: 作为UTAlan指出, 这将成为存量部分功能糖7.5.0版本开始: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,
);
龙答:
为什么是 '为了'=> 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,
..
}
是在视图中呈现的次序是根据何种顺序各豆名称被插入该文件中的“components'键内: modules/Opportunities/clients/base/layouts/subpanels/subpanels.php
核心模块在机会的子面板文件内硬编码。
这将成为Sugar 7.5.0版本的库存功能的一部分:https://web.sugarcrm.com/support/issues/66590
不错的发现。你有没有提出一个错误报告/建议修复? –
@MatthewPoer我发现了这个问题的更优雅的解决方案。检查更新的答案。 – karlingen