如何通過代碼或通過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