您的位置:首页 > 编程语言 > PHP开发

SugarCRM 一个页面控制两个模块(editview.php)

2011-02-13 17:58 190 查看
目的:在editview中一个保存按钮,保存两个模块(两张表)
解决方案:
1.在主表模块的editview.php文件最后写
require_once('modules/bw_Consignments/editpanels/editview.php');   //执行子表模块的editview.php文件
2.在子表模块中新建editpanels文件夹
将editview.php   editview.html  Forms.php 文件复制到此文件夹下
3.修改editpanels/EditView.php文件
(1) require_once('modules/bw_Consignments/language/zh_cn.lang.php');//在文件头部写此句,用于引入$mod_strings[]数组
4.editpanels/EditView.html 可根据需求调整模板
(1)去除保存 取消按钮  删除以下代码
<input type="submit" name="button"         value="  {APP.LBL_SAVE_BUTTON_LABEL}  "
class="button" tabindex="5"
onclick="this.form.action.value='Save'; return check_form('EditView');"
title="{APP.LBL_SAVE_BUTTON_TITLE}" accesskey="{APP.LBL_SAVE_BUTTON_KEY}"/>
<input type="submit" name="button"         value="  {APP.LBL_CANCEL_BUTTON_LABEL}  "
class="button" tabindex="6"
onclick="this.form.module.value='{RETURN_MODULE}'; this.form.action.value='{RETURN_ACTION}'; this.form.record.value='{RETURN_ID}';"
title="{APP.LBL_CANCEL_BUTTON_TITLE}"
accesskey="{APP.LBL_CANCEL_BUTTON_KEY}"/>
<td align="right" nowrap><span class="required">{APP.LBL_REQUIRED_SYMBOL}</span>  {APP.NTC_REQUIRED}</td>
< td align="right">{ADMIN_EDIT}</td>
(2)去除<form name="EditView" method="post" action="index.php"> </form> 因为表单这个表单不需要了
(3)去除下面代码
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<input type="hidden" name="module"         value="bw_Consignments" />
<input type="hidden" name="record"         value="{ID}" />
<input type="hidden" name="action"         value="" />
<input type="hidden" name="return_module"  value="{RETURN_MODULE}" />
<input type="hidden" name="return_id"      value="{RETURN_ID}" />
<input type="hidden" name="return_action"  value="{RETURN_ACTION}" />
</tr>
</table>
因为这些是控制表单提交的,表单已经不需要,所以这些也不用了,而且这些与主表模块冲突

5.修改editpanels/Forms.php 文件
function get_new_record_form        方法名修改为  get_new_record_form1
function get_validate_record_js       方法名修改为  get_validate_record_js1
原因: 因为两个模块同一页时,两个模块均调用了此方法,为了防止重名

6.提交保存
原理:将两个模块合成为一个表单一同提交,子表模块仍然由子模块执行保存.
主表模块的save.php
$return_id = $sugarbean->id;  \\此句下面写
$temp_id=$return_id;//因为$return_id已为子表模块保存的id 所以用$temp_id
require_once('modules/bw_Consignments/Save.php');//执行子表模块Save.php
//handleRedirect($return_id,'bw_Msg_MT3101s');//原来的,不用了
handleRedirect($temp_id,'bw_Msg_MT3101s');//页面跳转

注意: 子表保存后跳转应去掉
SaveFormBase.php
//if ($redirect) {
//    handleRedirect($return_id,"bw_Consignments" );
//} else {
//    return $focus;
//}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