我一直在为糖模块制作一些自定义代码,并且不清楚将我的javascript代码放在模块中调用的位置。
目前,我已经将自定义JS放入include/javascript/popup_parent_helper.js
这在开发人员模式下正常工作,但是当关闭该模式时不起作用,不幸的是Dloveer模式运行超级慢
我做了很多研究,并且得到了一些矛盾的结果。
有人告诉我,我应该将其包括在:
中- /模块/[MODULENAME]/
其他人说应该在:
- /自定义/模块/[MODULENAME/
- 还有一些在将JS添加为目录 的进一步
请帮助我澄清适当的结构,以及我需要做适当的陈述
澄清:
我们使用的是糖6.5x
在这种情况下,JS仅用于一个模块。
它正在快速创建视图和编辑视图
如果应通过任何模块访问JavaScript,则可以创建一个新的JSGrouping并使用以下技术来启动自定义JS文件:http://support.sugarcrm.com/documentation/sugar_developer/sugar_developer_guide_7.6/extension_framework/jsgroupings/#creating_new_new_jsgroupings
听起来您希望将其隔离到您的自定义模块中,因此您可能应该扩展所需的视图。如果您要扩展记录视图,请创建一个新文件,称为record.js在custom/模块/-your_module-/clients/base/base/views/record/
({
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/
我也遇到了类似的问题(js应该是用于编辑和QuickCreate表单),但是在进行了一些RND之后,我根据以下方式实现了它:
custommodules<modulename>viewsview.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
}
}
?>