如何在编辑模式下添加字段? SugarCRM CE

How to add a field while in edit mode? SugarCRM CE

我正在使用 Sugar CRM CE。在机会的编辑视图中,有一个 + 按钮和一个 - 按钮用于添加或删除电子邮件字段。这允许您在编辑视图中单击 + 并添加一个额外的电子邮件字段。如何将此类功能添加到其他自定义字段?谢谢

您正在寻找一种在另一个模块中添加 n 个相关条目的方法。

据我所知,没有开箱即用的解决方案。

但我做了类似的事情,将另一个模块的多个字段集成到编辑视图中,以加快产品订单速度。

在您的情况下,首先将 javascript 添加到 {MODULE}/metadata/editviewdefs。php:

$viewdefs[{MODULE}] = array (
  'EditView' => array (
    'includes' => array (
        array (
          'file' => 'modules/{MODULE}/js/selectScript.js'
     )

在这个文件 modules/{MODULE}/js/selectScript.js 中你放一些 javascript 来生成按钮(即通过 jquery 在描述字段之后定位它们)。该脚本应将所有相关信息添加到一个隐藏的文本字段中(即命名为 websites_json),其中包含例如 JSON,如下所示:

{'websites' : ['www.somethin.it', 'www.somethingelse.com']}

如果您必须处理此信息以在另一个模块中创建多个对象,您可以在 (custom/) modules/{MODULE}/Save.php 中添加一个文件,您可以在其中处理数据 javascript 通过创建相关条目创建。例如,您可以通过 $_REQUEST['websites_json'] 访问 json。然后你可以用它做任何需要做的事情。

在您只有要添加的网站的情况下,您可以简单地在主要模块 vardefs 中添加一个文本字段来保存网站列表。因此,将其添加到模块的 vardefs 中以创建数据库字段:

$dictionary['{MODULE}'] = array(
    'table' => '{module}',
    'fields' => array(
        'websites_json' => array (
            'name' => 'websites_json',
            'vname' => 'LBL_WEBSITES_JSON',
            'type' => 'text',
        ),

该字段会自动保存。在重新进入 editview 时,您应该重新创建网站列表以对其进行编辑,在 detailview 中,您需要处理 json 以将网站显示为列表。