File size: 3.82Kb
<?php
function chat_rooms()
{
global $db;
$r = $db->select("SELECT * FROM `v4_chat_rooms` ORDER BY room_position ASC");
while ($row = $db->get_row($r, 'MYSQL_ASSOC'))
{
$row['room_online'] = chat_room_online($row['room_id']);
$arr[] = $row;
}
return $arr;
}
function chat_room_info($room_id)
{
global $db;
$r = $db->select("SELECT * FROM `v4_chat_rooms` WHERE room_id='".intval($room_id)."'");
$row = $db->get_row($r, 'MYSQL_ASSOC');
return $row;
}
function chat_room_online($room_id)
{
global $db;
$r = $db->select("SELECT COUNT(*) FROM `v4_chat_users` WHERE user_location='room_id_".intval($room_id)."' AND user_last_active>'".(time()-300)."'");
$row = $db->get_row($r, 'MYSQL_NUM');
return $row[0];
}
function chat_room_online_list($room_id)
{
global $db;
$r = $db->select("SELECT user_id,user_user_name,user_settings FROM `v4_chat_users` WHERE user_location='room_id_".intval($room_id)."' AND user_last_active>'".(time()-300)."'");
while ($row = $db->get_row($r, 'MYSQL_ASSOC'))
{
$arr[] = $row;
}
return $arr;
}
function chat_messages($vars,$user_settings)
{
global $db;
if($vars['page']>0){} else $vars['page'] = 1;
$vars['items_per_page'] = 15;
$start = ($vars['page']*$vars['items_per_page'])-$vars['items_per_page'];
$ignored_users = explode(',', $user_settings['ignore'],-1);
foreach($ignored_users AS $user_id)
{
$ignore .= " AND message_user_id!='".$user_id."' ";
}
$r = $db->select("SELECT * FROM `v4_chat_messages` WHERE message_room_id='".$vars['room_id']."' ".$ignore." AND message_to_user_id=0 OR message_to_user_id=".intval($vars['user_id'])." ORDER BY message_id DESC LIMIT ".$start.", ".$vars['items_per_page']);
while ($row = $db->get_row($r, 'MYSQL_ASSOC'))
{
if($user_settings['smileys']!='off')$row['message_message'] = add_emoticons($row['message_message']);
$row['message_date'] = date("H:i",$row['message_time']);
$arr[] = $row;
}
return $arr;
}
function chat_message_ad($vars)
{
global $db;
$found=false;
$r = $db->select("SELECT message_message FROM `v4_chat_messages` WHERE message_user_id='".intval($vars['user_id'])."' ORDER BY message_id DESC LIMIT 5");
while ($row = $db->get_row($r, 'MYSQL_ASSOC'))
{
if($row['message_message'] == $vars['message']) $found = true;
}
if($found==false)
{
if($vars['to_user_id']>0){}else $vars['to_user_id']=0;
$data = array(
'message_user_id' => $vars['user_id'],
'message_user_name' => $vars['user_name'],
'message_to_user_id' => $vars['to_user_id'],
'message_message' => prepare_text_before_insert($vars['message']),
'message_color' => $vars['color'],
'message_room_id' => $vars['room_id'],
'message_time' => time()
);
$insert_id = $db->insert_array('v4_chat_messages', $data);
}
}
function prepare_text_before_insert($str)
{
$str = strip_tags($str);
return $str;
}
function emoticons_list()
{
$dir = 'static/images/smileys/';
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
$smilie_count = 0;
while (($file = readdir($dh)) !== false)
{
$smilie = explode(".", $file);
if ($file != '.' && $file != '..')
{
$arr[] = '.' . $smilie[0] . '. <img src="' . $dir . $file . '" alt="' . $smilie[0] . '" />';
}
}
closedir($dh);
}
}
return $arr;
}
function add_emoticons($str)
{
$dir = 'static/images/smileys/';
if (is_dir($dir))
{
if ($dh = opendir($dir))
{
$smilie_count = 0;
while (($file = readdir($dh)) !== false)
{
$smilie = explode(".", $file);
if ($file != '.' && $file != '..')
{
if (preg_match("/\." . $smilie[0] . "\./i", $str))
$smilie_count++;
if ($smilie_count < 4)
{
$str = preg_replace('(\.' . $smilie[0] . '\.)', '<img src="' . $dir . $file . '" alt="' . $smilie[0] . '" />', $str, 1);
}
elseif ($smilie_count > 3)
break;
}
}
closedir($dh);
}
}
return $str;
}
?>