Código PHP:
function bbcode($string){
$string = nl2br(htmlspecialchars($string));
$patterns = array(
// aqui más tags
'`\[size=([1-6]+)\](.+?)\[/size\]`is',
'`\[spoiler\](.+?)\[/spoiler\]`is' // este es el tag para el spoiler
);
$replaces = array(
'<h\1>\2</h\1>',
// aqui reemplazo el tag SPOILER
'<div class="pre-spoiler">
<input type="button" value="Mostrar Spoiler" onclick="if (this.parentNode.parentNode.getElementsByTagName(\'div\')[1].getElementsByTagName(\'div\')[0].style.display != \'\') { this.parentNode.parentNode.getElementsByTagName(\'div\')[1].getElementsByTagName(\'div\')[0].style.display = \'\';this.innerText = \'\'; this.value = \'Esconder Spoiler\'; } else { this.parentNode.parentNode.getElementsByTagName(\'div\')[1].getElementsByTagName(\'div\')[0].style.display = \'none\'; this.innerText = \'\'; this.value = \'Mostrar Spoiler\'; }" />
</div>
<div>
<div class="spoiler" style="display: none;">\1</div>
</div>'
);
$string = preg_replace($patterns, $replaces, $string);
return $string;
}
Código PHP:
this.parentNode.parentNode.getElementsByTagName("div")[1].getElementsByTagName("div")[1] has no properties
onclick(click clientX=0, clientY=0)
Saludos.