process($req);
$users = array();
$rooms = array();
function getLocalMessage($messageid, $lang = null) {
if(!isset($lang)) $lang = $GLOBALS['fc_config']['defaultLanguage'];
$msg = $GLOBALS['fc_config']['languages'][$lang]['messages'][$messageid];
if(!$msg) $msg = $GLOBALS['fc_config']['languages'][$GLOBALS['fc_config']['defaultLanguage']]['messages'][$messageid];
if(!$msg) $msg = $GLOBALS['fc_config']['languages']['en']['messages'][$messageid];
return $msg;
}
function parseMessage($msg, $userLabel, $roomLabel, $timestamp) {
global $users, $rooms;
$search = array(
'USER_LABEL',
'ROOM_LABEL',
'TIMESTAMP'
);
$replace = array(
$userLabel,
$roomLabel,
$timestamp
);
return str_replace($search, $replace, $msg);
}
function formatMessage($msg, $userLabel = '', $roomLabel = '', $timestamp = '') {
$color = htmlColor($GLOBALS['fc_config']['themes'][$GLOBALS['fc_config']['defaultTheme']]['enterRoomNotify']);
return "" . parseMessage($msg, $userLabel, $roomLabel, $timestamp) . '
';
}
?>
Chat log
hasNext()) {
$m = $mqi->next();
$m->created = format_Timestamp($m->created, $conn->tzoffset);
switch($m->command) {
case 'msgu':
case 'msgb':
case 'msg':
if ($users[$m->userid] == null) break;
$color = ($m->command != 'msg')?htmlColor($GLOBALS['fc_config']['themes'][$GLOBALS['fc_config']['defaultTheme']]['enterRoomNotify']):$users[$m->userid][2];
$login = $users[$m->userid][0];
if($m->touserid) $login .= "->{$users[$m->touserid][0]}";
echo("");
$msgLabel = $GLOBALS['fc_config']['labelFormat'];
$replace_pairs = array( "AVATAR" => "",
"USER" => $login,
"TIMESTAMP" => $m->created,
);
$msgLabel = strtr ( $msgLabel, $replace_pairs);
echo($msgLabel);
$replace_pairs = array( "'" => "'",
"<" => "<",
">" => ">",
"&" => "&",
" " => " "
);
$str = strtr ( $m->txt, $replace_pairs);
echo("{$str}
");
break;
case 'adu':
$users[$m->userid] = array($m->txt, $m->roomid, htmlColor($GLOBALS['fc_config']['themes'][$GLOBALS['fc_config']['defaultTheme']]['recommendedUserColor']));
if(isset($users[$conn->userid]) && $users[$conn->userid][1] == $m->roomid) {
echo(formatMessage(getLocalMessage(($m->userid == $conn->userid)?'selfenterroom':'enterroom', $conn->lang), $users[$m->userid][0], $rooms[$m->roomid], $m->created));
}
break;
case 'uclc':
$users[$m->userid][2] = htmlColor($m->txt);
break;
case 'mvu':
if($m->userid == $conn->userid) {
echo(formatMessage(getLocalMessage('selfenterroom', $conn->lang), $users[$m->userid][0], $rooms[$m->roomid], $m->created));
} else {
if($m->roomid == $users[$conn->userid][1]) {
echo(formatMessage(getLocalMessage('enterroom', $conn->lang), $users[$m->userid][0], $rooms[$m->roomid], $m->created));
} else {
echo(formatMessage(getLocalMessage('leaveroom', $conn->lang), $users[$m->userid][0], $rooms[$users[$conn->userid][1]], $m->created));
}
}
$users[$m->userid][1] = $m->roomid;
break;
case 'rmu':
echo(formatMessage(getLocalMessage('leaveroom', $conn->lang), $users[$m->userid][0], $rooms[$users[$conn->userid][1]], $m->created));
break;
case 'adr':
$rooms[$m->roomid] = $m->txt;
break;
case 'error':
echo(formatMessage(getLocalMessage($m->txt, $conn->lang), $users[$m->userid][0], $rooms[$users[$conn->userid][1]], $m->created));
break;
case 'back':
echo(formatMessage("/back {$m->roomid}"));
break;
case 'backt':
echo(formatMessage("/backtime {$m->roomid}"));
break;
}
}
?>