Post by Trip on Nov 22, 2014 12:52:22 GMT -5
NOTE: This hack/code was made for a coding competition (PB Information Center mod competition), and a novice coder named "Himura" wanted to participate, so I accepted him. He gave me suggestions, and I wrote all the code. This was officially released at the time, but I didn't backup the original post. I restructured the original ProBoards v3 Information Center a bit and even made some parts collapsible. This was one hell of an upgraded info center hack at that time that emulated vBulletin board style info centers.
I called it
vB-X Information Center
I called it
vB-X Information Center
<script language="JavaScript">
<!--
/*****************************************************
vB-X Style Info Center *
Created by Trip and Himura *
MAIN FOOTER ONLY *
Do not post this code anywhere else without our permission *
***************************************************/
//Operation Grab "teh" Sh**
var gNum = "";var mNum = "";
var tMem = "";var tTopics = "";
var tPosts = "";var nwMem = "";
var onlineMem = "";var Uactive = 0;
var upTopic = "";var upBy = "";
var upDate = "";var nPMs = "";var tPMs = "";
//Uhm, you're in or out?
if(location.href.match(/index.cg(i|i\?)$/) || location.href.match(/(=login2|=logout|#c|.com$|.com\/$)/)){
var iCenter = document.getElementsByTagName('table');
for(x=0;x<iCenter.length;x++){
if(iCenter[x].innerHTML.match(/Info Center/) && iCenter[x].className=="bordercolor"){
iCenter[x].style.display = "none";
luck=iCenter[x].innerHTML.match(/>(\d+)(\s)G(.+?)(t|s)(.+?)(\d+)(\s)M(.+?)(r|s)/gi);
gNum = parseInt(RegExp.$1); //Guest Number
mNum = RegExp.$6; //Member Number
buck=iCenter[x].innerHTML.match(/tal(.+?)rs:(\s)(.+?)>(\d+)/gi);
tMem = RegExp.$4; //Total Members
ben = iCenter[x].innerHTML.match(/tal(.+?)pics:(\s)(.+?)>(\d+)/gi);
tTopics = RegExp.$4; //Total Topics
ken = iCenter[x].innerHTML.match(/tal(.+?)sts:(\s)(.+?)>(\d+)/gi);
tPosts = RegExp.$4; //Total Posts
men = iCenter[x].innerHTML.match(/west(.+?)mber:(\s)<a(.+?)<\/a>/gi);
nwMem = "<a "+RegExp.$3+"</a>"; //Newest Member
ren = iCenter[x].innerHTML.match(/pdated(.+?)opic:(\s)<(.+?)><(.+?)<\/a>/gi);
upTopic = "<"+RegExp.$4+"</a>"; //Last Updated Topic
uen = iCenter[x].innerHTML.match(/(\s)by(\s)<(.+?)><\/a>(\s)/gi);
upBy = "<b> by </b><"+RegExp.$3+"></a>"; //Updated by That Person
yume = iCenter[x].innerHTML.match(/(\s)by(\s)<(.+?)><\/a>(\s)\((.+?)\)/gi);
upDate = RegExp.$5;
//Okies, Members Online? Condom? :P
if(!iCenter[x].innerHTML.match(/Membe(r|rs)<br>(.*)<\/a>/gi)){
//NOTHING ^_^
}else{
var guck = iCenter[x].innerHTML.match(/Membe(r|rs)<br>(.*)<\/a>/gi);
guck = guck.toString();
uber = guck.split(/<a/gi);
for(q=1;q<uber.length;q++){
lens = uber[q].split(/<\/a>/gi);
for(y=0;y<lens.length;y+=2){
onlineMem +="<u><a "+lens[y]+"</u> <u>";
Uactive++
}
}
}
//Calm Down, okies? ^^;;;;
madWoman = iCenter[x].innerHTML.match(/Inst(.+?)ges:(\s)<(.+?)>(\d+)<\/b>/gi);
tPMs = "<"+RegExp.$3+">"+RegExp.$4+"</b></a>";
madMan = iCenter[x].innerHTML.match(/New:(\s)(.*)(\d+)/gi);
nPMs = RegExp.$2+RegExp.$3+"</b></a>";
//The Center Itself In All My Gloryyyyyy! :D
var vbElement = '<table class="bordercolor" cellpadding="6" cellspacing="1" border="0" width="92%" align="center"><td class="catbg" align="left" colspan="2"><b>What The Hell\'s Going On?</b></td></tr><thead><tr><td align="center" class="titlebg" colspan="2"><font class="text1">vB-X Style Information Center</font></td></tr></thead><tbody><tr><td class="windowbg" colspan="2"><a style="float:right" href="#cE" name="cE" onclick="reducerOne();"><img src="http://4d5.net/boardimages/info.gif" border="0"></a><b><i>Currently Active Users</i></b></a>: '+Math.floor(Uactive+gNum)+' ('+mNum+' Members and '+gNum+' Guests)</td></tr></tbody><tbody><tr><td class="windowbg2" id="bingo"><a href="index.cgi?"><img src="http://4d5.net/boardimages/online.gif" alt="View Who\'s Online" border="0" /></a></td><td id="bingo" class="windowbg" width="100%"><div class="windowbg"><div style="white-space: nowrap"> </div><div>'+onlineMem+'</div></div></td></tr></tbody><tbody><tr><td class="catbg" colspan="2"><a style="float:right" href="#cEs" name="cEs" onclick="antiducerOne();"><img src="http://4d5.net/boardimages/info.gif" border="0"></a>Current Forum Statistics</td></tr></tbody><tbody><tr><td class="windowbg2" id="dingo"><img src="http://4d5.net/boardimages/online.gif" alt="" border="0" /></td><td class="windowbg" width="100%" id="dingo"><div class="windowbg"><div><b>|</b>Total Topics: <i>'+tTopics+'</i><b>|</b> <b>|</b>Total Posts: <i>'+tPosts+'</i><b>|</b> <b>|</b>Members: <i>'+tMem+'</i><b>|</b></div><div>Welcome to our Newest Member, '+nwMem+'<br /><u>Latest Topic</u>: '+upTopic+upBy+' on '+upDate+'<br /><br /><a href="/index.cgi?action=recent"><i>View 10 Most Recent Posts?</i></a></div></div></td></tr></tbody>';
//Special PM Center Part
var gradiusPM = '<tbody><tr><td class="catbg" colspan="2"><a style="float:right" href="#cEp" name="cEp" onclick="PducerOne();"><img src="http://4d5.net/boardimages/info.gif" border="0"></a>Your Personal Message Statistics</td></tr></tbody><tbody><tr><td class="windowbg2" id="singo"><img src="http://4d5.net/boardimages/online.gif" alt="" border="0" /></td><td class="windowbg" width="100%" id="singo"><div class="windowbg">New Private Messages: '+nPMs+' <b>|</b> Total Private Messages: '+tPMs+'</div></td></tr></tbody></table><br /><br /><table align="center" class="windowbg" width="92%"><td align="center" class="windowbg2"><b>vBulletin-X Style Info Center By <a href="http://karmadesigns.proboards22.com">Trip</a> & <a href="http://hosting.ff-masters.net">Himura</a> �2005-2006. All Rights Reserved</td></table><br /><br />';
//Damn Guests <_<...I'll let 'em see though
var gStrike = document.getElementsByTagName('td')[2];
if(gStrike.innerHTML.match(/Guest/gi)){
vbElement+= "</table>"; //Proper s***
document.body.innerHTML+=vbElement;
}else{
document.body.innerHTML+=vbElement+gradiusPM;
}
}
}
}
//Operation: Expand-Collapse [too lazy to fix bigass multidimensional array] version -_-;;;
function reducerOne(){
var nana = document.getElementsByTagName('td');
var daLink = document.getElementsByTagName('a');
for(x=0;x<nana.length;x++){
if(nana[x].id=="bingo"){
nana[x].style.display = 'none';
for(y=0;y<daLink.length;y++){
if(daLink[y].name=="cE"){
daLink[y].parentNode.innerHTML = daLink[y].parentNode.innerHTML.replace("reducerOne","enhancerOne");
}
}
}
}
}
function enhancerOne(){
var nana = document.getElementsByTagName('td');
var daLink = document.getElementsByTagName('a');
for(x=0;x<nana.length;x++){
if(nana[x].id=="bingo"){
nana[x].style.display = '';
for(y=0;y<daLink.length;y++){
if(daLink[y].name=="cE"){
daLink[y].parentNode.innerHTML = daLink[y].parentNode.innerHTML.replace("enhancerOne","reducerOne");
}
}
}
}
}
function antiducerOne(){
var nana = document.getElementsByTagName('td');
var daLink = document.getElementsByTagName('a');
for(x=0;x<nana.length;x++){
if(nana[x].id=="dingo"){
nana[x].style.display = 'none';
for(y=0;y<daLink.length;y++){
if(daLink[y].name=="cEs"){
daLink[y].parentNode.innerHTML = daLink[y].parentNode.innerHTML.replace("antiducerOne","antihancerOne");
}
}
}
}
}
function antihancerOne(){
var nana = document.getElementsByTagName('td');
var daLink = document.getElementsByTagName('a');
for(x=0;x<nana.length;x++){
if(nana[x].id=="dingo"){
nana[x].style.display = '';
for(y=0;y<daLink.length;y++){
if(daLink[y].name=="cEs"){
daLink[y].parentNode.innerHTML = daLink[y].parentNode.innerHTML.replace("antihancerOne","antiducerOne");
}
}
}
}
}
function PducerOne(){
var nana = document.getElementsByTagName('td');
var daLink = document.getElementsByTagName('a');
for(x=0;x<nana.length;x++){
if(nana[x].id=="singo"){
nana[x].style.display = 'none';
for(y=0;y<daLink.length;y++){
if(daLink[y].name=="cEp"){
daLink[y].parentNode.innerHTML = daLink[y].parentNode.innerHTML.replace("PducerOne","QhancerOne");
}
}
}
}
}
function QhancerOne(){
var nana = document.getElementsByTagName('td');
var daLink = document.getElementsByTagName('a');
for(x=0;x<nana.length;x++){
if(nana[x].id=="singo"){
nana[x].style.display = '';
for(y=0;y<daLink.length;y++){
if(daLink[y].name=="cEp"){
daLink[y].parentNode.innerHTML = daLink[y].parentNode.innerHTML.replace("QhancerOne","PducerOne");
}
}
}
}
}
//-->
</script>
[PREVIEW]

