Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 更改SugarCRM 7中的子面板顺序_Php_Customization_Sugarcrm - Fatal编程技术网

Php 更改SugarCRM 7中的子面板顺序

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

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

'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,
    ..
 }