Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
Spoiler mit Gruppenrechten
#3
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 Aber ich hoffe auf die Schwarmintelligenz Wink

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
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
Zitieren


Nachrichten in diesem Thema
Spoiler mit Gruppenrechten - von bv64 - 14.04.2019, 22:53
RE: Spoiler mit Gruppenrechten - von itsmeJAY - 14.04.2019, 23:05
RE: Spoiler mit Gruppenrechten - von bv64 - 14.04.2019, 23:27
RE: Spoiler mit Gruppenrechten - von itsmeJAY - 14.04.2019, 23:37
RE: Spoiler mit Gruppenrechten - von bv64 - 14.04.2019, 23:45
RE: Spoiler mit Gruppenrechten - von bv64 - 15.04.2019, 05:36
RE: Spoiler mit Gruppenrechten - von itsmeJAY - 15.04.2019, 15:07
RE: Spoiler mit Gruppenrechten - von bv64 - 15.04.2019, 15:42
RE: Spoiler mit Gruppenrechten - von itsmeJAY - 15.04.2019, 15:50
RE: Spoiler mit Gruppenrechten - von skrilaxrev - 10.06.2019, 12:36
RE: Spoiler mit Gruppenrechten - von itsmeJAY - 10.06.2019, 18:38

Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Spoiler Plugin mit Button pjayman 2 2.159 18.12.2013, 16:28
Letzter Beitrag: MrBrechreiz