Sugarcrm 如何在编辑模式下添加字段?糖衣

Sugarcrm 如何在编辑模式下添加字段?糖衣,sugarcrm,Sugarcrm,我用的是糖。在Opportunity的edit视图中,有一个+按钮和一个-按钮用于添加或删除电子邮件字段。这允许您在编辑视图中单击+并添加额外的电子邮件字段。如何将此类型的功能添加到其他自定义字段?感谢您在另一个模块中搜索添加n个相关条目的方法 据我所知,没有现成的解决方案 但我做了类似的事情,将另一个模块中的多个字段集成到editview中,以加快产品订单 在本例中,首先将javascript添加到{MODULE}/metadata/editviewdefs.php: $viewdefs[{M

我用的是糖。在Opportunity的edit视图中,有一个+按钮和一个-按钮用于添加或删除电子邮件字段。这允许您在编辑视图中单击+并添加额外的电子邮件字段。如何将此类型的功能添加到其他自定义字段?感谢您在另一个模块中搜索添加n个相关条目的方法

据我所知,没有现成的解决方案

但我做了类似的事情,将另一个模块中的多个字段集成到editview中,以加快产品订单

在本例中,首先将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创建的数据。例如,您可以通过$_请求['websites\u json']访问json。然后你可以用它做任何需要做的事情

在您只需要添加网站的情况下,您只需在主模块vardefs中添加一个文本字段来保存网站列表。因此,将其添加到模块的vardefs中以创建db字段:

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

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

我可以用递增的值自动执行此操作吗?这样就不会有有限数量的字段被编码了?你没有这样的限制,文本字段json可以容纳用户添加的相同数量的项目。有很多方法可以做到这一点。我将Textfield与JSON一起使用,因为我发现它很方便,但您也可以将数据作为js数组添加到表单中。看看include/SugarEmailAddress/SugarEmailAddress.js代码,它为电子邮件地址执行此操作。也许你想让sugar脚本适应你的需要。我将它存储到一个单独的模块中。因此,在我的案例中有n个订单条目。您可以选择json将任意多的对象存储到数据库中的textfield/varchar中。在某些情况下,搜索可能会很麻烦,但如果有网站,搜索应该会起作用。让搜索成为标准的糖类搜索方式。这意味着您将该字段添加到vardefs make repair and rebuild,以便在数据库中创建它。之后,将其添加为隐藏的文本字段,让它获取json作为内容,在您的案例中就是这样。它像所有其他字段一样存储。