kar*_*gen 3 php customization sugarcrm
如何通过代码或通过GUI更改每个子面板上的顺序?在Sugar 6中,用户可以简单地通过拖放每个模块下的子面板来改变顺序.据我所知,这在7.x中是不可能的.我试图改变
'order' => 1
Run Code Online (Sandbox Code Playgroud)
在
custom/Extension/modules/Opportunities/Ext/Layoutdefs/some_file.php
Run Code Online (Sandbox Code Playgroud)
没有运气......
更新: 正如UTAlan所说,从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,
);
Run Code Online (Sandbox Code Playgroud)
答案很长:
为什么'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,
..
}
Run Code Online (Sandbox Code Playgroud)
在视图中呈现的顺序基于每个bean-name在此文件中的"components"键内插入的顺序:
modules/Opportunities/clients/base/layouts/subpanels/subpanels.php
核心模块在机会的子面板文件中进行了硬编码.
| 归档时间: |
|
| 查看次数: |
2155 次 |
| 最近记录: |