| <?php | 
|   | 
| /** | 
|  * 添加非GMT命令常规后台日志,即常规网站操作日志 | 
|  * 注意:常规操作日志仅成功时添加,失败的日志不用添加,重复操作至成功即可 | 
|  * @param array $logMsg 操作日志额外信息 {"server_name":retMsg, ...} | 
|  */ | 
| function AddSuccessLog($SPID, $UserAccount, $Permission, $Post = array(), $logMsg = array()) | 
| { | 
|     $SuccessMsg = array_merge(array("Result" => "OK"), $logMsg); | 
|     return AddGMTLog($SPID, $UserAccount, $Permission, $Post, \User\GMTCheckState::OK, $SuccessMsg); | 
| } | 
|   | 
| /** | 
|  * 添加命令操作动态日志 | 
|  * @param array $SuccessMsg 成功返回的服务器结果 {"server_name":retMsg, ...} | 
|  * @param array $ErrorMsg 失败返回的服务器结果 {"server_name":retMsg, ...} | 
|  */ | 
| function AddGMTLog($SPID, $UserAccount, $Permission, $Post, $CheckState, $SuccessMsg = array(), $ErrorMsg = array()) | 
| { | 
|     if (!$SPID || !$UserAccount || !$Permission) { | 
|         return; | 
|     } | 
|     if ($Permission == "P_DelPlayerItem") { | 
|         if (!array_key_exists("delItemCount", $Post)) { | 
|             // 只记录最终删除请求,查询的不记录 | 
|             return; | 
|         } | 
|     } | 
|     if ($Permission == \User\Permission::P_PersonalMailMgr) { | 
|         if (!array_key_exists("opType", $Post) || $Post["opType"] != "del") { | 
|             // 只记录最终删除请求,查询的不记录 | 
|             return; | 
|         } | 
|     } | 
|     // 单服非针对玩家的日志动态增加存储服务器 | 
|     if ($Post["MultiServer"] != 1 && !array_key_exists("playerFind", $Post) && !array_key_exists("playerList", $Post)) { | 
|         $Post["server_id"] = $_SESSION['server_id']; | 
|     } | 
|     $GUID = \CommFunc\guid(); | 
|     $insArray = array( | 
|         "GUID" => $GUID,    //日志GUID | 
|         "SPID" => $SPID,    //所属项目appid | 
|         "UserAccount" => $UserAccount,  //操作账号 | 
|         "Permission" => $Permission,    //后台权限类型 | 
|         "Post" => $Post,    //post数据 | 
|         "IP" => \CommFunc\GetIP(), | 
|         "OPTime" => time(),     //操作时间 | 
|         "SuccessMsg" => $SuccessMsg, //成功的信息  | 
|         "ErrorMsg" => $ErrorMsg, //失败的信息,如返回的错误信息或者失败的服务器错误集合 | 
|         "CheckState" => $CheckState,    //审核状态 | 
|     ); | 
|     if (!\DBOper\Insert("GMTLog", $insArray)) { | 
|         return; | 
|     }; | 
|     return true; | 
| } | 
|   | 
| function ParseGMTLogTDHtml_Post($logInfo, $showDetail, &$tdHtml, $table = false) | 
| { | 
|     $Post = $logInfo["Post"]; | 
|     $retShort = ""; | 
|     $retDetal = ""; | 
|     $retTable = ""; | 
|     $br = "#br#"; | 
|   | 
|     //个人邮件 | 
|     if ($logInfo["Permission"] == \User\Permission::P_PersonalMailSend) { | 
|         $moneyNameInfo = \CommFunc\getCfgKeyNameContent("money", true); | 
|         $itemIDNameInfo = \CommFunc\getCfgKeyNameContent("item", true); | 
|   | 
|         $showKeyArray = array( | 
|             "playerList" => \Lang\gettext("收件人"), | 
|             "EndDate" => \Lang\gettext("结束时间"), | 
|             "Title" => \Lang\gettext("邮件标题"), | 
|             "Text" => \Lang\gettext("邮件内容"), | 
|             "Gold" => $moneyNameInfo["1"], | 
|             "GoldPaper" => $moneyNameInfo["2"], | 
|             "Silver" => $moneyNameInfo["3"], | 
|             "itemNums" => \Lang\gettext("物品") | 
|         ); | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             if ($k == "EndDate") { | 
|                 $tdv = $Post["EndDate"] . " " . $Post["EndHour"] . ":" . $Post["EndMinute"] . ":" . $Post["EndSecond"]; | 
|             } else if ($k == "itemNums") { | 
|                 $tdv = ""; | 
|                 $itemNums = explode(",", $Post[$k]); | 
|                 for ($i = 0; $i < count($itemNums); $i++) { | 
|                     $num = $itemNums[$i]; | 
|                     $itemID = intval($Post["ItemID" . $num]); | 
|                     $ItemCnt = intval($Post["ItemCnt" . $num]); | 
|                     $IsBind = intval($Post["IsBind" . $num]); | 
|                     if ($itemID <= 0 || $ItemCnt <= 0) { | 
|                         continue; | 
|                     } | 
|                     if ($IsBind == 1) { | 
|                         $tdv .= "errorcolorleft[" . \Lang\gettext('拍品') . "]errorcolorright"; | 
|                     } | 
|                     if (array_key_exists($itemID, $itemIDNameInfo)) { | 
|                         $tdv .= $itemIDNameInfo[$itemID] . "(" . $itemID . ")" . " x" . $ItemCnt; | 
|                     } else { | 
|                         $tdv .= "errorcolorleft" . \Lang\gettext("未知物品ID") . "(" . $itemID . ")"  . " x" . $ItemCnt . "errorcolorright"; | 
|                     } | 
|                     $tdv .= $br; | 
|                 } | 
|             } else { | 
|                 $tdv = $Post[$k]; | 
|             } | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='500'>" . $tdv . "</td></tr>"; | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $Post["playerList"] . "<br/>" . $Post["Title"]; | 
|     } | 
|     //全服邮件 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_ServerMailSend) { | 
|         $moneyNameInfo = \CommFunc\getCfgKeyNameContent("money", true); | 
|         $itemIDNameInfo = \CommFunc\getCfgKeyNameContent("item", true); | 
|   | 
|         $JobNames = array("1" => \Lang\gettext("枪豪"), "2" => \Lang\gettext("道师"), "3" => \Lang\gettext("剑修")); | 
|         $showKeyArray = array( | 
|             "GUID" => \Lang\gettext("邮件GUID"), | 
|             "EndDate" => \Lang\gettext("结束时间"), | 
|             "Job" => \Lang\gettext("职业多选"), | 
|             "PlayerLV" => \Lang\gettext("最低等级"), | 
|             "LimitLVType" => \Lang\gettext("升级可领"), | 
|             "CheckState" => \Lang\gettext("需要审核"), | 
|             "Title" => \Lang\gettext("邮件标题"), | 
|             "Text" => \Lang\gettext("邮件内容"), | 
|             "Gold" => $moneyNameInfo["1"], | 
|             "GoldPaper" => $moneyNameInfo["2"], | 
|             "Silver" => $moneyNameInfo["3"], | 
|             "itemNums" => \Lang\gettext("物品") | 
|         ); | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             if ($k == "EndDate") { | 
|                 $tdv = $Post["EndDate"] . " " . $Post["EndHour"] . ":" . $Post["EndMinute"] . ":" . $Post["EndSecond"]; | 
|             } else if ($k == "itemNums") { | 
|                 $tdv = ""; | 
|                 $itemNums = explode(",", $Post[$k]); | 
|                 for ($i = 0; $i < count($itemNums); $i++) { | 
|                     $num = $itemNums[$i]; | 
|                     $itemID = intval($Post["ItemID" . $num]); | 
|                     $ItemCnt = intval($Post["ItemCnt" . $num]); | 
|                     $IsBind = intval($Post["IsBind" . $num]); | 
|                     if ($itemID <= 0 || $ItemCnt <= 0) { | 
|                         continue; | 
|                     } | 
|                     if ($IsBind == 1) { | 
|                         $tdv .= "errorcolorleft[" . \Lang\gettext('拍品') . "]errorcolorright"; | 
|                     } | 
|                     if (array_key_exists($itemID, $itemIDNameInfo)) { | 
|                         $tdv .= $itemIDNameInfo[$itemID] . "(" . $itemID . ")" . " x" . $ItemCnt; | 
|                     } else { | 
|                         $tdv .= "errorcolorleft" . \Lang\gettext("未知物品ID") . "(" . $itemID . ")"  . " x" . $ItemCnt . "errorcolorright"; | 
|                     } | 
|                     $tdv .= $br; | 
|                 } | 
|             } else if ($k == "Job") { | 
|                 $tdv = ""; | 
|                 foreach ($JobNames as $job => $jName) { | 
|                     if ($Post["Job" . $job] == "on") { | 
|                         if ($tdv) { | 
|                             $tdv .= "、"; | 
|                         } | 
|                         $tdv .= $jName; | 
|                     } | 
|                 } | 
|             } else if ($k == "LimitLVType") { | 
|                 $tdv = $Post[$k] == "0" ? \Lang\gettext("不能") : \Lang\gettext("可以"); | 
|             } else if ($k == "CheckState") { | 
|                 $tdv = $Post[$k] == "0" ? \Lang\gettext("不需要") : \Lang\gettext("需要"); | 
|             } else { | 
|                 $tdv = $Post[$k]; | 
|             } | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='500'>" . $tdv . "</td></tr>"; | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $Post["Title"]; | 
|     } | 
|     //充值 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_CTGReq) { | 
|         $showKeyArray = array( | 
|             "playerFind" => \Lang\gettext("收款方"), | 
|             "value" => \Lang\gettext("商品编号"), | 
|             "appID" => \Lang\gettext("appID") | 
|         ); | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='300'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $Post['playerFind'] . "<br/>" . $Post['value']; | 
|     } | 
|     //代币发放 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_AddPayCoin) { | 
|         $showKeyArray = array( | 
|             "playerFind" => \Lang\gettext("目标玩家"), | 
|             "value" => \Lang\gettext("代币") | 
|         ); | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='300'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $Post['playerFind'] . "<br/>" . $Post['value']; | 
|     } | 
|     //广播 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_BroadCast || $logInfo["Permission"] == \User\Permission::P_BroadCastMulti) { | 
|         $showKeyArray = array( | 
|             "server_id" => \Lang\gettext("服务器"), | 
|             "startDate" => \Lang\gettext("广播时间"), | 
|             "interval" => \Lang\gettext("发送间隔"), | 
|             "isDelOthers" => \Lang\gettext("清除之前的广播"), | 
|             "msg" => \Lang\gettext("广播信息"), | 
|         ); | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             if ($k == "server_id" && $logInfo["Permission"] == \User\Permission::P_BroadCastMulti) { | 
|                 continue; | 
|             } | 
|             $tdv = $Post[$k]; | 
|             if ($k == "startDate") { | 
|                 $tdv = $Post["startDate"] . $Post["startTime"] . " ~ " . $Post["endDate"] . $Post["endTime"]; | 
|             } else if ($k == "isDelOthers") { | 
|                 $tdv = $tdv == "on" ? \Lang\gettext("是") : \Lang\gettext("否"); | 
|             } | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='130'>" . $kname . "</td><td width='520'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         if ($logInfo["Permission"] == \User\Permission::P_BroadCast) { | 
|             $retShort = $Post['server_id']; | 
|         } else { | 
|             $retShort = \Lang\gettext("广播信息"); | 
|         } | 
|     } | 
|     //禁言 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_ForbidTalk) { | 
|         $showKeyArray = array( | 
|             "server_id" => \Lang\gettext("服务器"), | 
|             "accID" => \Lang\gettext("对象"), | 
|             "forbidType" => \Lang\gettext("类型"), | 
|             "forbidDevice" => \Lang\gettext("是否禁言/解禁设备"), | 
|             "forbitHour" => \Lang\gettext("禁言总时长"), | 
|         ); | 
|         $tag = ""; | 
|         $forbidType = ""; | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             if ($k == "accID") { | 
|                 if ($Post["accID"]) { | 
|                     $tag = $Post["accID"]; | 
|                 } else if ($Post["playerName"]) { | 
|                     $tag = $Post["playerName"]; | 
|                 } else { | 
|                     $tag = $Post["IP"]; | 
|                 } | 
|                 $tdv = $tag; | 
|             } else if ($k == "forbidType") { | 
|                 $forbidType = $tdv == "1" ? \Lang\gettext("禁言") : \Lang\gettext("解禁"); | 
|                 $tdv = $forbidType; | 
|             } else if ($k == "forbidDevice") { | 
|                 $tdv = ($Post["forbidDevice"] || $Post["unForbidDevice"]) ? \Lang\gettext("是") : \Lang\gettext("否"); | 
|             } else if ($k == "forbitHour") { | 
|                 if ($Post["forbidType"] != "1") { | 
|                     continue; | 
|                 } | 
|                 $tdv = $Post["forbitHour"] . \Lang\gettext("时") . $Post["forbitMinute"] . \Lang\gettext("分"); | 
|             } | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='200'>" . $kname . "</td><td width='300'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $tag . "<br/>" . $forbidType; | 
|     } | 
|     //封号 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_ForbidLogin) { | 
|         $showKeyArray = array( | 
|             "server_id" => \Lang\gettext("服务器"), | 
|             "accID" => \Lang\gettext("对象"), | 
|             "forbidType" => \Lang\gettext("类型"), | 
|         ); | 
|         $tag = ""; | 
|         $forbidType = ""; | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             if ($k == "accID") { | 
|                 if ($Post["accID"]) { | 
|                     $tag = $Post["accID"]; | 
|                 } else if ($Post["playerName"]) { | 
|                     $tag = $Post["playerName"]; | 
|                 } else { | 
|                     $tag = $Post["IP"]; | 
|                 } | 
|                 $tdv = $tag; | 
|             } else if ($k == "forbidType") { | 
|                 $forbidType = $tdv == "1" ? \Lang\gettext("封号") : \Lang\gettext("解封"); | 
|                 $tdv = $forbidType; | 
|             } | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='200'>" . $kname . "</td><td width='300'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $tag . "<br/>" . $forbidType; | 
|     } | 
|     //踢下线 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_KickPlayer) { | 
|         $showKeyArray = array( | 
|             "server_id" => \Lang\gettext("服务器"), | 
|             "accID" => \Lang\gettext("对象"), | 
|         ); | 
|         $tag = ""; | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             if ($k == "accID") { | 
|                 if ($Post["accID"]) { | 
|                     $tag = $Post["accID"]; | 
|                 } else { | 
|                     $tag = $Post["playerName"]; | 
|                 } | 
|                 $tdv = $tag; | 
|             } | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='200'>" . $kname . "</td><td width='300'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $tag; | 
|     } | 
|     //转让仙盟 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_FamilyTransfer) { | 
|         $showKeyArray = array( | 
|             "server_id" => \Lang\gettext("服务器"), | 
|             "familyName" => \Lang\gettext("转让仙盟"), | 
|             "queryTag" => \Lang\gettext("转让玩家"), | 
|         ); | 
|         $tag = ""; | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='200'>" . $kname . "</td><td width='300'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $Post["familyName"] . "<br/>" . $Post["queryTag"]; | 
|     } | 
|     //解散仙盟 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_FamilyDismiss) { | 
|         $showKeyArray = array( | 
|             "server_id" => \Lang\gettext("服务器"), | 
|             "familyName" => \Lang\gettext("解散仙盟"), | 
|         ); | 
|         $tag = ""; | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='200'>" . $kname . "</td><td width='300'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $Post["server_id"] . "<br/>" . $Post["familyName"]; | 
|     } | 
|     //扣除货币 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_DelPlayerMoney) { | 
|         $moneyNameInfo = \CommFunc\getCfgKeyNameContent("money", true); | 
|         $showKeyArray = array( | 
|             "playerFind" => \Lang\gettext("目标玩家"), | 
|             "moneyType" => \Lang\gettext("货币类型"), | 
|             "moneyValue" => \Lang\gettext("扣除数量"), | 
|             "delRemark" => \Lang\gettext("扣除说明"), | 
|         ); | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             if ($k == "moneyType") { | 
|                 $tdv = $moneyNameInfo[$tdv]; | 
|             } | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='300'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $Post['playerFind'] . "<br/>" | 
|             . $moneyNameInfo[$Post['moneyType']] . " : " . $Post['moneyValue']; | 
|     } | 
|     //扣除物品 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_DelPlayerItem) { | 
|         $itemIDNameInfo = \CommFunc\getCfgKeyNameContent("item", true); | 
|         $showKeyArray = array( | 
|             "playerFind" => \Lang\gettext("目标玩家"), | 
|             "itemID" => \Lang\gettext("物品ID"), | 
|             "delItemCount" => \Lang\gettext("扣除数量"), | 
|             "delGUIDInfo" => \Lang\gettext("扣除GUID"), | 
|             "delRemark" => \Lang\gettext("扣除说明"), | 
|         ); | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             if ($k == "itemID") { | 
|                 $tdv = $itemIDNameInfo[$tdv]; | 
|             } | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='300'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $Post['playerFind'] . "<br/>" | 
|             . $itemIDNameInfo[$Post['itemID']] . " : " . $Post['delItemCount']; | 
|     } | 
|     //称号管理 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_AddTitle) { | 
|         $showKeyArray = array( | 
|             "playerFind" => \Lang\gettext("目标玩家"), | 
|             "titleID" => \Lang\gettext("称号 (ID)"), | 
|             "expireTime" => \Lang\gettext("有效期秒"), | 
|             "opType" => \Lang\gettext("操作类型"), | 
|         ); | 
|         $opTypeName = array("add" => \Lang\gettext("激活"), "del" => \Lang\gettext("删除")); | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             if ($k == "opType") { | 
|                 $tdv = $opTypeName[$tdv]; | 
|             } | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='300'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $Post['playerFind'] . "<br/>" | 
|             . $opTypeName[$Post['opType']] . \Lang\gettext("称号 (ID)") . " : " . $Post['titleID']; | 
|     } | 
|     //设置GM | 
|     else if ($logInfo["Permission"] == \User\Permission::P_SetGMLevel) { | 
|         $showKeyArray = array( | 
|             "playerFind" => \Lang\gettext("目标玩家"), | 
|             "gmLevel" => \Lang\gettext("GMLevel"), | 
|         ); | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='300'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $Post['playerFind'] . "<br/>" . \Lang\gettext("GMLevel") . " : " . $Post['gmLevel']; | 
|     } | 
|     //执行命令 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_Execfile) { | 
|         $showKeyArray = array( | 
|             "playerFind" => \Lang\gettext("目标玩家"), | 
|             "cmdInfo" => \Lang\gettext("输入命令"), | 
|         ); | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             if ($k == "playerFind") { | 
|                 if (!$tdv) { | 
|                     continue; | 
|                 } | 
|             } | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='300'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         if ($Post['playerFind']) { | 
|             $retShort = $Post['playerFind'] . "<br/>" . $Post['cmdInfo']; | 
|         } else { | 
|             $retShort = $Post['cmdInfo']; | 
|         } | 
|     } | 
|     //个人邮件管理 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_PersonalMailMgr) { | 
|         $showKeyArray = array( | 
|             "playerList" => \Lang\gettext("目标玩家"), | 
|             "GUIDInfo" => \Lang\gettext("删除GUID"), | 
|         ); | 
|         $delGUIDCount = 0; | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             if ($k == "GUIDInfo") { | 
|                 $guidArray = explode(",", $tdv); | 
|                 $delGUIDCount = count($guidArray); | 
|                 $tdv = $br; | 
|                 foreach ($guidArray as $guid) { | 
|                     $tdv .= $guid . $br; | 
|                 } | 
|             } | 
|             $retDetal .= $kname . " : "  . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='500'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $Post['playerList'] . "<br/>" . \Lang\gettext("删除GUID") . " : " . $delGUIDCount; | 
|     } | 
|     //全服邮件管理 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_ServerMailMgr) { | 
|         $showKeyArray = array( | 
|             "operation" => \Lang\gettext("审核结果"), | 
|             "GUIDInfo" => \Lang\gettext("邮件GUID"), | 
|         ); | 
|         $operation = $Post["operation"] == "1" ? \Lang\gettext("通过") : \Lang\gettext("删除"); | 
|         $GUIDCount = 0; | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             if ($k == "GUIDInfo") { | 
|                 $guidArray = explode(",", $tdv); | 
|                 $GUIDCount = count($guidArray); | 
|                 $tdv = $br; | 
|                 foreach ($guidArray as $guid) { | 
|                     $tdv .= $guid . $br; | 
|                 } | 
|             } else if ($k == "operation") { | 
|                 $tdv = $operation; | 
|             } | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='500'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = \Lang\gettext("审核结果") . " : " . $operation . "<br/>" . \Lang\gettext("邮件GUID") . " : " . $GUIDCount; | 
|     } | 
|     //服务器状态管理 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_OPSServerStateMgr) { | 
|         $showKeyArray = array( | 
|             "Recommend" => \Lang\gettext("推荐状态"), | 
|             "serverIDCondArray" => \Lang\gettext("ServerID"), | 
|         ); | 
|         $RecommendInfo = array("all" => \Lang\gettext("全部"), "1" => \Lang\gettext("是"), "0" => \Lang\gettext("否")); | 
|         $shortServerID = ""; | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             if ($k == "Recommend") { | 
|                 $tdv = $RecommendInfo[$tdv]; | 
|             } elseif ($k == "serverIDCondArray" && isset($tdv)) { | 
|                 $tdvStr = ""; | 
|                 foreach ($tdv as $value) { | 
|                     $eValue = $value[0]; | 
|                     $gteValue = $value[1]; | 
|                     $lteValue = $value[2]; | 
|                     if ($eValue > 0) { | 
|                         $tdvStr .= $eValue; | 
|                         $shortServerID .= $eValue . ","; | 
|                     } | 
|                     if ($gteValue > 0 || $lteValue > 0) { | 
|                         if ($eValue > 0) { | 
|                             $tdvStr .= " , "; | 
|                         } | 
|                         if ($gteValue > 0 && $lteValue > 0) { | 
|                             $tdvStr .= $gteValue . " ~ " . $lteValue; | 
|                             $shortServerID .= $gteValue . " ~ " . $lteValue . ","; | 
|                         } else if ($gteValue > 0) { | 
|                             $tdvStr .= ">=" . $gteValue; | 
|                             $shortServerID .= ">=" . $gteValue . ","; | 
|                         } else { | 
|                             $tdvStr .= "<=" . $lteValue; | 
|                             $shortServerID .= "<=" . $lteValue . ","; | 
|                         } | 
|                     } | 
|                     $tdvStr .= $br; | 
|                 } | 
|                 $tdv = $tdvStr; | 
|             } | 
|             $retDetal .= $kname . " : " . $tdv . $br; | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='500'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $showKeyArray["Recommend"] . " : " . $RecommendInfo[$Post['Recommend']] . "<br/>" | 
|             . $showKeyArray["serverIDCondArray"] . " : " . $shortServerID; | 
|     } | 
|     //刷新选服列表 | 
|     else if ($logInfo["Permission"] == \User\Permission::P_OPSRefreshServer) { | 
|         $showKeyArray = array( | 
|             "JsonBranchList" => \Lang\gettext("选服分支"), | 
|         ); | 
|         $JsonBranchStr = ""; | 
|         $retTable = "<table border='1' cellspacing='0'>"; | 
|         foreach ($showKeyArray as $k => $kname) { | 
|             $tdv = $Post[$k]; | 
|             if ($k == "JsonBranchList" && isset($tdv)) { | 
|                 foreach ($tdv as $value) { | 
|                     if ($JsonBranchStr) { | 
|                         $JsonBranchStr .= ","; | 
|                     } | 
|                     $JsonBranchStr .= $value; | 
|                 } | 
|                 $tdv = $JsonBranchStr; | 
|             } | 
|             $retDetal .= $kname . " : " . $tdv; | 
|             $retTable .= "<tr><td style='text-align:center;' width='100'>" . $kname . "</td><td width='500'>" . $tdv . "</td></tr>"; | 
|         } | 
|         $retTable .= "</table>"; | 
|         $retShort = $showKeyArray["JsonBranchList"] . " : " . $JsonBranchStr; | 
|     } | 
|     //默认 | 
|     else { | 
|     } | 
|   | 
|     if ($table) { | 
|         $retTable = str_replace("errorcolorleft", "<font color='#FF0000'>", $retTable); | 
|         $retTable = str_replace('errorcolorright', "</font>", $retTable); | 
|         $retTable = str_replace($br, "<br/>", $retTable); | 
|         $tdHtml = $retTable; | 
|     } else if ($showDetail) { | 
|         $retDetal = str_replace("errorcolorleft", "<font color='#FF0000'>", $retDetal); | 
|         $retDetal = str_replace('errorcolorright', "</font>", $retDetal); | 
|         $retDetal = str_replace($br, "<br/>", $retDetal); | 
|         $tdHtml = $retDetal; | 
|     } else { | 
|         $title = $retDetal; | 
|         $title = str_replace("errorcolorleft", "", $title); | 
|         $title = str_replace('errorcolorright', "", $title); | 
|         $title = str_replace($br, "
", $title); | 
|   | 
|         $retShort = str_replace("errorcolorleft", "<font color='#FF0000'>", $retShort); | 
|         $retShort = str_replace('errorcolorright', "</font>", $retShort); | 
|         $retShort = str_replace($br, "<br/>", $retShort); | 
|         $tdHtml = "<span title='" . $title . "'>" . $retShort . "<span>"; | 
|     } | 
| } | 
|   | 
| function ParseGMTLogTDHtml_Result($logInfo, $showDetail, &$tdHtml, $table = false) | 
| { | 
|     $Permission = $logInfo["Permission"]; | 
|     $SuccessMsg = $logInfo["SuccessMsg"]; | 
|     $ErrorMsg = $logInfo["ErrorMsg"]; | 
|     $Post = $logInfo["Post"]; | 
|     $MultiServer = $Post["MultiServer"]; | 
|   | 
|     $retShort = ""; | 
|     $retDetal = ""; | 
|     $retTable = ""; | 
|     $br = "#br#"; | 
|   | 
|     if (count($ErrorMsg) > 0) { | 
|         if ($MultiServer) { | 
|             $retTable .= "<table border='1' cellspacing='0'>"; | 
|             $retTable .= "<caption>" . "errorcolorleft" . \Lang\gettext("失败服务器数") . " : " . count($ErrorMsg) . "errorcolorright" . "</caption>"; | 
|             $retShort = \Lang\gettext("失败服务器数") . ":" . count($ErrorMsg) . "<br/>"; | 
|             $retDetal .= \Lang\gettext("失败服务器数") . " : " . count($ErrorMsg) . $br; | 
|             foreach ($ErrorMsg as $serverName => $ret) { | 
|                 $retStr = \Lang\gettext("没有返回结果"); | 
|                 if (array_key_exists("ResultType", $ret)) { | 
|                     $retStr = GetResultTypeMsg($ret["ResultType"]); | 
|                 } else if (array_key_exists("ErrorNo", $ret)) { | 
|                     $retStr = GetErrorNoMsg($ret["ErrorNo"]); | 
|                 } | 
|                 $retDetal .= $serverName . " : " . $retStr . $br; | 
|                 $retTable .= "<tr><td style='text-align:center;' width='200'>errorcolorleft" . $serverName . "errorcolorright</td>" . | 
|                     "<td width='300'>errorcolorleft" . $retStr . "errorcolorright</td></tr>"; | 
|             } | 
|             $retTable .= "</table>"; | 
|         } else { | 
|             foreach ($ErrorMsg as $serverName => $ret) { | 
|                 $retStr = \Lang\gettext("没有返回结果"); | 
|                 if (array_key_exists("ResultType", $ret)) { | 
|                     $retStr = GetResultTypeMsg($ret["ResultType"]); | 
|                 } else if (array_key_exists("ErrorNo", $ret)) { | 
|                     $retStr = GetErrorNoMsg($ret["ErrorNo"]); | 
|                 } | 
|                 $retShort .= $retStr; | 
|                 $retDetal =  $retShort; | 
|                 if (array_key_exists("ResultMsg", $ret) && !is_array($ret["ResultMsg"])) { | 
|                     $retDetal .= $br . $ret["ResultMsg"]; | 
|                 } | 
|                 if (array_key_exists("ErrorStr", $ret) && !is_array($ret["ErrorStr"])) { | 
|                     $retDetal .= $br . $ret["ErrorStr"]; | 
|                 } | 
|                 $retTable = $retDetal; | 
|             } | 
|         } | 
|         $retDetal = "errorcolorleft" . $retDetal . "errorcolorright"; | 
|         $retShort = "errorcolorleft" . $retShort . "errorcolorright"; | 
|         $retTable = "errorcolorleft" . $retTable . "errorcolorright"; | 
|     } | 
|     // 常规网站操作成功日志 | 
|     if ($SuccessMsg["Result"] == "OK") { | 
|         $retShort = "OK"; | 
|         //服务器状态管理 | 
|         if ($Permission == \User\Permission::P_OPSServerStateMgr) { | 
|             $RecommendInfo = array("all" => \Lang\gettext("全部"), "1" => \Lang\gettext("是"), "0" => \Lang\gettext("否")); | 
|             $retShort .= $br . \Lang\gettext("推荐状态") . ":" . $RecommendInfo[$SuccessMsg["Recommend"]]; | 
|         } | 
|         $retDetal = $retShort; | 
|         $retTable = $retShort; | 
|     } | 
|     // GMT操作日志 | 
|     elseif (count($SuccessMsg) > 0) { | 
|         if ($MultiServer) { | 
|             if ($retTable) { | 
|                 $retTable .= "<br/>"; | 
|             } | 
|             $retTable .= "<table border='1' cellspacing='0'>"; | 
|             $retTable .= "<caption>" . \Lang\gettext("成功服务器数") . " : " . count($SuccessMsg) . "</caption>"; | 
|             $retShort .= \Lang\gettext("成功服务器数") . ":" . count($SuccessMsg) . "<br/>"; | 
|             if ($retDetal) { | 
|                 $retDetal .= "--------------" . $br; | 
|             } | 
|             $retDetal .= \Lang\gettext("成功服务器数") . ":" . count($SuccessMsg) . $br; | 
|             foreach ($SuccessMsg as $serverName => $ret) { | 
|                 if (array_key_exists("ResultType", $ret)) { | 
|                     $retStr = GetResultTypeMsg($ret["ResultType"]); | 
|                     $retDetal .= $serverName . $br; | 
|                     $retTable .= "<tr><td style='text-align:center;' width='200'>" . $serverName . "</td><td width='300'>" . $retStr . "</td></tr>"; | 
|                 } | 
|             } | 
|             $retTable .= "</table>"; | 
|         } else { | 
|             foreach ($SuccessMsg as $serverName => $ret) { | 
|                 if (array_key_exists("ResultType", $ret)) { | 
|                     $retShort =  GetResultTypeMsg($ret["ResultType"]); | 
|                     $retDetal = $retShort; | 
|                     $retTable = $retShort; | 
|                     if ($ret["ResultMsg"]) { | 
|                         $noResultMsgPerArray = array(\User\Permission::P_PersonalMailMgr); | 
|                         if (!is_array($ret["ResultMsg"])) { | 
|                             $retDetal .= $br . $ret["ResultMsg"]; | 
|                             $retTable .= $br . $ret["ResultMsg"]; | 
|                         } else if (!in_array($Permission, $noResultMsgPerArray)) { | 
|                             $retTable .= $br . json_encode($ret["ResultMsg"]); | 
|                         } | 
|                     } | 
|                 } | 
|             } | 
|         } | 
|     } | 
|   | 
|     if (!$retDetal) { | 
|         $tdHtml = \Lang\gettext("未发送"); | 
|     } else if ($table) { | 
|         $retTable = str_replace("errorcolorleft", "<font color='#FF0000'>", $retTable); | 
|         $retTable = str_replace('errorcolorright', "</font>", $retTable); | 
|         $retTable = str_replace($br, "<br/>", $retTable); | 
|         $tdHtml = $retTable; | 
|     } else if ($showDetail) { | 
|         $retDetal = str_replace("errorcolorleft", "<font color='#FF0000'>", $retDetal); | 
|         $retDetal = str_replace('errorcolorright', "</font>", $retDetal); | 
|         $retDetal = str_replace($br, "<br/>", $retDetal); | 
|         $tdHtml = $retDetal; | 
|     } else { | 
|         $title = $retDetal; | 
|         $title = str_replace("errorcolorleft", "", $title); | 
|         $title = str_replace('errorcolorright', "", $title); | 
|         $title = str_replace($br, "
", $title); | 
|   | 
|         $retShort = str_replace("errorcolorleft", "<font color='#FF0000'>", $retShort); | 
|         $retShort = str_replace('errorcolorright', "</font>", $retShort); | 
|         $retShort = str_replace($br, "<br/>", $retShort); | 
|         $tdHtml = "<span title='" . $title . "'>" . $retShort . "<span>"; | 
|     } | 
| } |