*
* @version 1.0
* @date 20 October 2010
*
* Copyright (C)2010 MOVIM project
*
* See COPYING for licensing information.
*/
class Friends extends Widget
{
function WidgetLoad()
{
$this->addcss('friends.css');
$this->addjs('friends.js');
$this->registerEvent('vcardreceived', 'onVcardReceived');
$this->registerEvent('rosterreceived', 'onRosterReceived');
$this->registerEvent('incomeonline', 'onIncomingOnline');
$this->registerEvent('incomeoffline', 'onIncomingOffline');
$this->registerEvent('incomednd', 'onIncomingDND');
$this->registerEvent('incomeaway', 'onIncomingAway');
}
function onVcardReceived($vcard)
{
$img = '
';
MovimRPC::call('movim_fill', 'avatar', MovimRPC::cdata($img));
}
function onRosterReceived($roster)
{
$html = "
";
$i = 0;
foreach($roster["queryItemJid"] as $key => $value ) {
if($value != "undefined") {
if($roster["queryItemName"][$i] != NULL)
$html .= "- ".$roster["queryItemName"][$i]." : ".$value."
";
else
$html .= "- ".$value."
";
}
$i++;
}
$html .= "
";
MovimRPC::call('movim_fill', 'tinylist', MovimRPC::cdata($html));
}
function onIncomingOnline($data)
{
list($jid, $place) = explode("/",$data['from']);
MovimRPC::call('incomingOnline',
MovimRPC::cdata($jid));
}
function onIncomingOffline($data)
{
list($jid, $place) = explode("/",$data['from']);
MovimRPC::call('incomingOffline', MovimRPC::cdata($jid));
}
function onIncomingDND($data)
{
list($jid, $place) = explode("/",$data['from']);
MovimRPC::call('incomingDND', MovimRPC::cdata($jid));
}
function onIncomingAway($data)
{
list($jid, $place) = explode("/",$data['from']);
MovimRPC::call('incomingAway', MovimRPC::cdata($jid));
}
function ajaxRefreshVcard()
{
$user = new User();
$xmpp = XMPPConnect::getInstance($user->getLogin());
$xmpp->getVCard(); // We send the vCard request
}
function ajaxRefreshRoster()
{
$user = new User();
$xmpp = XMPPConnect::getInstance($user->getLogin());
$xmpp->getRosterList();
}
function ajaxConfig()
{
MovimRPC::call('movim_fill', 'friends' , MovimRPC::cdata('configuration'));
MovimRPC::commit();
}
function build()
{
?>