1

Hi, currently I using xoopschat to communicate with my internal staff (with block). After some complain I'd do some changes of the code to make it more user friendly (Included some dynamic update, ajax, and hide post more older than 50). I feel quite satisfy with the changes and willing to share back with originator.
You can copy following code to replace source code in xoopschat/block folder.
Enjoy!
Quote:
Quote:
Quote:
You can copy following code to replace source code in xoopschat/block folder.
Enjoy!
Quote:
// $Id: blockbottom.php,v 1.2 2003/09/03 coded by frankblack
// ------------------------------------------------------------------------- //
// German Xoops-Support-Site
// < http://www.myxoops.de >
// ------------------------------------------------------------------------- //
// Original Author : Pietro Lascari - http://www.cmq.it
// Modified for XOOPS 2 : Marko "Predator" Schmuck and frankblack
// Licence Type : Public GNU/GPL
// ------------------------------------------------------------------------- //
include("../../../mainfile.php");
include(XOOPS_ROOT_PATH."/header.php");
include(XOOPS_ROOT_PATH."/modules/xoopschat/include/xoopsuser.php");
include_once(XOOPS_ROOT_PATH."/modules/xoopschat/class/timestamp.php");
include(XOOPS_ROOT_PATH."/modules/xoopschat/include/functions.php");
include XOOPS_ROOT_PATH."/class/xoopsformloader.php";
if ( file_exists("../language/".$xoopsConfig['language']."/blocks.php") ) {
include("../language/".$xoopsConfig['language']."/blocks.php");
} else {
include("../language/english/blocks.php");
}
global $user;
//CheckIfBanned();
//$pchat = "false";
//if ($pchat == "false") {
//if ($room == "") {
$room = getDefaultRoom();
//}
//}
$iclass = new XchatTime();
$tstamp = $iclass->MakeTimeStamp();
echo "";
echo "";
echo "";
echo "";
echo "";
echo "";
echo "\r\n";
include(XOOPS_ROOT_PATH."/include/xoopscodes.php");
echo "\r\n";
echo "\r\n";
echo "";
echo "";
if (isset($op)) {
if (!$HTTP_POST_VARS['msg'] == "") {
$message = $HTTP_POST_VARS['msg'];
if ($HTTP_POST_VARS['msg_underlined'] == "on") {
$message = "".$message."";
}
if ($HTTP_POST_VARS['msg_italic'] == "on") {
$message = "".$message."";
}
if ($HTTP_POST_VARS['msg_bold'] == "on") {
$message = "".$message."";
}
$mcolor = $HTTP_POST_VARS['colors'];
if ($mcolor == _BL_XCHAT_AUTO) {
$noformat = true;
} else {
$noformat = false;
$list = 0;
while($mcolor != $thecolornames[$list]) {
$list++;
}
}
$myts =& MyTextSanitizer::getInstance();
$messaggio_censurato = $myts->censorString($message);
if ($noformat == true) {
$messaggio = $messaggio_censurato;
} else {
$messaggio = ''.$messaggio_censurato.'';
}
} else {
exit();
}
switch ($pchat) {
case "false":
insertMessage($room, $messaggio, $userarray['nick'], $tstamp, $userarray['ipaddress']);
break;
}
}
echo "\r\n";
echo "";
//include(XOOPS_ROOT_PATH."/footer.php");
?>
Quote:
// $Id: blockchat.php,v 1.2 2003/09/03 coded by frankblack
// ------------------------------------------------------------------------- //
// German Xoops-Support-Site
// < http://www.myxoops.de >
// ------------------------------------------------------------------------- //
// Original Author : Pietro Lascari - http://www.cmq.it
// Modified for XOOPS 2 : Marko "Predator" Schmuck and frankblack
// Licence Type : Public GNU/GPL
// ------------------------------------------------------------------------- //
include("../../../mainfile.php");
include(XOOPS_ROOT_PATH."/header.php");
include_once(XOOPS_ROOT_PATH."/modules/xoopschat/class/timestamp.php");
include(XOOPS_ROOT_PATH."/modules/xoopschat/include/functions.php");
include(XOOPS_ROOT_PATH."/modules/xoopschat/include/xoopsuser.php");
global $xoopsDB,$xoopsConfig,$xoopsTheme, $xoopsModuleConfig;
CheckIfBanned();
$room = getDefaultRoom();
$formatdate = new XchatTime();
getMessages($room);
echo "\n";
echo "";
echo "";
echo "\n";
echo "";
echo "";
echo "";
echo "";
include(XOOPS_ROOT_PATH."/include/xoopscodes.php");
echo "";";
$countmessages = 1;
$msglimit=30;
if (!$xoopsDB->getRowsNum($res) == 0) {
$countmessages = 0;
$messages_array = array();
while($r = $xoopsDB->fetchRow($res)) {
$msgdate = $formatdate->GetTime("H:i:s",$r[4]);
$isnew=$r[4]-time();
$myts =& MyTextSanitizer::getInstance();
$messaggio = $myts->smiley($r[2]);
if ($xoopsModuleConfig['html'] == 0) {
$messaggio = strip_tags($messaggio, '');
}
$messaggio = even_better_wordwrap($messaggio,$xoopsModuleConfig['blockwordwrap'],'');
if($isnew<1000)
$messaggio="".$messaggio;
$messages_array[] .= "".$msgdate." [".$r[3]."] : ".$messaggio."
";
$countmessages++;
}
$k=0;
for($x=$countmessages;$x>=0;$x--) {
if($k>=$msglimit)
break;
echo $messages_array[$x];
$k++;
}
} else {
echo ""; ";
echo ""._MI_XCHAT_NOMESSAGES."";
echo "
}
if($countmessages == 0) {
echo ""; ";
echo "[ "._BL_XCHAT_NOMSGSTODAY." ]";
echo "
}
echo ""; Check more history here
echo "
echo <<< EOF
EOF;
echo "";
if ($xoopsModuleConfig['orderascdesc'] == 'DESC') {
echo "\n";
}
echo "";
?>
Quote:
// $Id: xchatblock.php,v 1.2 2003/09/03 coded by frankblack
// ------------------------------------------------------------------------- //
// German Xoops-Support-Site
// < http://www.myxoops.de >
// ------------------------------------------------------------------------- //
// Original Author : Pietro Lascari - http://www.cmq.it
// Modified for XOOPS 2 : Marko "Predator" Schmuck and frankblack
// Licence Type : Public GNU/GPL
// ------------------------------------------------------------------------- //
function xchat_show($options)
{
global $xoopsModuleConfig, $theroom, $modversion, $xoopsConfig, $config_handler, $module_handler;
//$content="";
$config_handler=xoops_gethandler('config');
$module_handler=xoops_gethandler('module');
$xoopsModule =& $module_handler->getByDirname("xoopschat");
$xoopsModuleConfig =& $config_handler->getConfigsByCat(0, $xoopsModule->getVar('mid'));
$refreshinterval=$xoopsModuleConfig["chatrefresh"]*1000;
$content = "
";
$block = array();
$block['content'] = $content;
$block['title'] = _XCHATBLOCKTITLE;
return $block;
}
function xchat_edit($options)
{
$form = _BL_XCHATWORDWRAP."
";
$form .= _BL_XCHATBLMSGH."
";
$form .= _BL_XCHATBLINPUTH."
";
return $form;
}
?>