Luutaa Technologies - Developer Blog

How To : Integrate Arrowchat For Core PHP Website / Application

Arrowchat is one of the powerful tool for chatting between users or friends of website,

There’s a easy installation options for many CMS like wordpress, joomla and drupal but they provide a file integration.php for core installation also,

You can find this file in “includes” Folder.

You need to change in 3 functions :

  1. get_online_list
  2. get_link
  3. get_avatar

get_online_list :

This function is important because it shows list of online users

 

 

 

function get_online_list($userid, $time)
	{
		global $db;
		global $online_timeout;

		$sql = ("
			SELECT DISTINCT " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " userid, " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_NAME . " username, arrowchat_status.session_time lastactivity, " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_AVATAR . " avatar, " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " link, arrowchat_status.message, arrowchat_status.status
			FROM " . TABLE_PREFIX . DB_USERTABLE . "
			JOIN arrowchat_status
				ON " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " = arrowchat_status.userid
			WHERE ('" . time() . "' - arrowchat_status.session_time - 60 < '" . $online_timeout . "')
				AND " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " != '" . $db->escape_string($userid) . "'
			ORDER BY " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_NAME . " ASC
		");

		return $sql;
	}

 

 

Above is the original function provided by arrowchat, You’ve to just modify query nothing else Check above example :

function get_online_list($userid, $time)
	{
		global $db;
		global $online_timeout;

		$sql = ("
			SELECT DISTINCT " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " userid, " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_NAME . " username, arrowchat_status.session_time lastactivity, " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_AVATAR . " avatar, " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " link, arrowchat_status.message, arrowchat_status.status
			FROM " . TABLE_PREFIX . DB_USERTABLE . "
			JOIN arrowchat_status
				ON " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " = arrowchat_status.userid
			WHERE ('" . time() . "' - arrowchat_status.session_time - 60 < '" . $online_timeout . "')
				AND " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " != '" . $db->escape_string($userid) . "'
                                AND (users.user_id IN(SELECT friends.request FROM friends WHERE friends.friend='".$db->escape_string($userid)."' AND friends.status='1') OR users.user_id IN(SELECT friends.friend FROM friends WHERE friends.request='".$db->escape_string($userid)."' AND friends.status='1'))
			ORDER BY " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_NAME . " ASC
		");

		return $sql;
	}

get_link :

This function is also important, its hyperlink (Profile Link) on name of online users

Original Function :

 

 

 

function get_link($link, $user_id)
	{
		global $base_url;

		return $base_url . '../users.php?id=' . $link;
	}

 

 

Modified Example :

 

 

 

function get_link($link, $user_id)
	{
		global $base_url;

		$q = mysql_query("SELECT `username` FROM `users` WHERE `user_id`='".$user_id."'");
		if(mysql_num_rows($q)>0){
			$d = mysql_fetch_array($q);
		}
		return $base_url . '../member/profile/view/' . $d[0];
	}

 

 

get_avatar :

This function is also important because it shows avatar (Profile Pics) of users while chatting :

Original Function :

function get_avatar($image, $user_id)
	{
		global $base_url;

		if (is_file(dirname(dirname(dirname(__FILE__))) . '/images/' . $image . '.gif'))
		{
			return $base_url . '../images/' . $image . '.gif';
		}
		else
		{
			return $base_url . AC_FOLDER_ADMIN . "/images/img-no-avatar.gif";
		}
	}

Modified Example :

function get_avatar($image, $user_id)
	{
		global $base_url;

		if (!empty($image))
		{
			return "http://yourdomain.com/userfiles/" . $image;
		}
		else
		{
			return $base_url . AC_FOLDER_ADMIN . "/images/img-no-avatar.gif";
		}
	}

Leave a Reply:

Your email address will not be published. Required fields are marked *