《宋轶聪的工作日志20110928 》
==========================修改Bugfree实现多指派================================
0、修改bug.tpl,将AssigedTo的样式替换成mailto的样式,上下两处修改
1、获取指派人 FuncModel.inc.php
$AssignedToUserInfo = testGetUserInfoByName($PostBugInfo['AssignedTo']);
2、获取收件人的邮箱地址
if(true) {
$AssignedToMail = $AssignedToUserInfo['Email'];
$AssignedToUserInfo['RealName'] == '' ? $AssignedToUserInfo['RealName'] = $PostBugInfo['AssignedTo'] : '';
$MailToList['Email'][] = $AssignedToUserInfo['Email'];
}
3、 组织邮件内容
$MainMessage = testCreateMailMessage($BugID, $ActionType ,$ActionUser,$AssignedToUserInfo['RealName'],$ChangeNote . "\n" . $EditPostArray['ReplyNote'],'Bug', $ActionDesc);
$MailToList = testGetMailToList(sysStripSlash($PostBugInfo['AssignedTo']), $ProjectID, true);
4、 系统发送邮件
sysMail($AssignedToMail, $MailToList['Email'], 'Bug #' . $BugID . ' ' . $BugMailTitle, $MainMessage);
5、为了让bug显示信息中指派人显示realname,做如下修改
在所有包含如下代码段的地方添加一段类似的代码
找到下面代码:
if($BugInfo['MailTo'] != '')
{
$BugInfo['MailToName'] = testGetMailToList($BugInfo['MailTo']);
$BugInfo['MailToName'] = @join(',',$BugInfo['MailToName']['RealName']);
}
else
{
$BugInfo['MailToName'] = '';
}
添加如下代码:
if($BugInfo['AssignedTo'] != '')
{
//$BugInfo['AssignedToName'] = $UserNameList[$BugInfo['AssignedTo']] == '' ? $BugInfo['AssignedTo'] : $UserNameList[$BugInfo['AssignedTo']];
$BugInfo['AssignedToName'] = testGetMailToList($BugInfo['AssignedTo']);
$BugInfo['AssignedToName'] = @join(',',$BugInfo['AssignedToName']['RealName']);
}else{$BugInfo['AssignedToName'] = '';}
6、由于指派人从单选变为多选,需要修改
// update buginfo
dbUpdateRow('BugInfo','ProjectID',"'{$PostBugInfo[ProjectID]}'",'ModuleID',"'{$PostBugInfo[ModuleID]}'",
'ProjectName',"'{$PostBugInfo[ProjectName]}'",'ModulePath',"'{$PostBugInfo[ModulePath]}'",
'BugTitle',"'{$PostBugInfo[BugTitle]}'",
'BugStatus',"'{$BugStatus}'",
'BugType',"'{$PostBugInfo[BugType]}'",'BugOS',"'{$PostBugInfo[BugOS]}'",
'BugSeverity',"'{$PostBugInfo[BugSeverity]}'",'BugPriority',"{$PostBugInfo[BugPriority]}",
'BugBrowser',"'{$PostBugInfo[BugBrowser]}'",'BugMachine',"'{$PostBugInfo[BugMachine]}'",
'BugSubStatus',"'{$PostBugInfo[BugSubStatus]}'",
'HowFound',"'{$PostBugInfo[HowFound]}'",'BugKeyword',"'{$PostBugInfo[BugKeyword]}'",
'ReproSteps',"'{$PostBugInfo[ReproSteps]}'",
'AssignedTo',"'{$PostBugInfo[AssignedTo]}'",'MailTo',"'{$PostBugInfo[MailTo]}'",
'OpenedBuild',"'{$PostBugInfo[OpenedBuild]}'",
'ResolvedBy',"'{$ResolvedBy}'",'ResolvedDate',"'{$ResolvedDate}'",'ResolvedBuild',"'{$ResolvedBuild}'",'Resolution',"'{$Resolution}'",
'ClosedBy',"'{$ClosedBy}'",'ClosedDate',"'{$ClosedDate}'",
'LinkID',"'{$PostBugInfo[LinkID]}'",'DuplicateID',"'{$PostBugInfo[DuplicateID]}'",
'CaseID',"'{$PostBugInfo[CaseID]}'",
'AssignedDate', "'{$PostBugInfo[AssignedDate]}'",
'LastEditedBy',"'{$LastEditedBy}'",'LastEditedDate','now()',
'ModifiedBy', "CONCAT(ModifiedBy,'{$LastEditedBy}',',')",
"BugID='{$BugID}'");
7、 //Open Bug 处也需要修改
$ValueSql .= "'{$MailTo}','{$OpenedBy}',now(),'{$OpenedBuild}','{$PostBugInfo[AssignedTo]}',{$AssignDate},'{$LastEditedBy}',now(),',{$OpenedBy},',";
上述修改经过老宋本人测试,能够实现指派多人的个性化要求。
=========================去掉必填项bug.php bug.tpl FuncModel.inc.php===================================
1、 删除bug.php bug.tpl两个文件中非必填项的 class="MyInput RequiredField"
2、去掉页面校验,搜索并注释 FuncModel.inc.php中如下面的代码
/**
if($PostBugInfo['AssignedTo'] != '')
{
$ActionMsg['FailedMsg'][] = $_LANG['NoAssignedTo'];
}**/
=============================修改下拉列表、提示信息等=================================================
修改_COMMON.php
如增加了指派人的校验,找到$_LANG['NoBugTitle'] = 'Bug 标题不能为空';
增加如下代码:
$_LANG['NoAssignedTo'] = '指派人不能为空';