4

我有一个简单的问题,但对我来说可能很严重,我制作了自定义字段并将它们全部添加到custom\modules\Leads\metadata\detailviewdefs.phpLeads 模块的(详细视图布局)中,但问题是我必须对安装程序包进行更改。我使用自定义字段进行管理并将它们复制到custom\Extension\modules\Leads\Ext\Vardefs通过清单中。现在我不知道如何通过清单应用 detailviewdefs 更改(在 detailview 中添加新字段面板)。关键是不应更改现有的详细视图布局,而应仅在其中添加一个新面板。

在我看来,可能的解决方案是我应该在 $layout_defs 数组中添加代码$layout_defs["Leads"]["DetailView"] ['panels']['panel_name']并将其放入custom\Extension\modules\Leads\Ext\Layoutdefs\并通过清单复制 Layoutdefs 文件。我试过这个,但似乎没有工作。如果可以的话,寻找一个聪明的解决方案分享。

另外: 即使我导出模块更改Studio ->export Customizations并在其他实例中使用module builder. 它覆盖了较新实例中所有以前的自定义文件(自定义)(这不是 SugarCRM 的限制),但我的要求是仅在较新实例的详细视图中添加更改。

4

2 回答 2

2

这是一个艰难的。我知道有两种选择。1) 向用户提供有关如何使用 Studio 将字段添加到布局的说明 2) 在 post_install.php 脚本中模拟 Studio 布局部署如何将字段插入到任何给定布局中(最佳做法是创建一个新的如果大规模分发,则为您的所有领域提供面板)。

于 2012-10-10T23:40:31.077 回答
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);

希望它有所帮助。

曼苏尔

于 2013-06-18T09:35:33.033 回答