|
Post by maximus on Dec 27, 2009 19:55:19 GMT -5
<script type="text/javascript"> <!--
/*Custom Post Background Color UBBC - By iAlex - Open Source*/
var iCustomImage = "http://img410.imageshack.us/img410/7852/ibgcolorhuhubbclawldn4.png"; //UBBC Image
if(document.postForm){ var iSayWhat=document.postForm.color.parentNode.parentNode; var iLinkyMe=document.createElement('a'); iLinkyMe.href='javascript: add("[bgcolor=COLOR]")'; var iClickMe=document.createElement('img'); iClickMe.src=iCustomImage; iClickMe.border='0'; iLinkyMe.appendChild(iClickMe); iSayWhat.appendChild(iLinkyMe); if(location.href.match(/quote/)){ document.postForm.message.value = document.postForm.message.value.replace(/\[bgcolor=(.+?)\]/gi, ''); } if(document.postForm.subject && document.postForm.subject.value.match(/Re:/)){ var iTd=document.getElementsByTagName('td'); for(i=0;i<iTd.length;i++){ if(iTd.item(i).width=="100%" && iTd.item(i).className.match(/windowbg2/) && iTd.item(i).innerHTML.match(/\[bgcolor=(.+?)\]/i)){ iTd.item(i).style.backgroundColor=RegExp.$1; iTd.item(i).innerHTML=iTd.item(i).innerHTML.replace(/\[bgcolor=(.+?)\]/ig, ''); } } } } if(location.href.match(/action=(display|recent|calendarview|search2|pmview|userrecent)/) || location.href.match(/index.cgi$/) && document.title.match(/Preview/) && document.postForm){ var iTd=document.getElementsByTagName('td'); for(i=0;i<iTd.length;i++){ if(iTd.item(i).width=="80%" && iTd.item(i).height=="100%" && iTd.item(i).className.match(/windowbg(2)?/) && iTd.item(i).align=="left" && iTd.item(i).vAlign=="top" && iTd.item(i).innerHTML.match(/\[bgcolor=(.+?)\]/i)){ var iColourMeUp=RegExp.$1; var iInsertVariableHere=iTd.item(i).parentNode.getElementsByTagName('td'); for(a=1;a<iInsertVariableHere.length;a++){ iInsertVariableHere.item(a).style.backgroundColor=iColourMeUp; } iTd.item(i).innerHTML=iTd.item(i).innerHTML.replace(/\[bgcolor=(.+?)\]/gi, ''); } } }
//--> </script> In global footers. It's so that you can change the background of your post. We use it on one of the sites I'm on in order to make table for our characters. It's quite cool actually, so I thought I'd share it with you. You don't have to use it, but I like it and you might to. click here for exampleFor example, this is one of the sites I'm on and in this thread almost all of out characters have their own table. The table had the picture of the character that the rper creats on their own and space for the person to type their post. Pretty cool yes? In case you're wondering, my character is Ashanti.
|
|
|
Post by ♦€rida♦ on Dec 27, 2009 20:00:50 GMT -5
Thank you! I'll post that for sure. Is that the code required to allow posting tables *evil glares at Allure's posting table* Is THAT why I couldn't get it to work? Evil. I'll put it up tonight!
|
|
|
Post by maximus on Dec 27, 2009 20:09:06 GMT -5
mmm. yes I believe it is needed. Yay!!! Time for fun!! lol
|
|
|
Post by ♦€rida♦ on Dec 27, 2009 20:38:39 GMT -5
Great, thanks for the code again! It's up and should be running
|
|
|
Post by maximus on Dec 27, 2009 21:14:04 GMT -5
it seems about right yes?
|
|
|
Post by maximus on Dec 27, 2009 21:26:07 GMT -5
try this code in global footers:
<script type="text/javascript"> <!-- /* Name: ENHANCED UBBC TABLE TAGS Location: Global Footer Created by EtonBones at yahoo d o t com Do not redistribute without permission Feel free to edit provided a notation is added to this header stating that fact. THIS HEADER MUST REMAIN INTACT. */
/*********** *****START EDITABLE USER OPTIONS*********************** If not concerned about the security risk posed by allowing users the ability to set events such as onclick and onmouseover in their posts set the following variable to false*/ var DisallowEvents=true;
/*If UBBC Undo installed and you would like enhanced tags added to history set the following variable to true*/ var UUInstalled=false; /******END EDITABLE USER OPTIONS (NO FURTHER EDITING NECESSARY)*******/
var NoGood="Enhanced tags need to be between the [td] and [/td]"; function enhanceTable(){ var td=document.getElementsByTagName("td"); for(i=0;i<td.length;i++){ if(td[i].width=="20%" && td[i].className.match(/windowbg/)){ var msg=td[i].parentNode.getElementsByTagName('td')[1].getElementsByTagName('tr')[1]; if(msg.getElementsByTagName('table').length){ for(l=0;l<msg.getElementsByTagName('table').length;l++){ parseTags(msg.getElementsByTagName('table')[l]); //separate func needed since rowspans need to be set first in order to count columns parseTH(msg.getElementsByTagName('table')[l]); } } }else if(document.postForm && td[i].width=="30%" && td[i].className.match(/windowbg2/) && !document.getElementById('enhancedTable')){ var TR=td[i].parentNode; var newTR=TR.parentNode.insertRow(TR.rowIndex+1); TR.id="enhancedTable"; var newTD=document.createElement('td'); newTD.width='30%'; newTD.className='windowbg2'; newTD.innerHTML='<font size="2">Enhanced Table Tags:</font>'; newTR.appendChild(newTD); newTD=document.createElement('td'); newTD.width='70%'; newTD.className='windowbg2'; newTD.innerHTML='<font size="2">Select Tag:</font><select name="etags" onChange=" addEtag(this.options[this.selectedIndex].value);this.selectedIndex=0;" ><option value="" selected="1">Enhanced Table Tags</option><option value="[th]" >Header</option><option value="[cs=2]">Span Columns</option><option value="[rs=2]">Span Rows</option><option value="[bg=white]">Background Color</option><option value="[atrb=border,0,true]">Any Attribute</option></select> '; newTR.appendChild(newTD); }else if(document.postForm && td[i].width=="100%" && td[i].className.match(/titlebg/) && td[i].innerHTML.match(/Topic Summary/)){ var table=td[i].parentNode.parentNode; var re= /(?:[^\"])(\[(th|cs|rs|bg|atrb).*?\])/gim; if(table.className.match(/tbody/i))table=table.parentNode; for(l=2;l<table.rows.length;l=l+2){ if(table.rows[l].cells[0].innerHTML.match(/(?:[^\"\=])(\[(th|cs|rs|bg|atrb).*?\])/gim)){ while(table.rows[l].cells[0].innerHTML.match(/(?:[^\"\=])(\[(th|cs|rs|bg|atrb).*?\])/im ) ){ table.rows[l].cells[0].innerHTML= table.rows[l].cells[0].innerHTML.replace(/(?:[^\"\=])(\[(th|cs|rs|bg|atrb).*?\])/im, stripAnchor(RegExp.$1,RegExp.$2) ) ; } } } } } }
function stripAnchor(str){ var t=/(<A href\=.*\>(.*?)\<\/A\>)/i if(!str)return ""; var s=str.substr(0,1); if(s=='\"')return str; if(s=="\[") s=""; if(str.match(t))str=str.replace(RegExp.$1,RegExp.$2); return s+"<a title=\""+str+"\">*</a>"; }
function parseTags(TBL){ if(TBL.className !=""){ TBLS=TBL.getElementsByTagName('table') for(k=0;k<TBLS.length;k++)parseTags(TBLS[k]); return true; } var cell=TBL.getElementsByTagName('td'); var nada=""; for (j=0;j<cell.length;j++){ if(cell[j].innerHTML.match(/(\[cs\=(\d+)\])/i)){ cell[j].setAttribute("colSpan",RegExp.$2); cell[j].innerHTML=cell[j].innerHTML.replace(RegExp.$1,''); } if(cell[j].innerHTML.match(/(\[rs\=(\d+)\])/i)){ cell[j].setAttribute("rowSpan",RegExp.$2); cell[j].innerHTML=cell[j].innerHTML.replace(RegExp.$1,''); } if(cell[j].innerHTML.match(/(\[bg\=(.*?)\])/i)){ cell[j].setAttribute("bgColor",RegExp.$2); cell[j].innerHTML=cell[j].innerHTML.replace(RegExp.$1,''); } while(cell[j].innerHTML.match(/(\[atrb\=(.*?)\])/i)){ var r1=RegExp.$1; var r2=RegExp.$2; var atrb=""; var atrbVal=""; var applyTable=false; var oObj; if(r2.split(',').length>0){ atrb=r2.split(',')[0]; atrb=atrb.replace(/^\s*|\s*$/g,"");} if(r2.split(',').length>1) {atrbVal=r2.split(',')[1]; atrbVal=atrbVal.replace(/^\s*|\s*$/g,"");} if(atrbVal.match(/(<A href\=.*\>(.*)\<\/A\>)/i))atrbVal=atrbVal.replace(RegExp.$1,RegExp.$2); if(r2.split(',').length>2)applyTable=r2.split(',')[2]?true:false; oObj=applyTable?TBL:cell[j]; if(atrb != ""){ if(atrb.toLowerCase()=="style"){ oObj.style.cssText+=atrbVal; }else if(atrb.toLowerCase().substr(0,2)=="on" && DisallowEvents){ nada="<a title=\"Disallowed: "+r1.replace("[","").replace("]","") +"\">*</a>"; }else{ document.expando=false; //IE workaround for casing try{ oObj.setAttribute(atrb,atrbVal); }catch(e){ nada="<a title=\"Casing Error: "+r1.replace("[","").replace("]","") +"\">*</a>"; }finally{ document.expando=true; } } } cell[j].innerHTML=cell[j].innerHTML.replace(r1,nada); } } }
function parseTH(TBL){ if(TBL.className !=""){ TBLS=TBL.getElementsByTagName('table') for(k=0;k<TBLS.length;k++)parseTags(TBLS[k]); return true; } var cell=TBL.getElementsByTagName('td'); for (j=0;j<cell.length;j++){ if(cell[j].innerHTML.match(/(\[th\])/i)){ cell[j].setAttribute("colSpan",columns(TBL)); cell[j].innerHTML=cell[j].innerHTML.replace(RegExp.$1,''); } } } function columns(TBL){ //w3c states that a colSpan=0 should make a cell span all columns but IE doesn't honor this, so... var columns=0; var tmp; for(o=0;o<TBL.rows.length;o++){ tmp=0; for(p=0;p<TBL.rows[o].cells.length;p++){ tmp++ if(TBL.rows[o].cells[p].rowSpan>1)tmp=tmp+TBL.rows[o].cells[p].rowSpan-1; } if(tmp>columns)columns=tmp; } return columns; }
function addEtag(tag){ if(tag!=""){ if(UUInstalled){ if(isInsideCell()){ addX(tag); }else{ alert(NoGood); document.postForm.message.focus(); } }else{ if(isInsideCell()){ add(tag); }else{ alert(NoGood); document.postForm.message.focus(); } } } }
function isInsideCell(){ //Function purpose: determine if insertion point falls within the bounds of a cell var msg=document.postForm.message; if(document.postForm.message.createTextRange){ getCursorPositionIE(); var tmp= document.postForm.message.value.substr(0,document.postForm.message.selectionStart).split("\n").length-1; setCursorPositionIE(msg.selectionStart-tmp); } msg.selectionStart=msg.selectionEnd; var curr=msg.selectionStart; if(msg.value.substr(0,curr).lastIndexOf("[td]")==-1 || msg.value.substr(0,curr).lastIndexOf("[td]")<msg.value.substr(0,curr).lastIndexOf("[/td]")) return false; if(msg.value.substr(curr).indexOf("[/td]")==-1 || (msg.value.substr(curr).indexOf("[/td]")>msg.value.substr(curr).indexOf("[td]") && msg.value.substr(curr).indexOf("[td]")!=-1)) return false; if(msg.value.substr(0,curr).lastIndexOf("[")>msg.value.substr(0,curr).lastIndexOf("]")) return false; if(msg.value.substr(curr).indexOf("]")<msg.value.substr(curr).indexOf("[") ) return false; return true; }
if(location.href.match(/action\=(display|pmview|recent|userrecent|goto|search|calendarview)/) || ( document.postForm )) enhanceTable();
function setCursorPositionIE(start,end) { if(document.selection){ var element=document.postForm.message; end=(end)?end:start; var range = element.createTextRange(); range.collapse(true); range.moveEnd('character', end); range.moveStart('character', start); range.select(); } }
function getCursorPositionIE(){ if(document.selection){ var element = document.postForm.message; element.focus(); var range = document.selection.createRange(); var stored_range = range.duplicate(); stored_range.moveToElementText( element ); stored_range.setEndPoint( 'EndToEnd', range ); element.selectionStart = stored_range.text.length - range.text.length; element.selectionEnd = element.selectionStart + range.text.length; element.selectionFaux=true; } } //--> </script>
|
|