Arrowchat and vanilla integration
I was trying to add arrowchat into my vanilla forum following this doc http://www.arrowchat.com/documentation/?p=custom-website But since i'm not PHP expert the doc cofused me. What to use Session or cookie?
If i use session the function will be like this:
function get_user_id()
{
$userid = NULL;
if (!empty($_SESSION['userid']))
{
$userid = $_SESSION['userid'];
}
return $userid;
}
so, what the name of vanilla session?
Thank you!
0
Comments
You can get the current vanilla userID using:
There was an error rendering this rich post.
@lifeisfoo Thank you very much!!!
So, do you think this looks good
function get_user_id() { $userid = NULL; if (isset($_SESSION['Gdn::Session()']['user']['UserID'])) { $userid = $_SESSION['$Session->UserID']['user']['UserID']; } return $userid; }function get_user_id() { $Session = Gdn::Session(); if ( $Session->IsValid() ) { return $Session->UserID; }else{ return NULL; } }Keep in mind that this must be executed in a scope where Garden is present. E.g. in a plugin or in a theme class (via hooks).
There was an error rendering this rich post.
That's not working, I don't know why. I will keep trying anyway.
Thanks,
If you post here all the code you are using for the integration somebody can help you.
There was an error rendering this rich post.
Ok good here the whole
integration.phpfile<?php session_start(); /** The orginal integration function * function get_user_id() * { * $userid = NULL; * * if (isset($_SESSION['Gdn::Sessiion']['user']['UserID'])) * { * $userid = $_SESSION['Gdn::Sessiion']['user']['UserID']; * } * * return $userid; } * */ function get_user_id() { $Session = Gdn::Session(); if ( $Session->IsValid() ) { return $Session->UserID; }else{ return NULL; } } function get_friend_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_NAME . " link, arrowchat_status.is_admin, arrowchat_status.status FROM " . TABLE_PREFIX . DB_FRIENDSTABLE . " JOIN " . TABLE_PREFIX . DB_USERTABLE . " ON " . TABLE_PREFIX . DB_FRIENDSTABLE . "." . DB_FRIENDSTABLE_FRIENDID . " = " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " LEFT JOIN arrowchat_status ON " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " = arrowchat_status.userid WHERE " . TABLE_PREFIX . DB_FRIENDSTABLE . "." . DB_FRIENDSTABLE_USERID . " = '" . $db->escape_string($userid) . "' AND (arrowchat_status.session_time + 60 + " . $online_timeout . ") > " . time() . " ORDER BY " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_NAME . " ASC "); return $sql; } 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_NAME . " link, arrowchat_status.is_admin, 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; } function get_user_details($userid) { global $db; $sql = (" SELECT " . 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_NAME . " link, " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_AVATAR . " avatar, arrowchat_status.is_admin, arrowchat_status.status FROM " . TABLE_PREFIX . DB_USERTABLE . " LEFT JOIN arrowchat_status ON " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " = arrowchat_status.userid WHERE " . TABLE_PREFIX . DB_USERTABLE . "." . DB_USERTABLE_USERID . " = '" . $db->escape_string($userid) . "' "); return $sql; } /** * This function returns the profile link of the specified user ID. * * @param userid the user ID to get the profile link of * @return the link of the user ID's profile */ function get_link($link, $user_id) { global $base_url; return $base_url . '../' . $link; } function get_avatar($image, $user_id) { global $base_url; if (is_file(dirname(dirname(dirname(__FILE__))) . '/uploads/' . $image)) { return $base_url . '../uploads/' . $image; } else { return $base_url . AC_FOLDER_ADMIN . "/images/img-no-avatar.gif"; } } /** * This function returns the name of the logged in user. You should not need to * change this function. * * @param userid the user ID of the user * @return the name of the user */ function get_username($userid) { global $db; global $language; global $show_full_username; $users_name = $language[83]; $result = $db->execute(" SELECT " . DB_USERTABLE_NAME . " name FROM " . TABLE_PREFIX . DB_USERTABLE . " WHERE " . DB_USERTABLE_USERID . " = '" . $db->escape_string($userid) . "' "); if ($result AND $db->count_select() > 0) { $row = $db->fetch_array($result); $users_name = $row['name']; } $pieces = explode(" ", $users_name); if ($show_full_username == 1) { return $users_name; } else { return $pieces[0]; } } ?>Thanks,
You need to setup db tables, syncronize them with vanilla user data, overwrite functions according to the arrowchat expected format, etc.
Seems a not so little work.
You can do this on your own or ask for a custom paid development here in the forum.
There was an error rendering this rich post.