1

我已经开发了一个我想包含在一个包中的 javascript 文件,并且我看到我可以使用自定义的 editviews.php 文件来添加它。这很好用。但是,我希望我的对方可以轻松安装它。我在 custom/extension/modules/leads/vardefs/ 文件夹中创建了一个文件,其中包含以下内容(并进行了快速修复):

$viewdefs['Leads']['EditView']['templateMeta']['includes'][]=array('file'=>'custom/modules/mme_form_js_functions.js');
$viewdefs['Leads']['QuickCreate']['templateMeta']['includes'][]=array('file'=>'custom/modules/mme_form_js_functions.js');

这似乎不起作用,所以如果有人对如何使用扩展框架执行此操作有一个快速建议,我很想知道答案,而不必解开糖 php 代码。

4

2 回答 2

1

这是我最终的做法(SuiteCRM 7.10):

首先,注册一个after_ui_frame 应用程序挂钩,即创建custom/Extension/application/Ext/LogicHooks/myhooks.php包含以下内容:

<?php

$hook_version = 1;  
$hook_array = Array();  
$hook_array['after_ui_frame'] = Array();  
$hook_array['after_ui_frame'][] = Array(99, 'Add my custom js',
                      'custom/Extension/application/mycustomizations.php', 'MyHooks', 'add_my_js');

然后创建custom/Extension/application/mycustomizations.php并添加您的 javascript 文件(您可以决定仅将其添加到某些模块/操作):

<?php

if(!defined('sugarEntry') || !sugarEntry) die('Not a valid entry point');

class MyHooks {

    function add_my_js($event, $args){
        if ($_REQUEST['module'] == 'Leads' && $_REQUEST['action'] == 'EditView') {
echo '<script type="text/javascript" src="custom/Extension/application/mycustom.js"></script>';
        }
    }
}

最后,做一个Quick repair and rebuild.

于 2018-06-21T08:36:59.137 回答
0

进行这些更改后,您是否进行了快速修复和重建?那将是必需的。另一件事是SugarCRM中的大写计数并且您的文件在错误的位置,它应该是

自定义/扩展/模块/Leads/Ext/Vardefs/YourFileName.php

于 2013-08-16T17:49:37.017 回答