User Online Today Version 2

Kennu75

New member
Source:
Demo:

Code2.png
Ưu điểm:
- Hoạt động cực nhanh.
- Giao diện đẹp.
- Dễ tùy chỉnh.
Nhược điểm:
- Không hiển thị số lượt khách viến thăm diễn đàn.

===================================================================

Chèn code vào Below the Board:
Các bạn download file dưới đây về máy.
File JS:
Sau đó upload file đó lên host của forum mình bằng chức năng File Manager trong trang Admin CP. Cuối cùng là chèn vào Below the Board theo cú pháp như sau:
Mã:
<script src='Link của file vừa upload lên host'></script>
Mọi thắc mắc về code 'User online today version 2' hoặc link download xin nêu tại topic này!
 
Lưu trữ Source Code Online Ver2, source này hơn nặng nhé....
Mã:
String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
    return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
    return this.replace(/\s+$/,"");
}

if(!donotfixactiveuserslist) {
 var donotfixactiveuserslist = false;
}

if(!overallzmotlimit) {
 var overallzmotlimit = 86400000;
}

if(!sortusersalpha) {
 var sortusersalpha = false;
}

window.alphamemsave = new Array();
window.uotsm = '';
window.wincstopm = 0;
var mcssa = new Array();
window.uncxz = 0;
window.boardtimezmot = new Date().getTime();
var foot_datetime = document.getElementById('foot_datetime');
if(foot_datetime) {
 foot_datetime = foot_datetime.innerHTML;
 var fdtstr2x = '';
 var asdf2x = 0;
 var asdf2j = true;
 while(asdf2x < foot_datetime.length) {
  var fdtlc = foot_datetime.charAt(asdf2x);
  if(asdf2j) {
   if(fdtlc == '<') {
    asdf2j = false;
   }
   else {
    fdtstr2x += fdtlc;
   }
  }
  else {
   if(fdtlc == '>') {
    asdf2j = true;
   }
  }
  asdf2x++;
 }
 foot_datetime = fdtstr2x.trim();
 var fdt_m = foot_datetime.split(' ')[2];
 switch(fdt_m) {
  case 'Jan': fdt_m = 0; break;
  case 'Feb': fdt_m = 1; break;
  case 'Mar': fdt_m = 2; break;
  case 'Apr': fdt_m = 3; break;
  case 'May': fdt_m = 4; break;
  case 'Jun': fdt_m = 5; break;
  case 'Jul': fdt_m = 6; break;
  case 'Aug': fdt_m = 7; break;
  case 'Sep': fdt_m = 8; break;
  case 'Oct': fdt_m = 9; break;
  case 'Nov': fdt_m = 10; break;
  case 'Dec': fdt_m = 11; break;
  default: fdt_m = 0;
 }
 var fdt_d = Math.floor(foot_datetime.split(' ')[3]);
 var fdt_p = Math.floor(foot_datetime.split(' ')[1]);
 var fdt_h = Math.floor(foot_datetime.split(':')[0]);
 var fdt_mi = Math.floor(foot_datetime.split(':')[1].split(' ')[0]);
 var fdt_y = new Date().getFullYear();
 if(fdt_m == 0 && new Date().getMonth() == 11) {
  fdt_y++;
 }
 window.boardtimezmot = new Date(fdt_y, fdt_m, fdt_d, fdt_h, fdt_mi, 0, 0).getTime();
}

function qbreaker(str) {
 var qas = new Array();
 if(str.substring(0, forum_link.length) == forum_link) { str = str.substring(forum_link.length, str.length); }
 if(str.substring(0, 9) == 'index.php') { str = str.substring(9, str.length); }
 if(str.charAt(0) == '?') { str = str.substring(1, str.length); }
 str = str.split('&');
 for(var a in str) {
  if(str[a].match('=')) {
   var fpaL = str[a].split('=')[0];
   var fpaR = unescape(str[a].substring(fpaL.length + 1, str[a].length));
   qas[fpaL] = fpaR;
  }
  else {
   qas[str[a]] = true;
  }
 }
 return(qas);
}

