View file v4 2/include/functions_chat.php

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;
}


?>