*
* @version 1.0
* @date 20 October 2010
*
* Copyright (C)2010 MOVIM project
*
* See COPYING for licensing information.
*/
class Profile extends WidgetBase
{
private static $status;
function WidgetLoad()
{
$this->addcss('profile.css');
$this->addjs('profile.js');
$this->registerEvent('myvcard', 'onMyVcardReceived');
}
function onMyVcardReceived($vcard = false)
{
$html = $this->prepareVcard($vcard);
RPC::call('movim_fill', 'profile', RPC::cdata($html));
}
function ajaxSetStatus($status)
{
$status = rawurldecode($status);
// We update the cache with our status and presence
$presence = Cache::c('presence');
Cache::c(
'presence',
array(
'status' => $status,
'show' => $presence['show'],
)
);
switch($presence['show']) {
case 'chat':
$p = new moxl\PresenceChat();
$p->setStatus($status)->request();
break;
case 'away':
$p = new moxl\PresenceAway();
$p->setStatus($status)->request();
break;
case 'dnd':
$p = new moxl\PresenceDND();
$p->setStatus($status)->request();
break;
case 'xa':
$p = new moxl\PresenceXA();
$p->setStatus($status)->request();
break;
default :
$p = new moxl\PresenceChat();
$p->setStatus($status)->request();
break;
}
}
function prepareVcard($vcard = false)
{
$query = Contact::query()->select()
->where(array(
'key' => $this->user->getLogin(),
'jid' => $this->user->getLogin()));
$contact = Contact::run_query($query);
$presence = Cache::c('presence');
if(isset($contact[0])) {
$me = $contact[0];
$html ='
'.$me->getTrueName().'
';
$html .= '