function ajaxFunction2() {
 var ajaxRequest;
 try {
  ajaxRequest = new XMLHttpRequest();
 }
 catch (e) {
  try {
   ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch (e) {
   try {
    ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
   }
   catch (e) {
    return false;
   }
  }
 }
 ajaxRequest.open('GET', window.location, true);
 ajaxRequest.send(null);
}

function ajaxFunction1(forceurl) {
 var ajaxRequest;
 try {
  ajaxRequest = new XMLHttpRequest();
 }
 catch (e) {
  try {
   ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch (e) {
   try {
    ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
   }
   catch (e) {
    return false;
   }
  }
 }
 ajaxRequest.onreadystatechange = function() {
  if(ajaxRequest.readyState == 4) {
   var stallall = false;
   var pagecont = false;
   if(ajaxRequest.responseText.match(new RegExp('<ul class=\'cat-pages\'><li class="cat-pageshead">Pages:</li>', 'i'))) {
    var pagestr = ajaxRequest.responseText.split(new RegExp('<ul class=\'cat-pages\'><li class="cat-pageshead">Pages:</li>', 'i'))[1].split(new RegExp('</ul>', 'i'))[0].split(new RegExp('<li>', 'i'));
    var pagen = false;
    for(var a in pagestr) {
     if(pagestr[a].match(new RegExp('\' rel="next">', 'i'))) {
      pagen = pagestr[a].split(new RegExp('\' rel="next">', 'i'))[0].split('\?')[0].split(forum_link + 'members/')[1].split('/')[0];
     }
    }
   }
   var mo = ajaxRequest.responseText.split(new RegExp('<table cellspacing="0" id="member_list_full">' , 'i'))[1].split(new RegExp('</table>', 'i'))[0].split(new RegExp('<tr class="row', 'i'));
   var ou = new Array();
   for(var a = 0;a < mo.length;a++) {
    mo[a] = mo[a].split(new RegExp('</tr>', 'i'))[0];
    if(mo[a].match(new RegExp('<td><a href=\'' + forum_link + 'profile/', 'i'))) {
     var dtstr = mo[a].split(new RegExp('<td>', 'i'))[3].split(new RegExp('</td>', 'i'))[0];
     if(dtstr == '----') {
      dtstr = mo[a].split(new RegExp('<td>', 'i'))[4].split(new RegExp('</td>', 'i'))[0].replace(',', '');
      var dtstrsaveasdfasdgas = dtstr.toString();
      dtstr += ', 12:00 PM';
     }
     else {
      var dtstrsaveasdfasdgas = dtstr.toString();
     }
     var dtok = false;
     if(dtstr.match('minute') || dtstr.match('Today')) {
      dtok = true;
     }
     else {
      if(dtstr.match(',')) {
       if(dtstr.match('Yesterday')) {
        var dtstrsaver = dtstr.split(',')[1];
        var dtstrsavez = new Date(window.boardtimezmot).toLocaleString();
        if(dtstrsavez.match('/')) {
         var dtstrmonthsavez = Math.floor(dtstrsavez.split('/')[0]);
         switch(dtstrmonthsavez) {
          case 1: dtstrmonthsavez = 'January'; break;
          case 2: dtstrmonthsavez = 'February'; break;
          case 3: dtstrmonthsavez = 'March'; break;
          case 4: dtstrmonthsavez = 'April'; break;
          case 5: dtstrmonthsavez = 'May'; break;
          case 6: dtstrmonthsavez = 'June'; break;
          case 7: dtstrmonthsavez = 'July'; break;
          case 8: dtstrmonthsavez = 'August'; break;
          case 9: dtstrmonthsavez = 'September'; break;
          case 10: dtstrmonthsavez = 'October'; break;
          case 11: dtstrmonthsavez = 'November'; break;
          case 12: dtstrmonthsavez = 'December'; break;
          default: dtstrmonthsavez = 'January';
         }
         dtstr = dtstrmonthsavez + ' ' + dtstrsavez.split('/')[1] + ' ' + dtstrsavez.split('/')[2].split(' ')[0] + ',' + dtstrsaver;
        }
        else {
         dtstrsavez = dtstrsavez.substring(dtstrsavez.indexOf(', ') + 2, dtstrsavez.length);
         var dtstrsavezs = dtstrsavez.split(' ');
         dtstr = dtstrsavezs[0] + ' ' + dtstrsavezs[1].replace(',', '') + ' ' + dtstrsavezs[2] + ',' + dtstrsaver;
        }
       }
       var dtstrd = dtstr.split(',');
       var timestr = dtstrd[1];
       var hours = timestr.split(':')[0];
       if(hours.match(' ')) {
        hours = hours.split(' ')[1];
       }
       hours = Math.floor(hours);
       var minutes = timestr.split(':')[1];
       if(minutes.match(' ')) {
        minutes = minutes.split(' ')[0];
       }
       minutes = Math.floor(minutes);
       var amd = timestr.split(' ')[2];
       if(amd == 'PM') {
        hours = hours + 12;
       }
       var seconds = 0;
       var milliseconds = 0;
       var month = dtstrd[0].split(' ')[0];
       switch(month) {
        case 'January': month = 0; break;
        case 'February': month = 1; break;
        case 'March': month = 2; break;
        case 'April': month = 3; break;
        case 'May': month = 4; break;
        case 'June': month = 5; break;
        case 'July': month = 6; break;
        case 'August': month = 7; break;
        case 'September': month = 8; break;
        case 'October': month = 9; break;
        case 'November': month = 10; break;
        case 'December': month = 11; break;
        case 'Jan': month = 0; break;
        case 'Feb': month = 1; break;
        case 'Mar': month = 2; break;
        case 'Apr': month = 3; break;
        case 'May': month = 4; break;
        case 'Jun': month = 5; break;
        case 'Jul': month = 6; break;
        case 'Aug': month = 7; break;
        case 'Sep': month = 8; break;
        case 'Oct': month = 9; break;
        case 'Nov': month = 10; break;
        case 'Dec': month = 11; break;
        default: month = 0;
       }
       var day = dtstrd[0].split(' ')[1];
       var year = dtstrd[0].split(' ')[2];
       var d = new Date(year, month, day, hours, minutes, seconds, milliseconds).getTime();
       if(window.boardtimezmot - d <= overallzmotlimit) {
        dtok = true;
       }
       else {
        stallall = true;
       }
      }
     }
     if(dtok) {
      window.uncxz++;
      var oucheckr = mo[a].split(new RegExp('<td>', 'i'))[1].split(new RegExp('</td>', 'i'))[0];
      var oucheckr3 = oucheckr.substring(oucheckr.indexOf('</'), oucheckr.length);
      var oucheckr2 = oucheckr.substring(0, oucheckr.indexOf('</'));
      var oucheckras = oucheckr2.substring(oucheckr2.lastIndexOf('>'), oucheckr2.length);
      oucheckr2 = oucheckr2.substring(0, oucheckr2.lastIndexOf('>')) + ' title="' + dtstrsaveasdfasdgas + '"' + oucheckr2.substring(oucheckr2.lastIndexOf('>'), oucheckr2.length) + oucheckr3;
      window.alphamemsave[window.alphamemsave.length] = oucheckras.toLowerCase() + ':' + escape(oucheckr2);
      ou[ou.length] = oucheckr2;
     }
    }
   }
   var motc = document.getElementById('membersonlinetodaycell');
   if(sortusersalpha) {
    window.alphamemsave.sort();
    for(var a = 0;a < window.alphamemsave.length;a++) {
     if(a < window.alphamemsave.length - 1) {
      var cstr = ', ';
     }
     else {
      var cstr = '';
     }
     window.uotsm += unescape(window.alphamemsave[a].split(':')[1]) + cstr;
    }
   }
   else {
    for(var a = 0;a < ou.length;a++) {
     if(a < ou.length - 1) {
      var cstr = ', ';
     }
     else {
      var cstr = '';
     }
     window.uotsm += ou[a] + cstr;
    }
   }
   if(pagen && !stallall) {
    ajaxFunction1(forum_link + 'members/' + pagen + '/?search_type=start&name=&group=0&sort=recent_activity&order=d');
   }
   else {
    motc.innerHTML = window.uotsm;
    document.getElementById('uotnumbcount').innerHTML = '(' + window.uncxz + ')';
    if(!donotfixactiveuserslist) {
     ajaxFunction2();
    }
   }
  }
 }
 ajaxRequest.open('GET', forceurl, true);
 ajaxRequest.send(null);
}

var motcmarkimgorg = true;
if(!motcmarkimg) {
 var motcmarkimgorg = false;
 var motcmarkimg = 'http://z4.ifrm.com/static/1/s_users.png';
}
if(!motcmarktext) {
 var motcmarktext = 'Users Online Today';
}
var forpar = document.getElementById('nav').getElementsByTagName('LI')[1].childNodes[0];
var forum_link = forpar.href.substring(0, forpar.href.lastIndexOf('index/'));
var forum_name = forpar.innerHTML;
var a = document.getElementsByTagName('TABLE');
var shl = 3;
for(var b = 0;b < a.length;b++) {
 if(a[b].className == 'forums' && a[b].parentNode.id == 'stats' && a[b].parentNode.className == 'category') {
  var shr = a[b].insertRow(a[b].rows.length - shl);
  var sht = document.createElement('TH');
  sht.colSpan = 2;
  sht.innerHTML = motcmarktext + ' <span id="uotnumbcount"></span>';
  shr.appendChild(sht);
  var shr = a[b].insertRow(a[b].rows.length - shl);
  var sht = shr.insertCell(0);
  sht.className = 'c_mark';
  var aiaum = a[b].rows[1];
  var aiaum2 = '<img src="' + motcmarkimg + '" alt="' + motcmarktext + '" />';
  if(aiaum && !motcmarkimgorg) {
   aiaum = aiaum.cells[0];
   if(aiaum && aiaum.innerHTML.match(new RegExp('<img ', 'i'))) {
    aiaum2 = aiaum.innerHTML.replace(new RegExp(forum_link + 'online/', 'gi'), forum_link + 'members/1/?search_type=start&name=&group=0&sort=recent_activity&order=d').replace(new RegExp('alt=\'Active\'', 'i'), ' alt="' + motcmarktext + '"').replace(new RegExp('alt=Active', 'i'), ' alt="' + motcmarktext + '"');
   }
  }
  sht.innerHTML = '<a href="' + forum_link + 'members/1/?search_type=start&name=&group=0&sort=recent_activity&order=d">' + aiaum2 + '</a>';
  var sht = shr.insertCell(1);
  sht.id = 'membersonlinetodaycell';
  sht.innerHTML = '';
  ajaxFunction1(forum_link + 'members/1/?search_type=start&name=&group=0&sort=recent_activity&order=d');
  b = a.length;
 }
}
 
Back
Top