* Get chat's config. */ /** * Get chat's config. */ case 'config': $sFileName = $sModulesPath . $sModule . "/xml/config.xml"; $rHandle = fopen($sFileName, "rt"); $sContents = fread($rHandle, filesize($sFileName)); fclose($rHandle); $iMaxFileSize = min(ini_get('upload_max_filesize') + 0, ini_get('post_max_size') + 0); $sContents = str_replace("#fileMaxSize#", $iMaxFileSize, $sContents); $sContents = str_replace("#soundsUrl#", $sSoundsUrl, $sContents); $sContents = str_replace("#smilesetsUrl#", $sSmilesetsUrl, $sContents); $sContents = str_replace("#filesUrl#", $sFilesUrl, $sContents); $sContents = str_replace("#useServer#", useServer() ? TRUE_VAL : FALSE_VAL, $sContents); $sContents = str_replace("#serverUrl#", getRMSUrl($sServerApp), $sContents); break; /** * IM ACTIONS. * Authorize sender for IM dialog. */ /** * IM ACTIONS. * Authorize sender for IM dialog. */ case 'senderAuthorize': if (loginUser($sSndId, $sSndPassword) == TRUE_VAL) { $sContents = parseXml($aXmlTemplates['result'], "", SUCCESS_VAL); //--- return sender's information ---// $aUser = getUserInfo($sSndId);
for ($i = 0; $i < count($aData); $i++) { $aPixel = explode("=", $aData[$i], 2); $aImageData[$aPixel[0]] = base_convert($aPixel[1], 36, 10); } //--- Create Image Resource ---// $rImage = @imagecreatetruecolor($iWidth, $iHeight); for ($i = 0, $y = 0; $y < $iHeight; $y++) { for ($x = 0; $x < $iWidth; $x++, $i++) { @imagesetpixel($rImage, $x, $y, isset($aImageData[$i]) ? $aImageData[$i] : $iBackColor); } } //--- Save image file ---// $sFileName = $sFilesPath . $iBoardId . $sFileExtension; $bFileCreated = @imagejpeg($rImage, $sFileName, $iQuality); $aResult = $bFileCreated ? array('status' => SUCCESS_VAL, 'value' => "") : array('status' => FAILED_VAL, 'value' => "msgErrorFile"); if ($bFileCreated && $bSaveMode) { $aResult = save($sSavedId, $sFileName, $sTitle); if (useServer()) { @unlink($sFileName); } } $sContents = parseXml($aXmlTemplates['result'], $aResult['value'], $aResult['status']); break; case 'getSaved': if (loginUser($sId, $sPassword) == TRUE_VAL) { $sContents = getSavedBoardInfo($sId, $iBoardId); } else { $sContents = parseXml($aXmlTemplates['result'], "msgUserAuthenticationFailure", FAILED_VAL); } break; }
/** * Actions with specified room */ function doRoom($sSwitch, $sUserId = "", $iRoomId = 0, $sTitle = "", $sPassword = "", $sDesc = "", $bTemp = false) { $iCurrentTime = time(); switch ($sSwitch) { case 'insert': $aCurRoom = getArray("SELECT * FROM `" . MODULE_DB_PREFIX . "Rooms` WHERE `Name`='" . $sTitle . "'"); $sStatus = $bTemp ? ROOM_STATUS_DELETE : ROOM_STATUS_NORMAL; if (!empty($aCurRoom['ID']) && $sUserId == $aCurRoom['OwnerID']) { getResult("UPDATE `" . MODULE_DB_PREFIX . "Rooms` SET `Name`='" . $sTitle . "', `Password`='" . $sPassword . "', `Desc`='" . $sDesc . "', `OwnerID`='" . $sUserId . "', `When`='" . $iCurrentTime . "', `Status`='" . $sStatus . "' WHERE `ID`='" . $aCurRoom['ID'] . "'"); return $aCurRoom['ID']; } else { if (empty($aCurRoom['ID'])) { getResult("INSERT INTO `" . MODULE_DB_PREFIX . "Rooms` (`ID`, `Name`, `Password`, `Desc`, `OwnerID`, `When`, `Status`) VALUES ('" . $iRoomId . "', '" . $sTitle . "', '" . $sPassword . "', '" . $sDesc . "', '" . $sUserId . "', '" . $iCurrentTime . "', '" . $sStatus . "')"); return getLastInsertId(); } else { return 0; } } break; case 'update': getResult("UPDATE `" . MODULE_DB_PREFIX . "Rooms` SET `Name`='" . $sTitle . "', `Password`='" . $sPassword . "', `Desc`='" . $sDesc . "', `When`='" . $iCurrentTime . "', `Status`='" . ROOM_STATUS_NORMAL . "' WHERE `ID`='" . $iRoomId . "'"); break; case 'delete': $sSql = "UPDATE `" . MODULE_DB_PREFIX . "Rooms` SET `When`='" . $iCurrentTime . "', `Status`='" . ROOM_STATUS_DELETE . "' WHERE `ID` = '" . $iRoomId . "'"; getResult($sSql); break; case 'enter': $sId = getValue("SELECT `ID` FROM `" . MODULE_DB_PREFIX . "RoomsUsers` WHERE `Room`='" . $iRoomId . "' AND `User`='" . $sUserId . "' LIMIT 1"); if (empty($sId)) { getResult("INSERT INTO `" . MODULE_DB_PREFIX . "RoomsUsers`(`Room`, `User`, `When`) VALUES('" . $iRoomId . "', '" . $sUserId . "', '" . $iCurrentTime . "')"); } else { getResult("UPDATE `" . MODULE_DB_PREFIX . "RoomsUsers` SET `When`='" . $iCurrentTime . "', `Status`='" . ROOM_STATUS_NORMAL . "' WHERE `ID`='" . $sId . "'"); } break; case 'exit': getResult("UPDATE `" . MODULE_DB_PREFIX . "RoomsUsers` SET `When`='" . $iCurrentTime . "', `Status`='" . ROOM_STATUS_DELETE . "' WHERE `Room`='" . $iRoomId . "' AND `User`='" . $sUserId . "' LIMIT 1"); break; case 'deleteTemp': if (useServer()) { getResult("DELETE FROM `" . MODULE_DB_PREFIX . "Rooms` WHERE `Status`='" . ROOM_STATUS_DELETE . "' AND `When`<" . ($iCurrentTime - 24 * 60 * 60)); } break; } }
$aStyle = unserialize($aMsg['Style']); $sMsgs .= parseXml($aXmlTemplates['message'], $aMsg['ID'], stripslashes($aMsg['Message']), $aMsg['Room'], $aMsg['Sender'], $aMsg['Recipient'], $aMsg['Whisper'], $aStyle['color'], $aStyle['bold'], $aStyle['underline'], $aStyle['italic'], $aStyle['size'], $aStyle['font'], $aStyle['smileset'], $aMsg['When']); } $sContents .= makeGroup($sMsgs, "messages"); break; /** * Add message to database. */ /** * Add message to database. */ case 'newMessage': if (empty($sSender)) { break; } if (!useServer()) { $sWhisper = isset($_REQUEST['whisper']) ? process_db_input($_REQUEST['whisper']) : FALSE_VAL; $sColor = $_REQUEST['color'] ? (int) $_REQUEST['color'] : 0; $sBold = $_REQUEST['bold'] ? process_db_input($_REQUEST['bold']) : FALSE_VAL; $sUnderline = $_REQUEST['underline'] ? process_db_input($_REQUEST['underline']) : FALSE_VAL; $sItalic = $_REQUEST['italic'] ? process_db_input($_REQUEST['italic']) : FALSE_VAL; $iSize = $_REQUEST['size'] ? (int) $_REQUEST['size'] : 12; $sFont = $_REQUEST['font'] ? process_db_input($_REQUEST['font']) : "Arial"; $sStyle = serialize(array('color' => $sColor, 'bold' => $sBold, 'underline' => $sUnderline, 'italic' => $sItalic, 'smileset' => $sSmileset, 'size' => $iSize, 'font' => $sFont)); getResult("INSERT INTO `" . MODULE_DB_PREFIX . "Messages`(`Room`, `Sender`, `Recipient`, `Message`, `Whisper`, `Style`, `When`) VALUES('" . $iRoomId . "', '" . $sSender . "', '" . $sRcp . "', '" . $sMessage . "', '" . $sWhisper . "', '" . $sStyle . "', '" . time() . "')"); } if (empty($iRoomId)) { $sSndRcp = strcmp($sSender, $sRcp) < 0 ? $sSender . "." . $sRcp : $sRcp . "." . $sSender; } else { $sSndRcp = ""; }