SugarCRM之在EditViews中调用js
方法一:
(1) 在modules/modulename里面添加相应的modulename.js文件;
(2) 在modules/modulename/metadata/editviewdefs.php中将js文件包含进来,并在相应的字段中加入响应函数。如下所示:
将代码:
'includes'=> array(
array('file'=>'/modules/modulename/modulename.js'),
),
如果需要包含多个js文件,也可以这样写:
'includes' =>
array (
0 =>
array (
'file' => 'custom/include/javascript/jquery.js',
),
1 =>
array (
'file' => 'custom/include/javascript/modulename/modulename.js',
),
),
加到templateMeta对应的键值下;
将代码:
array(
'name' => 'phone_work',
'customCode'
=> '<input name="phone_work" id="phone_work" size="30"
maxlength="25" type="text" value="{$fields.phone_work.value}"
onblur="hello()">'
),加到对应字段的位置中。
(3) 在/modules/modulename/modulename.js中加入以下js代码:
function hello (argument) {
// body...
alert('hello,my godness!');
}
(4) 然后在Admin>>Repair>>Quick Repair and Rebuild清除js缓存,并重新生成js文件即可。
方法一存在不安全因素,如果系统升级等原因,会重新初始化js文件。更安全的方法是放到custom目录下,即方法二。
方法二:
(1) 在custom/include/javascript/modulename中加入modulename.js,如果没有这个目录,可以新建一个。
(2) 将modules/modulename/metadata/editviewdefs.php复制到custom/ modules/modulename/metadata目录下,此时,首先被解析的是custom目录下的view,而不是modules目录下的view,也就是说custom目录下的优先级要比modules目录下的大。
(3) 其他代码添加和清除js缓存都与第一种方法一样。