De code:
Upload eerst de volgende bestanden naar de forum-root:
vbcode.js
PHP-code:
tags = new Array();
theform = document.vbform;
function thearrayisgood(thearray,i) {
if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))
return false;
else
return true;
}
function getarraysize(thearray) {
for (i = 0; i < thearray.length; i++) {
if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null))
return i;
}
return thearray.length;
}
function arraypush(thearray,value) {
thearraysize = getarraysize(thearray);
thearray[thearraysize] = value;
return thearray[thearraysize];
}
function arraypop(thearray) {
thearraysize = getarraysize(thearray);
retval = thearray[thearraysize - 1];
delete thearray[thearraysize - 1];
return retval;
}
// *******************************************************
function setmode(modevalue) {
document.cookie = "vbcodemode="+modevalue+"; path=/; expires=Wed, 1 Jan 2020 00:00:00 GMT;";
}
function normalmode(theform) {
if (theform.mode[0].checked) return true;
else return false;
}
function stat(thevalue) {
document.vbform.status.value = eval(thevalue+"_text");
}
// *******************************************************
var text = "";
AddTxt = "";
function getActiveText(selectedtext) {
text = (document.all) ? document.selection.createRange().text : document.getSelection();
if (selectedtext.createTextRange) {
selectedtext.caretPos = document.selection.createRange().duplicate();
}
return true;
}
function AddText(NewCode,theform) {
if (theform.message.createTextRange && theform.message.caretPos) {
var caretPos = theform.message.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;
} else {
theform.message.value+=NewCode;
}
setfocus(theform);
AddTxt = "";
}
function setfocus(theform) {
theform.message.focus();
}
function vbcode(theform,vbcode,prompttext) {
if ((normalmode(theform)) || (vbcode=="IMG")) {
if (text) { var dtext=text; } else { var dtext=prompttext; }
inserttext = prompt(tag_prompt+"\n["+vbcode+"]xxx[/"+vbcode+"]",dtext);
if ((inserttext != null) && (inserttext != ""))
AddTxt = "["+vbcode+"]"+inserttext+"[/"+vbcode+"] ";
AddText(AddTxt,theform);
}
else {
donotinsert = false;
for (i = 0; i < tags.length; i++) {
if (tags[i] == vbcode)
donotinsert = true;
}
if (donotinsert)
stat("already_open");
else {
arraypush(tags,vbcode);
AddTxt = "["+vbcode+"]";
AddText(AddTxt,theform);
}
}
theform.message.focus();
}
// *******************************************************
function closetag(theform) {
if (normalmode(theform))
stat('enhanced_only');
else
if (tags[0]) {
Tag = arraypop(tags)
AddTxt = "[/"+ Tag +"]";
AddText(AddTxt,theform);
}
else {
stat('no_tags');
}
theform.message.focus();
}
function closeall(theform) {
if (normalmode(theform))
stat('enhanced_only');
else {
g = getarraysize(tags);
if (thearrayisgood(tags,g-1)) {
Addtxt = "";
for (h = 0; h < g; h++) {
newtag = arraypop(tags);
Addtxt += "[/"+ newtag +"]";
}
AddText(Addtxt,theform);
} else {
stat('no_tags');
}
}
theform.message.focus();
}
// *******************************************************
function fontformat(theform,thevalue,thetype) {
if (normalmode(theform)) {
if (thevalue != 0) {
if (text) { var dtext=text; } else { var dtext=""; }
inserttext = prompt(font_formatter_prompt+" "+thetype,dtext);
if ((inserttext != null) && (inserttext != ""))
AddTxt = "["+thetype+"="+thevalue+"]"+inserttext+"[/"+thetype+"] ";
AddText(AddTxt,theform);
}
}
else {
arraypush(tags,thetype);
Addtxt = "["+thetype+"="+thevalue+"]";
AddText(Addtxt,theform);
}
theform.sizeselect.selectedIndex = 0;
theform.fontselect.selectedIndex = 0;
theform.colorselect.selectedIndex = 0;
theform.message.focus();
}
// *******************************************************
function namedlink(theform,thetype) {
if (text) { var dtext=text; } else { var dtext=""; }
linktext = prompt(link_text_prompt,dtext);
var prompttext;
if (thetype == "URL") {
prompt_text = link_url_prompt;
prompt_contents = "http://";
}
else {
prompt_text = link_email_prompt;
prompt_contents = "";
}
linkurl = prompt(prompt_text,prompt_contents);
if ((linkurl != null) && (linkurl != "")) {
if ((linktext != null) && (linktext != "")) {
AddTxt = "["+thetype+"="+linkurl+"]"+linktext+"[/"+thetype+"] ";
AddText(AddTxt,theform);
}
else{
AddTxt = "["+thetype+"]"+linkurl+"[/"+thetype+"] ";
AddText(AddTxt,theform);
}
}
}
// *******************************************************
function dolist(theform) {
listtype = prompt(list_type_prompt, "");
if ((listtype == "a") || (listtype == "1")) {
thelist = "[list="+listtype+"]\n";
listend = "[/list="+listtype+"] ";
}
else {
thelist = "[list]\n";
listend = "[/list]";
}
listentry = "initial";
while ((listentry != "") && (listentry != null)) {
listentry = prompt(list_item_prompt, "");
if ((listentry != "") && (listentry != null))
thelist = thelist+"[*]"+listentry+"\n";
}
AddTxt = thelist+listend;
AddText(AddTxt,theform);
}
// *******************************************************
function smilie(thesmilie) {
AddSmilie = " "+thesmilie+" ";
AddText(AddSmilie,theform);
}
function opensmiliewindow(x,y,sessionhash) {
window.open("misc.php?action=getsmilies&s="+sessionhash, "smilies", "toolbar=no,scrollbars=yes,resizable=yes,width="+x+",height="+y);
}
// *******************************************************
vbcode_language.js
PHP-code:
// the following are the text prompts for buttons etc.
// DO NOT ADD LINE-BREAKS BETWEEN THE "...." QUOTES!
// MINI-HELP MESSAGES
b_text = "Voeg dikgedrukte tekst toe";
i_text = "Voeg schuingedrukte toe";
u_text = "Voeg onderstreepte tekst toe";
size_text = "Pas de grootte van je tekst aan";
font_text = "Pas het lettertype van je tekst aan";
color_text = "Pas de kleur van je tekst aan";
url_text = "Voeg een link naar een site toe aan je bericht";
email_text = "Voeg een link naar een emailadres toe";
img_text = "Voeg een plaatje toe aan je bericht";
code_text = "Voeg tekst met vaste breedte toe";
php_text = "Geef PHP-code onderscheidende kleurtjes";
spoiler_text = "Gebruik de spoiler";
list_text = "Voeg een lijst toe aan je bericht";
quote_text = "Stop een quote in je bericht";
norm_text = "Versimpelde manier om tags toe te voegen";
enha_text = "Bepaal zelf waar en hoe je tags plaatst";
closecurrent_text = "Sluit huidige vBcode-tag";
closeall_text = "Sluit alle vBcode-tags";
// ERROR MESSAGES
enhanced_only_text = "<< Dit is enkel beschikbaar bij Geavanceerd >>";
no_tags_text = "<< Geen open vBcode-tags gevonden. >>";
already_open_text = "<< Er staat al een dergelijke tag open >>";
// TEXT FOR POP-UP PROMPTS
tag_prompt = "Vul de tekst die je vorm wilt geven in:";
font_formatter_prompt = "Vul de tekst met het opgegeven lettertype in";
link_text_prompt = "Geef eerst wat tekst voor de link (kun je leeglaten)";
link_url_prompt = "Geef de volledige URL voor de link";
link_email_prompt = "Geef het emailadres voor de link";
list_type_prompt = "Wat voor type lijst wil je? Typ '1' voor een genummerde lijst, typ 'a' voor een alfabetische lijst, of typ niks voor een lijst met punten.";
list_item_prompt = "Geef een item op.\nLaat het veld leeg of druk op 'Annuleren' om de lijst te voltooien.";
En in de template dit toevoegen:
PHP-code:
<input type="button" class="bginput" value="SPOILER" title="Spoiler" onclick="vbcode(this.form,'SPOILER','')" onmouseover="stat('spoiler')">
|