6

我有一个自定义模块样本管理。我想在 editviewdef.php 中创建一个文件类型字段,以便我可以上传文件并在需要时从详细视图中下载它。有人能告诉我如何执行此任务的步骤吗?

4

2 回答 2

2

如果您通过 Module Builder 创建模块,只需将 'file' => 1 添加到 $config 变量 (config.php) 中的 'templates' 数组中。然后您就可以在您的 editviewdefs.php 中添加一个新的上传文件字段:

      1 =>
      array (
        'name' => 'uploadfile',
        'displayParams' =>
        array (
          'onchangeSetFileNameTo' => 'document_name',
        ),
      ),

不要忘记将表单和 javascript 元素添加到 editviewdefs.php 中的 templateMeta 数组:

  'form' =>
  array (
    'enctype' => 'multipart/form-data',
    'hidden' =>
    array (
    ),
  ),
  'javascript' => '<script type="text/javascript" src="include/javascript/popup_parent_helper.js?s={$SUGAR_VERSION}&c={$JS_CUSTOM_VERSION}"></script>
    <script type="text/javascript" src="include/javascript/sugar_grp_jsolait.js?s={$SUGAR_VERSION}&c={$JS_CUSTOM_VERSION}"></script>
    <script type="text/javascript" src="modules/Documents/documents.js?s={$SUGAR_VERSION}&c={$JS_CUSTOM_VERSION}"></script>',

您还需要将uploadfile 字段添加到detailvidefs.php:

      1 =>
      array (
        'name' => 'uploadfile',
        'displayParams' =>
        array (
          'link' => 'uploadfile',
          'id' => 'id',
        ),
      ),

希望这可以帮助!

于 2013-05-29T16:51:30.397 回答
1

您需要做的是通过以下方式创建自定义 SugarField 类型:

  1. 使用 include/SugarFields/Fields 中的字段类型名称创建一个新文件夹
  2. 在该文件夹中,您需要创建一个 .tpl 文件来描述如何为每种视图类型设置字段(因此您将拥有 EditView.tpl、DetailView.tpl 以及您将使用该字段的任何其他视图) . 我会在 /include/SugarFields/Fields/Text 中寻找一个很好的例子来说明你应该创建什么 tpls。
  3. 使用该类型创建一个新字段,或者使用 vardefs 或 field_meta_data 表(用于自定义字段)将字段类型从现有类型更改为新类型。

我可以肯定地验证从 SugarCRM 6.4.1 开始存在文件字段类型,一旦您定义了该字段的布局方式,您应该能够与 CRM 的其余部分无缝地使用它。

于 2012-02-29T12:34:19.277 回答