哪里包括Sugarcrm

时间:2016-12-13 17:11:57

标签: javascript php include sugarcrm include-path

我一直在研究糖模块的一些自定义代码,我还不清楚在模块中调用我的javascript代码的位置。

目前我已将自定义JS放入include / javascript / popup_parent_helper.js

这在开发人员模式下工作正常,但在关闭时不起作用,不幸的是dveloper模式运行超慢

我做了很多研究,但是我得到了一些相互矛盾的结果。

有人告诉我,我应该把它包含在:

  • /模块/ [模块名] /

其他人说它应该在:

  • /定制/模块/ [模块名/
    • 还有一些将js添加为目录

请帮助我澄清这方面的正确结构以及我需要做出正确的包含声明的地方

澄清:

我们正在使用SugarCrm 6.5x

在这种情况下,JS仅用于一个模块。

它正在快速创建视图和编辑视图中使用

2 个答案:

答案 0 :(得分:0)

如果任何模块都可以访问javascript,您可以使用以下技术创建一个新的JSGrouping并引入自定义js文件: http://support.sugarcrm.com/Documentation/Sugar_Developer/Sugar_Developer_Guide_7.6/Extension_Framework/JSGroupings/#Creating_New_JSGroupings

听起来您希望它与您的自定义模块隔离,因此您应该扩展所需的视图。如果要扩展记录视图,请在custom / modules / -your_module- / clients / base / views / record /

中创建一个名为record.js的新文件。
({
extendsFrom: 'RecordView',

initialize: function(options) {
    this._super('initialize', [options]);
    this.doSomething();
},

doSomething: function(){
    console.log("Help you I will");
},

...

})

https://developer.sugarcrm.com/2014/02/10/extending-sugar-7-record-view/

答案 1 :(得分:0)

我也遇到了类似的问题(JS应该用于编辑和快速创建表单)但是在制作了一些RnD之后我按照以下方式实现了它:

\custom\modules\<modulename>\views\view.edit.php

<?php
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');

require_once('include/MVC/View/views/view.edit.php');

class {moduleName}ViewEdit extends ViewEdit {

      public function __construct() {
        parent::ViewEdit();
        $this->useForSubpanel = true; // this variable specifies that these changes should work for subpanel
       // / $this->useModuleQuickCreateTemplate = true; // quick create template too
    }

    function display(){ ?>
        <?php

                 $jsscript = <<<EOQ
                            <script>
                                    Your JS code
                            </script>
EOQ;

        parent::display();
           echo $jsscript;     //echo the script

    }   

}
?>