man müsste verhindern, dass für die betroffenen Gruppen der Button zum öffnen des Spoilers angezeigt wird
Ich schlaf mal eine Nacht drüber, oft hab ich dann irgendwann eine Idee
![Big Grin Big Grin](https://www.mybb.de/forum/images/smilies/biggrin.gif)
Aber ich hoffe auf die Schwarmintelligenz
edit: Schlaf war nicht nötig
in der Plugin-Datei folgendes geändert:
Code:
while(preg_match('#\[spoiler\](.*?)\[\/spoiler\]#si',$message))
$message = preg_replace('#\[spoiler\](.*?)\[\/spoiler\]#si','<div class="spoiler">
<div class="spoiler_title"><span class="spoiler_button float_right" onclick="javascript: if(parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display == \'block\'){ parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display = \'none\'; this.innerHTML=\''.$lang->my_spoiler_show.'\'; } else { parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display = \'block\'; this.innerHTML=\''.$lang->my_spoiler_hide.'\'; }">'.$lang->my_spoiler_show.'</span>'.$lang->my_spoiler_spoil.':</div>
<div class="spoiler_content" style="display: none;">$1</div>
</div>',$message);
// Creamos el MyCode complejo con comillas: [spoiler="título aquí"]contenido aquí[/spoiler]
while(preg_match('#\[spoiler="(.*?)"\](.*?)\[\/spoiler\]#si',$message))
$message = preg_replace('#\[spoiler="(.*?)"\](.*?)\[\/spoiler\]#si','<div class="spoiler">
<div class="spoiler_title"><span class="spoiler_button float_right" onclick="javascript: if(parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display == \'block\'){ parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display = \'none\'; this.innerHTML=\''.$lang->my_spoiler_show.'\'; } else { parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display = \'block\'; this.innerHTML=\''.$lang->my_spoiler_hide.'\'; }">'.$lang->my_spoiler_show.'</span>$1:</div>
<div class="spoiler_content" style="display: none;">$2</div>
</div>',$message);
// Creamos el MyCode complejo sin comillas: [spoiler=título aquí]contenido aquí[/spoiler]
while(preg_match('#\[spoiler=(.*?)\](.*?)\[\/spoiler\]#si',$message))
$message = preg_replace('#\[spoiler=(.*?)\](.*?)\[\/spoiler\]#si','<div class="spoiler">
<div class="spoiler_title"><span class="spoiler_button float_right" onclick="javascript: if(parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display == \'block\'){ parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display = \'none\'; this.innerHTML=\''.$lang->my_spoiler_show.'\'; } else { parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display = \'block\'; this.innerHTML=\''.$lang->my_spoiler_hide.'\'; }">'.$lang->my_spoiler_show.'</span>$1:</div>
<div class="spoiler_content" style="display: none;">$2</div>
</div>',$message);
return $message;
zu:
Code:
if($mybb->user['uid'] > 0) {
while(preg_match('#\[spoiler\](.*?)\[\/spoiler\]#si',$message))
$message = preg_replace('#\[spoiler\](.*?)\[\/spoiler\]#si','<div class="spoiler">
<div class="spoiler_title"><span class="spoiler_button float_right" onclick="javascript: if(parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display == \'block\'){ parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display = \'none\'; this.innerHTML=\''.$lang->my_spoiler_show.'\'; } else { parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display = \'block\'; this.innerHTML=\''.$lang->my_spoiler_hide.'\'; }">'.$lang->my_spoiler_show.'</span>'.$lang->my_spoiler_spoil.':</div>
<div class="spoiler_content" style="display: none;">$1</div>
</div>',$message);
// Creamos el MyCode complejo con comillas: [spoiler="título aquí"]contenido aquí[/spoiler]
while(preg_match('#\[spoiler="(.*?)"\](.*?)\[\/spoiler\]#si',$message))
$message = preg_replace('#\[spoiler="(.*?)"\](.*?)\[\/spoiler\]#si','<div class="spoiler">
<div class="spoiler_title"><span class="spoiler_button float_right" onclick="javascript: if(parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display == \'block\'){ parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display = \'none\'; this.innerHTML=\''.$lang->my_spoiler_show.'\'; } else { parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display = \'block\'; this.innerHTML=\''.$lang->my_spoiler_hide.'\'; }">'.$lang->my_spoiler_show.'</span>$1:</div>
<div class="spoiler_content" style="display: none;">$2</div>
</div>',$message);
// Creamos el MyCode complejo sin comillas: [spoiler=título aquí]contenido aquí[/spoiler]
while(preg_match('#\[spoiler=(.*?)\](.*?)\[\/spoiler\]#si',$message))
$message = preg_replace('#\[spoiler=(.*?)\](.*?)\[\/spoiler\]#si','<div class="spoiler">
<div class="spoiler_title"><span class="spoiler_button float_right" onclick="javascript: if(parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display == \'block\'){ parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display = \'none\'; this.innerHTML=\''.$lang->my_spoiler_show.'\'; } else { parentNode.parentNode.getElementsByTagName(\'div\')[1].style.display = \'block\'; this.innerHTML=\''.$lang->my_spoiler_hide.'\'; }">'.$lang->my_spoiler_show.'</span>$1:</div>
<div class="spoiler_content" style="display: none;">$2</div>
</div>',$message);
return $message;
} else {
while(preg_match('#\[spoiler\](.*?)\[\/spoiler\]#si',$message))
$message = preg_replace('#\[spoiler\](.*?)\[\/spoiler\]#si','<div class="spoiler">
<div class="spoiler_title">'.$lang->my_spoiler_spoil.':</div>
<div class="spoiler_content" style="display: none;">$1</div>
</div>',$message);
// Creamos el MyCode complejo con comillas: [spoiler="título aquí"]contenido aquí[/spoiler]
while(preg_match('#\[spoiler="(.*?)"\](.*?)\[\/spoiler\]#si',$message))
$message = preg_replace('#\[spoiler="(.*?)"\](.*?)\[\/spoiler\]#si','<div class="spoiler">
<div class="spoiler_title">$1:</div>
<div class="spoiler_content" style="display: none;">$2</div>
</div>',$message);
// Creamos el MyCode complejo sin comillas: [spoiler=título aquí]contenido aquí[/spoiler]
while(preg_match('#\[spoiler=(.*?)\](.*?)\[\/spoiler\]#si',$message))
$message = preg_replace('#\[spoiler=(.*?)\](.*?)\[\/spoiler\]#si','<div class="spoiler">
<div class="spoiler_title">$1:</div>
<div class="spoiler_content" style="display: none;">$2</div>
</div>',$message);
}
}
Also einfach geprüft, ist es ein User oder Gast und für die Gäste den kompletten Button-Link eliminiert
![Wink Wink](https://www.mybb.de/forum/images/smilies/wink.gif)
Nicht schön, aber wirkungsvoll; allerdings kann man über den Seitenquelltext die Spoiler immer noch lesen, hm, gefällt mir nicht
edit2: ok das $2 noch raus genommen und durch eigenen Text ersetzt, der im Quelltext dann erscheint
![Wink Wink](https://www.mybb.de/forum/images/smilies/wink.gif)