CREDITS: This Is A Modification Of The
"==================================================================================
"Mod "Spoiler TAG" V 1.0.4 for Invision Power Board 2.1.x
"==================================================================================
"Originally programmed by: primetime
"Converted to IPB 2.0 by DarkWave
"Converted to IPB 2.1 by Artakus
"Big correction to IPB 2.1 by Thenab
"Class_bbcode_core correction by Cybero
---------------------------------------
Converted To Xoops2 By Bandit-X
Upload: yoursite/images/spoiler.gif
---
Open File: yoursite/class/module.textsanitizer.php
--------------------------------------------------
//spoiler hack
$text = $this->spoilerConv2($text);
$text = $this->spoilerConv($text);
//end spoiler hack
$patterns[] = "/\[quote]/sU";
$replacements[] = _QUOTEC.'
';
//$replacements[] = 'Quote: ';
$patterns[] = "/\[\/quote]/sU";
$replacements[] = '
';
$patterns[] = "/javascript:/si";
$replacements[] = "java script:";
$patterns[] = "/about:/si";
$replacements[] = "about :";
return preg_replace($patterns, $replacements, $text);
}
//begin spoiler hack function
//Spoiler-----------------------------------------
function spoilerConv($inbx)
{
preg_match_all("#\[spoiler\]#is", $inbx, $numbx);
$ibx = count($numbx[0]);
$abx = 0;
$vbx = 0;
while($abx < $ibx)
{
$outbx = "» "._SPOILERSHOW." - "._SPOILERHIDE." «
";
$outbx .= "";
$inbx = preg_replace("#\[spoiler\]#is", $outbx, $inbx, 1);
$abx++;
}
while($vbx < $ibx)
{
$inbx = preg_replace("#\[\/spoiler\]#is", "
", $inbx, 1);
$vbx++;
}
return $inbx;
}
//end spoiler function
//start 2nd spoiler function
function spoilerConv2($inbx)
{
preg_match_all("#\[spoiler=#is" , $inbx, $numbx);
$ibx = count($numbx[0]);
$abx = 0;
$vbx = 0;
while($abx < $ibx)
{
$outbx = "» "._SPOILERSHOW." «: \\1
";
$outbx .= "";
$inbx = preg_replace("/\[spoiler=(.*)\]/sU", $outbx, $inbx, 1);
$abx++;
}
while($vbx < $ibx)
{
$inbx = preg_replace("#\[\/spoiler\]#is", "
", $inbx, 1);
$vbx++;
}
return $inbx;
}
//end 2nd spoiler function
----------------------------------------------------
save/close File: yoursite/class/module.textsanitizer.php
----------------------------------------------------
Open File: yoursite/language/english?/global.php
------------------------------------------------
define("_ENTEREMAIL","Enter the email address you want to add.");
define("_ENTERCODE","Enter the codes that you want to add.");
define("_ENTERQUOTE","Enter the text that you want to be quoted.");
//spoiler hack
define("_ENTERSPOILER","Enter Text To Be Hidden.");
define("_ENTERSPOILERTITLE","Enter The Title For The Spoiler:");
define("_SPOILERSHOW", "Click To Show Spoiler");
define("_SPOILERHIDE", "Click Again To Hide..");
//end spoiler hack
------------------------------------------------------
save/close File: yoursite/language/english?/global.php
------------------------------------------------------
Open File: yoursite/include/xoops.js (add all the stuff below)
------------------------------------
//begin spoiler hack
var SPOILER_open = 0;
function xoopsCodeSpoiler(id,enterSpoilerPhrase,enterSpoilerTitle){
if (enterSpoilerPhrase == null) {
enterSpoilerPhrase = "Enter The Text To Be Hidden:";
}
var text = prompt(enterSpoilerPhrase, "");
var domobj = xoopsGetElementById(id);
if ( text != null && text != "" ) {
if (enterSpoilerTitle == null) {
enterSpoilerTitle = "Enter The Title For The Spoiler:";
}
var text2 = prompt(enterSpoilerTitle, "");
if (text!=null){
if ( text2 == "" ) {
var result = "[spoiler]" + text + "[/spoiler]";
} else {
var pos = text2.indexOf(unescape('%00'));
if(0 < pos){
text2 = text2.substr(0,pos);
}
var result = "[spoiler=" + text2 + "]" + text + "[/spoiler]";
}
xoopsInsertText(domobj, result);
}
}
domobj.focus();
}
function openClose(id)
{
var obj = "";
// Check browser compatibility
if(document.getElementById)
obj = document.getElementById(id).style;
else if(document.all)
obj = document.all[id];
else if(document.layers)
obj = document.layers[id];
else
return 1;
// Do the magic :)
if(obj.display == "")
obj.display = "none";
else if(obj.display != "none")
obj.display = "none";
else
obj.display = "block";
}
//end spoiler hack.
------------------------------------------
save/close File: yoursite/include/xoops.js
------------------------------------------
Open: yoursite/class/xoopsform/formdhtmltextarea.php
------------------------------------
--find:

\n";
--Replace With:

\n";
------------------------------------------
save/close: yoursite/class/xoopsform/formdhtmltextarea.php
------------------------------------------
Open: yoursite/xoops.css
------------------------
--add:
.spoilertop{
background: #E4EAF2;
border: 1px dotted #000;
border-left: 4px solid #8394B2;
color: #000;
font-weight: bold;
font-size: 10px;
margin: 8px auto 0 auto;
padding: 3px;
cursor:pointer;
cursor:hand;
}
.spoilermain{
background: #FAFCFE;
border: 1px dotted #000;
border-left: 4px solid #8394B2;
border-top: 0;
color: #465584;
padding: 4px;
margin: 0 auto 8px auto;
}
------------------------------
save/close: yoursite/xoops.css
------------------------------
..changelog..
4-4-2006
========
formdhtml changed.added
-----------------------
.htmlspecialchars(_ENTERSPOILER, ENT_QUOTES)."\", \"".htmlspecialchars(_ENTERSPOILERTITLE, ENT_QUOTES)."\");
-----------------------
added to global.php
-------------------
define("_ENTERSPOILERTITLE","Enter The Title For The Spoiler:");
-------------------
changed the xoops.js script.
new script for the spoiler tag. old one is below.
--------------------------------------------------
function xoopsCodeSpoiler(id,enterSpoilerPhrase){
if (enterSpoilerPhrase == null) {
enterSpoilerPhrase = "Enter The Text To Be Hidden:";
}
var text = prompt(enterSpoilerPhrase, "");
var domobj = xoopsGetElementById(id);
if ( text != null && text != "" ) {
var pos = text.indexOf(unescape('%00'));
if(0 < pos){
text = text.substr(0,pos);
}
var result = "[spoiler]" + text + "[/spoiler]";
xoopsInsertText(domobj, result);
}
domobj.focus();
}
----------------------------------------------------
=======