1 Who's Viewed Me(wvm 3.5) Mon Oct 05, 2009 10:42 am
danilodeleon
Administrative Team
Ok guys i will share to you how to have a tracker on your fs profile
CREDITS: Marfillaster for the code
Chibibo for the generator
1.first, you must create three files the:
tracker.css
tracker.js
tracker.php
2.step two, after creating the three blank files,open the tracker.php file and put these code inside the php file
3.step three, open your tracker.css file and ad this code
after saving it
4.we now proceed to final stepmopen now your tracker.js file and ad this code:
get the link url of your tracker.js and generate it ,and apply it on your friendster profile with the working application,
that's it your done
:nobody:
CREDITS: Marfillaster for the code
Chibibo for the generator
1.first, you must create three files the:
tracker.css
tracker.js
tracker.php
2.step two, after creating the three blank files,open the tracker.php file and put these code inside the php file
- Spoiler:
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>WVM Visitors</title>
<SCRIPT>
<!--
function doBlink() {
var blink = document.all.tags("BLINK")
for (var i=0; i<blink.length; i++)
blink[i].style.visibility = blink[i].style.visibility == "" ? "hidden" : ""
}
function startBlink() {
if (document.all)
setInterval("doBlink()",1000)
}
window.onload = startBlink;
// -->
</SCRIPT>
<!-- change value of href for your css (relative or absolute) -->
<link rel="stylesheet" type="text/css" media="screen, print" href="tracker.css" />
<!--
/*#######################################################################################
Friendster Tracker version 2.3.5
Created by: Marfillaster, http://profiles.friendster.com/mumbhaki
Version by: ChibibO http://chibibo.elementfx.com
Credits to: Shirow Masamune and Shakiro of friendstertalk.com
License: GNU General Public License, version 2
See http://www.gnu.org/licenses/gpl.html for the full license.
Privacy Policy: Same as friendster.com
Disclaimer: this program is for educational purposes only
the author and editor will not be responsible for any damage that this program will cause
The program and the site is not affiliated with Friendster.com
########################################################################################*/
-->
<?php
$phpowner="YOUR USER ID PLACE HERE";
$limit=1000;
?>
<?php
$owner=$_GET["owner"];
$start=$_GET["start"];
$id=$_GET["id"];
$name=$_GET["name"];
if(strlen($name)>15) {
$name=substr($name,0,15)."…";
}
$url=$_GET["url"];
$gender=$_GET["gender"];
$age=$_GET["age"];
$status=$_GET["status"];
if(strlen($status)>46) {
$status=substr($name,0,0)."Its Complicated";
}
$country=$_GET["country"];
if(strlen($country)>21) {
$country=substr($country,0,18)."…";
}
$since=$_GET["since"];
$seek=$_GET["seek"];
if(strlen($seek)>21) {
$seek=substr($seek,0,20)."…";
}
$exit=$_GET["exit"];
$mydata =getData();
$osh=$_GET["osh"];
$oss=$_GET["oss"];
if(!$exit){
if(!empty($id) && $owner==$phpowner && !empty($gender) && !empty($age) && !empty($status) && !empty($country) && !empty($since) && !empty($seek)) {
$myitem=checkExist($mydata,$id,$exit);
if($myitem['item'])
appendData($myitem['array'],$id,$name,$url,time(),$age,$gender,$status,$country,$since,$seek,0,$myitem['item']['duration'],$myitem['item']['visits'],$limit);
else appendData($myitem,$id,$name,$url,time(),$age,$gender,$status,$country,$since,$seek,0,0,0,$limit);
}
}
else {
if (!empty($id) && $owner==$phpowner && !empty($gender) && !empty($age) && !empty($status) && !empty($country) && !empty($since) && !empty($seek)) {
$myitem=checkExist($mydata,$id,$exit);
if($myitem['item']) {
$s=time()- $myitem['item']['timestamp'];
if ($s<0) $s=0;
appendData($myitem['array'],$id,$name,$url,time(),$age,$gender,$status,$country,$since,$seek,1,
$myitem['item']['duration']+$s,(int)($myitem['item']['visits'])+1,$limit);
}
}
}
function checkExist($da,$valme,$e) {
if(empty($da)){
return $da;
}
for($y=0;$y<count($da);$y++){
if($y>2) {
if(!$da[$y]['exit']) {
$da[$y]['exit']=1;
}
if($da[$y]['duration']<1) {
unset($da[$y]);
}
}
if($da[$y]['id']==$valme) {
$t=$da[$y];
unset($da[$y]);
$da = array_values($da);
return array(
"array" => $da,
"item" => $t
);
}
}
return $da;
}
function appendData($da,$a_id,$a_name,$a_url,$a_timestamp,$a_age,$a_gender,$a_status,$a_country,$a_since,$a_seek,$a_exit,$a_duration,$a_visits,$a_limit) {
if(!is_array($da)){
$da=array(
array(
"id" => $a_id,
"name" => $a_name,
"url" => $a_url,
"timestamp" => $a_timestamp,
"age" => $a_age,
"gender" => $a_gender,
"status" => $a_status,
"country" => $a_country,
"since" => $a_since,
"seek" => $a_seek,
"exit" => $a_exit,
"duration" => $a_duration,
"visits" => $a_visits
)
);
}
else {
array_unshift($da,
array(
"id" => $a_id,
"name" => $a_name,
"url" => $a_url,
"timestamp" => $a_timestamp,
"age" => $a_age,
"gender" => $a_gender,
"status" => $a_status,
"country" => $a_country,
"since" => $a_since,
"seek" => $a_seek,
"exit" => $a_exit,
"duration" => $a_duration,
"visits" => $a_visits
)
);
if(count($da)>$a_limit) array_pop($da);
}
saveData($da);
return;
}
function saveData($d) {
if (file_exists("mv.txt")) unlink("mv.txt");
$file = fopen("mv.txt", "w") or exit("Unable to open file!");
fclose($file);
$temp="";
for($x=0;$x<count($d);$x++) {
$temp=$temp.$d[$x]['id']."&".$d[$x]['name']."&".$d[$x]['url']."&".$d[$x]['timestamp']."&".$d[$x]['age']."&".$d[$x]['gender']."&".$d[$x]['status']."&".$d[$x][
'country']."&".$d[$x]['since']."&".$d[$x]['seek']."&".$d[$x]['exit']."&".$d[$x]['duration']."&".$d[$x]['visits']."\r";
}
$file = fopen("mv.txt", "a+") or exit("Unable to open file!");
fwrite($file,$temp);
fclose($file);
return;
}
function getData() {
$a="";
$temp="";
$file = fopen("mv.txt", "r") or exit("Unable to open file!");
while(!feof($file))
{
$temp=$temp.fgets($file);
}
fclose($file);
$j=explode("\r",$temp);
foreach ($j as $val) {
$c=explode("&",$val);
if(count($c)>3) {
if ($a==""){
$a=array(
array(
"id" => $c[0],
"name" => $c[1],
"url" => $c[2],
"timestamp" => $c[3],
"age" => $c[4],
"gender" => $c[5],
"status" => $c[6],
"country" => $c[7],
"since" => $c[8],
"seek" => $c[9],
"exit" => $c[10],
"duration" => $c[11],
"visits" => $c[12]
)
);
}
else {
array_push($a,
array(
"id" => $c[0],
"name" => $c[1],
"url" => $c[2],
"timestamp" => $c[3],
"age" => $c[4],
"gender" => $c[5],
"status" => $c[6],
"country" => $c[7],
"since" => $c[8],
"seek" => $c[9],
"exit" => $c[10],
"duration" => $c[11],
"visits" => $c[12]
)
);
}
}
}
return $a;
}
?>
</head>
<body>
<?php
$items = getData();
$thispage = $PHP_SELF ;
$num = count($items);
$per_page = 4;
$showeachside = 5;
if(empty($start))$start=0;
$max_pages = ceil($num / $per_page);
$cur = ceil($start / $per_page)+1;
?>
<?php
for($x=$start;$x<min($num,$start+$per_page);$x++){
if(($x % 2) == 1) {
echo "\t<div class=\"stxt1\">\n";
echo "\t\t<div class=\"dtxt1\">\n";
}
else {
echo "\t<div class=\"stxt0\">\n";
echo "\t\t<div class=\"dtxt0\">\n";
}
$k=date("D d F Y H:i:s ",$items[$x]['timestamp']+$oss+18000)." GMT".$osh;
$minute=floor((double)$items[$x]['duration']/60);
$second=fmod((double)$items[$x]['duration'],60);
if(!$items[$x]['exit']) $online="<span id=online><img src='https://2img.net/r/ihimizer/img179/2899/onlinenoweg9.gif' class='onlinenow'></span> ";
else $online="<span id=\"offline\"><img src='https://2img.net/h/i104.photobucket.com/albums/m168/chibib0/wvm/offline.gif' class='onlinenow'></span>";
echo "\t\t</div>\n";
echo "\t\t<div class=\"imgblock\">\n";
echo "\t\t\t\t\t<a title=\"".$items[$x]['name']."\" href=\"http://profiles.friendster.com/".$items[$x]['id']."\" target=\"_blank\">";
echo "<img src=\"".$items[$x]['url']."\" alt=\"".$items[$x]['name']."\" />";
echo "</a>\n";
echo "\t\t</div>\n";
echo "\n\t\t\t<div class=\"content\">\n";
echo "\n\t\t\t".$k."\n";
echo "\n\t\t\t<br />Name: <span id=\"namef\"><a title=\"".$items[$x]['name']."\" href=\"http://profiles.friendster.com/".$items[$x]['id']."\"
target=\"_blank\"> ".$items[$x]['name']."</a></span>\n";
echo "\n\t\t\t<br />".$items[$x]['gender']." ,\n";
echo "\n\t\t\t".$items[$x]['age'].", \n";
echo "\n\t\t\t".$items[$x]['status']."\n";
echo "\n\t\t\t<br />Interested In: ".$items[$x]['seek']."\n";
echo "\n\t\t\t<br />Member Since: ".$items[$x]['since']."\n";
echo "\n\t\t\t<br />Location: ".$items[$x]['country']."\n";
echo "\n\t\t\t<br />Total Visits: ".$items[$x]['visits']." visit(s) in ".$minute." min(s)\n";
echo "\t\t\t\t\t<br />".$online." | <span id=\"misc\"><a href=\"http://www.friendster.com/sendmessage.php?uid=".$items[$x]['id']."\" target=\"_blank\" title=\"Send A Message\"><img style=\"border:0;width:17px;height:12px\" src=\"http://images.friendster.com/images/samsg_icon.gif\"></img>";
echo "</a>";
echo "<a ";
echo "href=\"http://www.friendster.com/sendmessage.php?uid=".$items[$x]['id']."&action=sendsmile\" ";
echo "target=\"_blank\" title=\"Send A Smile\"><img style=\"border:0;width:17px;height:13px\" ";
echo "src=\"http://images.friendster.com/images/sas_icon.gif\"></img>";
echo "</a>";
echo "<a ";
echo "href=\"http://www.friendster.com/comments.php?uid=".$items[$x]['id']."\" ";
echo "target=\"_blank\" title=\"Give A Comment\"><img style=\"border:0;width:17px;height:13px\" ";
echo "src=\"https://2img.net/h/i104.photobucket.com/albums/m168/chibib0/wvm/comments.png\"></img>";
echo "</a>";
echo "<a ";
echo "href=\"http://www.friendster.com/bookmarks.php?action=add&uid=".$items[$x]['id']."\" ";
echo "target=\"_blank\" title=\"Bookmark It?\"><img style=\"border:0;width:17px;height:13px\" ";
echo "src=\"https://2img.net/h/i104.photobucket.com/albums/m168/chibib0/wvm/bookmark.png\"></img>";
echo "</a></span><br />\n";
echo "\n\t\t\t</div>\n";
echo "\n\t\t\t<br clear=\"all\" />\n";
echo "\n\t\t\t</div>\n";
}
?>
<div id="footer" class="stxt<?php print($perpage%2);?>">
<span class="strong">
<?php
if(($start-$per_page) >= 0)
{
$next = $start-$per_page;
?>
<a title="First Page" name="lnk" href="<?php print("$thispage");?>">...</a>
<?php
}
?>
<?php
if(($start-$per_page) >= 0) {
$next = $start-$per_page;
?>
<a title="Previous Page" name="lnk" href="<?php print("$thispage".($next>0?("?start=").$next:""));?>">Previous </a>
<?php
}
?>
<?php
$eitherside = ($showeachside * $per_page);
if($start+1 > $eitherside)print (" .... ");
$pg=1;
for($y=0;$y<$num;$y+=$per_page)
{
$class=($y==$start)?"pageselected":"";
if(($y > ($start - $eitherside)) && ($y < ($start + $eitherside)))
{
?>
<a title="Page <?php print($pg);?>" name="lnk" class="<?php print($class);?>" href="<?php
print("$thispage".($y>0?("?start=").$y:""));?>"><?php print($pg);?></a>
<?php
}
$pg++;
}
if(($start+$eitherside)<$num)print (" .... ");
?>
<?php
if($start+$per_page<$num)
{
?>
<a title="Next Page" name="lnk" href="<?php print("$thispage?start=".max(0,$start+$per_page));?>"> Next</a>
<?php
}
?>
<?php
if($start+$per_page<$num)
{
?>
<a title="Last Page" name="lnk" href="<?php print("$thispage?start=".$per_page*($max_pages-1));?>">...</a>
<?php
}
?>
<br />
</span>
Page <?php print($cur);?> of <?php print($max_pages);?> ( <?php print($num);?> total records )
<br /><?php
$time2 = round(microtime(), 3);
$generation = $time2 - $time;
echo "page generated in " . $generation . " sec, $per_page queries";
echo "<br>";
?>
<div id="copyright">
<center>
WVMe by <a href="http://profiles.friendster.com/mumbhaki" target="_blank">Marfillaster</a><br>Version .3.5 by: <a href="http://profiles.friendster.com/chibib0" target="_blank">ChibibO</a><br><blink><b>Grab your own!</b></blink> @ <a
href="http://chibibo.uni.cc" target="_blank">Chibibo-RN</a><br />
</center>
</div>
</div>
</body>
</html>
3.step three, open your tracker.css file and ad this code
- Spoiler:
body,div,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,p,th,td {margin:0;padding:0;} table {border-collapse:collapse;border-spacing:0;} fieldset,img {border:0;} ol,ul {list-style:none;} h1,h2,h3,h4,h5,h6 {font-size:100%;}
body {color:#555555;font:13px arial,helvetica,sans-serif;} table {font-size:inherit;font:100%;} select,input,textarea {font:99% arial,helvetica,sans-serif;} /*body * {line-height:1.22em;}*/ *img {vertical-align:bottom;}
/* NO NEED TO EDIT ABOVE THIS LINE */
/* Main Background Style */
body {
border:none;
background: #000000;
color: #e5e5e5;
overflow-y: hidden;
margin: 0px;
padding: 0px;
}
/* Default link styles */
a {
font-weight: bold;
}
a:link, a:visited, a:active, a:hover { text-decoration: none;
color: #ccff00;
font-weight: bold; }
a:hover { text-decoration: none;
color: #ccff00;
font-weight: bold; }
a.action:link, a.action:visited, a.action:hover, a.action:active { color: #ccff00; }
span, .more, .visit, .copy, .name {
font-size: 11px;
}
/* Default Image Styles */
.imageblock {
display: inline-block;
float: left;
background-color: #ffffff;
overflow: hidden;
height:98px;
width:78px;
text-align: center;
margin-right: 2px;
margin-left: 5px;
border: 2px solid #ffffff;
}
img {
height: 98px;
border: 0px;
}
/* Alternate Row */
.even {
background: #444;
color:#e5e5e5;
}
/* Default Copyright Style */
#copyright {
border: 2px solid #666666;
font-size:11px
}
/* NO NEED TO EDIT BELOW THIS LINE */
.row {
width: 100%;
}
.visit {
margin-bottom: 5px;
}
.wrapper {
width: 285;
}
.ltd {
width: 85px;
vertical-align: top;
}
#top {
padding-left: 5px;
font-size:11px;
text-align:center;
font-weight:bold;
}
#foot {
padding-left: 5px;
font-size:11px;
font-weight:bold;
}
.copy {
width: 285;
text-align:center;
}
.row {
padding: 5px;
}
sup {
font-size: .5em
}
.online {
color: green;
font-weight: bold
}
.offline {
color: red;
font-weight: bold
}
.strong {
font-weight: bold;
}
.onlinenow {
width:108px;
height:18px;
}
.misc {float:left}
after saving it
4.we now proceed to final stepmopen now your tracker.js file and ad this code:
- Spoiler:
//onload handler
function onProfileLoad() {
//insert generated boxes here
//insert tracker box at the end of sidebar column
addBox(pageOwnerFName+"'s Visitors",TRACKER.div.innerHTML,"tracker","right");
}
/*TRACKER OBJECT*/
if (typeof TRACKER == "undefined") { TRACKER = {}; }
TRACKER = {
//iframe css
style: {
filter: "chroma(color='#FFFFFF')",
width: '300px',
height: '670px',
border: '0px',
overflow: 'auto'
},
//iframe attributes
attributes: {
frameborder: '0',
allowtransparency: 'true'
},
phplink: "PLACE HERE THE LINK OF YOUR TRACKER.PHP URL",
display: 6,
/*do not edit below this line*/
/*
WVMv3
by marfillaster, (c) 2007 www.friendster.com/mumbhaki
Version and Hosted
by ChibibO (c) 2008 http://chibibo.uni.cc
credits: feruzz, friendstertalk.com, www.friendster.com
licensed under GNU General Public License, version 2 http://www.gnu.org/licenses/gpl.html
Disclaimer: NO GUARANTEE and WARRANTY provided! For educational purposes only. Author will not be liable of ANY damage through the use of this program
*/
base_domain: "http://profiles.friendster.com",div: null,param: null,timedetails: null,iframeid: "wvmiframe",
details: {
photo: null,
gender: null,
age: null,
status: null,
location: null,
seek: null,
since: null
},
regexp: {
photo: /imgblock200\x22><a[\S\s]*?img src="([\S\s]*?)"/i,
gender: />([\S]*?male)/i,
age: /male, ([\d]*?),/i,
status: /male, [\d]*?, ([\S\s]*?)<\/span>/i,
location: /Location\: <\/span><a[\S\s]*?>([\S\s]*?)<\/a><\/li>/i,
seek: /In\: <\/span>([\S\s]*?)<\/li>/i,
since: /Since\: <\/span>([\S\s]*?)<\/li>/i
},
init: function() {
try{getElementsByClass(/commonbox[\s]*?controlpanel/i,null,"DIV")[0].innerHTML+="<iframe id=\""+this.iframeid+"\" style=\"display:none\" src=\"about:blank\"></iframe>";}catch(e){this.error("Cannot insert inline iframe.");return;}
var d= new Date();
var hr=invert(d.getTimezoneOffset()/60);
this.timedetails="os="+hr;
var ifsrc=this.phplink+"?"+this.timedetails+"&id="+pageViewerID+"&owner="+pageOwnerID+"&num="+this.display;
var atr="";
var sty="";
for (val in this.attributes) {
atr += val +"="+ this.attributes[val]+" ";
}
for (val in this.style) {
sty += val +":"+ this.style[val]+";";
}
try {this.div=document.createElement("<div>")}
catch(e){this.div=document.createElement("div")}
this.div.innerHTML="<iframe id=\"wvm\" "+atr+"src=\""+ifsrc+"\" style=\""+sty+"\"></iframe>";
if(pageViewerID!=pageOwnerID) if(pageViewerID!="") this.getDETAILS();
},
getDETAILS: function() {
processAjaxRequest("GET",this.base_domain+"/user.php?uid="+pageViewerID+"&_pmr=h&_pmmo=0&_pmt=controlpanel_1_1",true,null, "TRACKER.parseDETAILS",null);
},
parseDETAILS: function(htm) {
if(htm.replace(/^\s*|\s*$/mg,"")=="") {this.error("Empty xmlresponse! Unable to parse your details!");return;}
else {
for (val in this.details) {
try {
this.details[val]=encodeURIComponent(new RegExp(this.regexp[val]).exec(htm)[1]);
}
catch(e) {
this.details[val]="";
}
}
if(!this.details.photo) {this.error("Unable to parse primary photo! Invalid xmlresponse or incorrect photo regexp.");return;}
this.param="?owner="+pageOwnerID+"&id="+pageViewerID+"&name="+pageViewerFName+"&img="+this.details.photo+"&gen="+this.details.gender+"&age="+this.details.age+"&stat="+this.details.status+"&loc="+this.details.location+"&seek="+this.details.seek+"&since="+this.details.since;
try{document.getElementById(this.iframeid).src=this.phplink+this.param;}catch(e){this.error("Unable to locate inline iframe id:"+this.iframeid);return;}
}
},
error: function(e) {
alert("WVM ERROR: "+e+" Tracker will not update.");
}
};
/*END TRACKER OBJECT*/
if (!attachOnLoadHandler(function(){onProfileLoad()})) window.onload = function(){onProfileLoad()};
TRACKER.init();
/*MISC FUNCTIONS*/
function addBox(head,code,id,siblingafter) {
/*
head:
html string title
null - no header bar
code:
html string content
id:
unique string css pointer
siblingafter:
regexp classname
'left' - mainbar column end
'right' - sidebar column end
*/
try {
var li=document.createElement("li");
} catch(e) {
var li=document.createElement("<li>");
}
if(!head) head="";
else head="<h2>"+head+"</h2>";
li.innerHTML="<div id=\""+id+"\" class=\"commonbox "+id+"\">"+
head+
"<div id=\"content_"+id+"\">"+
code+
"</div>"+
"</div>";
if(siblingafter=="left") getElementsByClass(/commonbox[\s]*?controlpanel/i,null,"DIV")[0].parentNode.parentNode.appendChild(li);
else if(siblingafter=="right") getElementsByClass(/commonbox[\s]*?friends/i,null,"DIV")[0].parentNode.parentNode.appendChild(li);
else {
var si=getElementsByClass(siblingafter,null,"DIV")[0];
si.parentNode.parentNode.insertBefore(li,si.parentNode);
}
}
function processAjaxRequest(type,url,cont,param,handler,handlerparam) {
//by marfillaster
if(handlerparam) handlerparam=","+handlerparam;
else handlerparam="";
var httprequest= window.XMLHttpRequest? new XMLHttpRequest():new ActiveXObject("Msxml2.XMLHTTP");
if(handler) eval("httprequest.onreadystatechange=function(){if (httprequest.readyState==4) {"+handler+"(httprequest.responseText"+handlerparam+");}}");
httprequest.open( type, url, cont);
if(type=="POST") {
httprequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
httprequest.setRequestHeader("Content-length", param.length);
httprequest.setRequestHeader("Connection", "close");
}
httprequest.send(param);
}
function invert(x) {
if(x>0) return parseInt("-"+x);
else if(x<0) {
x=x+"";
return parseInt(x.substr(1,x.length-1));
}
return 0;
}
function randOrd(){
return (Math.round(Math.random())-0.5);
}
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp(searchClass);
for (i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els[i].className) ) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}
/*END MISC FUNCTIONS*/
//other codes goes here
get the link url of your tracker.js and generate it ,and apply it on your friendster profile with the working application,
that's it your done
:nobody: