我有一个简单的问题,但对我来说可能很严重,我制作了自定义字段并将它们全部添加到Leads模块的custom\modules\Leads\metadata\detailviewdefs.php
(详细视图布局)中,但问题是我必须制作一个更改的安装程序包。我管理自定义字段并将其复制到custom\Extension\modules\Leads\Ext\Vardefs
清单中。现在我不知道如何通过清单应用detailviewdefs更改(在detailview中添加新字段面板)。关键是不应更改现有的detailview布局,只需在其中添加新面板。
在我看来,可能的解决方案就像我应该在$ layout_defs数组$layout_defs["Leads"]["DetailView"] ['panels']['panel_name']
中添加代码并将其放在custom\Extension\modules\Leads\Ext\Layoutdefs\
中并通过清单复制Layoutdefs文件。我试过这个,但似乎没有工作。
如果可以,寻找智能解决方案分享。
增加:
即使我从Studio ->export Customizations
导出模块更改并在module builder
的其他实例中导入。它覆盖了较新实例中的所有先前自定义文件(自定义)(它不是SugarCRM中的限制)但我的要求是仅添加更新实例的详细视图中的更改。
答案 0 :(得分:2)
这是一个艰难的。我知道有两种选择。 1)向用户提供有关如何使用Studio将字段添加到布局的说明2)在post_install.php脚本中模仿Studio布局部署如何将字段插入任何给定布局(最佳做法是创建新的如果质量分布,你所有领域的面板。)
答案 1 :(得分:1)
我找到了糖的ModuleInstaller
类的以下函数来通过manifest script
添加或删除布局中的字段。这些函数会同时向editview
和detail view
添加/删除字段。只需在post_install / pre_install
中添加以下行,无需任何操作,
$installer_func = new ModuleInstaller();
$layoutAdditions = array('Users' => 'users_access');
在users_access
模块中添加Users
字段:
$installer_func->addFieldsToLayout($layoutAdditions);
从users_access
模块中删除Users
字段:
$installer_func->removeFieldsFromLayout($layoutAdditions);
希望它有所帮助。
曼索尔