编程语言
首页 > 编程语言> > php – 更改SugarCRM 7中的子面板顺序

php – 更改SugarCRM 7中的子面板顺序

作者:互联网

如何通过代码或通过GUI更改每个子面板上的顺序?
在Sugar 6中,用户可以简单地通过拖放每个模块下的子面板来改变顺序.
据我所知,这在7.x中是不可能的.
我试图改变

'order' => 1 

custom/Extension/modules/Opportunities/Ext/Layoutdefs/some_file.php 

没有运气……

解决方法:

更新:
正如UTAlan所说,
从版本7.5.0:https://web.sugarcrm.com/support/issues/66590开始,这将成为Sugar的库存功能的一部分

在此之前,这是原因和解决方案:

‘order’=> 1,目前似乎不适用于Sugar 7.

复制文件

模块/机会/客户端/碱/布局/子面板/ subpanels.php

定制/模块/机会/客户端/碱/布局/子面板/ 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不再工作了?

内部包含/ 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”键内插入的顺序:
模块/机会/客户端/碱/布局/子面板/ subpanels.php

核心模块在机会的子面板文件中进行了硬编码.

标签:sugarcrm,php,customization
来源: https://codeday.me/bug/20190830/1771014.html