/home/www/phpfreechat-1.1/demo/demo50_customized_usermetadata.php
<?php
require_once dirname(__FILE__)."/../src/phpfreechat.class.php";
$params["serverid"] = md5(__FILE__); // calculate a unique id for this chat
$params["title"] = "A chat which shows how to use user metadata : add avatar (images) to each connected users";
$params["nick"] = "guest".rand(1,1000);
$params["nickmeta"] = array("avatar" => "demo50_data/avatar".rand(1,9).".jpg");
$params["theme_path"] = dirname(__FILE__)."/demo50_data";
$params["theme"] = "mytheme";
$chat = new phpFreeChat( $params );
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>phpFreeChat demo</title>
</head>
<body>
<?php $chat->printChat(); ?>
<?php
// print the current file
echo "<h2>The source code</h2>";
$filename = __FILE__;
echo "<p><code>".$filename."</code></p>";
echo "<pre style=\"margin: 0 50px 0 50px; padding: 10px; background-color: #DDD;\">";
$content = file_get_contents($filename);
highlight_string($content);
echo "</pre>";
?>
<?php
// print the current file
echo "<h2>The customized javascript</h2>";
$filename = dirname(__FILE__).'/demo50_data/mytheme/customize.js.php';
echo "<p><code>".$filename."</code></p>";
echo "<pre style=\"margin: 0 50px 0 50px; padding: 10px; background-color: #DDD;\">";
$content = file_get_contents($filename);
highlight_string($content);
echo "</pre>";
?>
</body>
</html>
/home/www/phpfreechat-1.1/demo/demo50_data/mytheme/customize.js.php
pfcClient.prototype.updateNickWhoisBox = function(nickid)
{
var className = (! is_ie) ? 'class' : 'className';
var usermeta = this.getAllUserMeta(nickid);
var div = document.createElement('div');
div.setAttribute(className, 'pfc_nickwhois');
var p = document.createElement('p');
p.setAttribute(className, 'pfc_nickwhois_header');
div.appendChild(p);
// add the close button
var img = document.createElement('img');
img.setAttribute(className, 'pfc_nickwhois_close');
img.pfc_parent = div;
img.onclick = function(evt){
this.pfc_parent.style.display = 'none';
return false;
}
img.setAttribute('src', this.res.getFileUrl('images/close-whoisbox.gif'));
img.alt = this.res.getLabel('Close');
p.appendChild(img);
p.appendChild(document.createTextNode(usermeta['nick'])); // append the nickname text in the title
// add the whois information table
var table = document.createElement('table');
var tbody = document.createElement('tbody');
table.appendChild(tbody);
var um_keys = usermeta.keys();
var msg = '';
for (var i=0; i<um_keys.length; i++)
{
var k = um_keys[i];
var v = usermeta[k];
if (v && k != 'nickid'
&& k != 'nick' // useless because it is displayed in the box title
&& k != 'isadmin' // useless because of the gold shield icon
&& k != 'floodtime'
&& k != 'flood_nbmsg'
&& k != 'flood_nbchar'
&& k != 'avatar'
)
{
var tr = document.createElement('tr');
var td1 = document.createElement('td');
td1.setAttribute(className, 'pfc_nickwhois_c1');
var td2 = document.createElement('td');
td2.setAttribute(className, 'pfc_nickwhois_c2');
td1.appendChild(document.createTextNode(k));
td2.appendChild(document.createTextNode(v));
tr.appendChild(td1);
tr.appendChild(td2);
tbody.appendChild(tr);
}
}
div.appendChild(table);
// append the avatar image
if (this.getUserMeta(nickid,'avatar'))
{
var img = document.createElement('img');
img.setAttribute('src',this.getUserMeta(nickid,'avatar'));
img.setAttribute(className, 'pfc_nickwhois_avatar');
div.appendChild(img);
}
// add the privmsg link (do not add it if this button is yourself)
if (pfc.getUserMeta(nickid,'nick') != this.nickname)
{
var p = document.createElement('p');
p.setAttribute(className, 'pfc_nickwhois_pv');
var a = document.createElement('a');
a.setAttribute('href', '');
a.pfc_nickid = nickid;
a.pfc_parent = div;
a.onclick = function(evt){
var nick = pfc.getUserMeta(this.pfc_nickid,'nick');
pfc.sendRequest('/privmsg "'+nick+'"');
this.pfc_parent.style.display = 'none';
return false;
}
var img = document.createElement('img');
img.setAttribute('src', this.res.getFileUrl('images/openpv.gif'));
img.alt = document.createTextNode(this.res.getLabel('Private message'));
a.appendChild(img);
a.appendChild(document.createTextNode(this.res.getLabel('Private message')));
p.appendChild(a);
div.appendChild(p);
}
this.nickwhoisbox[nickid] = div;
}