SugarCRM可在detailview中进行安装更改

时间:2012-10-10 05:07:13

标签: sugarcrm

我有一个简单的问题,但对我来说可能很严重,我制作了自定义字段并将它们全部添加到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中的限制)但我的要求是仅添加更新实例的详细视图中的更改。

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

我找到了糖的ModuleInstaller类的以下函数来通过manifest script添加或删除布局中的字段。这些函数会同时向editviewdetail 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);

希望它有所帮助。

曼索尔