Hallo ich würde gerne einen benutzerdefinierten BB-Code einfügen der es ermöglicht einen Spoiler zu erstellen.
Doch was muss ich im Admin Panel eingeben bei BB-Codes hinzufügen?
Spoiler BB-Code
Forumsregeln
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
Bitte im Thementitel den Präfix deiner phpBB-Version angeben
-
hililililklklklkl
- Mitglied
- Beiträge: 205
- Registriert: 24.08.2015 21:14
- Wohnort: Österreich AT
- Kontaktdaten:
Re: Spoiler BB-Code
Probier mal das:https://www.phpbb.com/customise/db/bbcode/new_spoiler/
oder: http://bild4.bplaced.net/phpbb/viewtopi ... n-f=5&t=47
oder: http://bild4.bplaced.net/phpbb/viewtopi ... n-f=5&t=47
Das Bremsen eines Motorrades ist die Verschwendung hochwertiger Geschwindigkeit in sinnlose Wärmeenergie.
-
rainchiller
- Mitglied
- Beiträge: 67
- Registriert: 28.03.2016 21:56
Re: Spoiler BB-Code
Hallo. Ich hole den Beitrag mal aus der Versenkung. Habe das gerade umgesetzt.
Beim öffnen egal welchen Spoilers öffnet sich nur der erste Spoiler
Lösung;
Das Problem liegt im ursprünglichen onclick-Code, der den aufzuklappenden Inhalt über parentNode.parentNode.getElementsByTagName('div') sucht. Diese Methode navigiert zwei Ebenen nach oben und sucht dann alle <div>-Elemente unterhalb – und landet dabei immer beim ersten Spoiler der Seite, egal welcher Button geklickt wurde.
Lösung: Statt durch den gesamten übergeordneten Bereich zu suchen, navigiert der neue Code vom Button-<div> direkt zum nächsten Geschwisterelement (nextElementSibling). Da der Inhalts-<div> immer direkt nach dem Button-<div> steht, ist die Referenz damit eindeutig – jeder Button steuert nur seinen eigenen Spoiler.
Der entscheidende Teil im onclick:
var c = this.parentNode.nextElementSibling.getElementsByTagName('div')[0];
this → der geklickte Button
.parentNode → das umschließende Button-<div>
.nextElementSibling → das direkt folgende <div> (mit dem Border)
.getElementsByTagName('div')[0] → der darin enthaltene Inhalts-<div>
So funktioniert jeder Spoiler unabhängig voneinander, egal wie viele im selben Post stehen.
Beim öffnen egal welchen Spoilers öffnet sich nur der erste Spoiler
Lösung;
Code: Alles auswählen
<div style="margin-bottom: 2px;">
<b>Spoiler! </b>
<input
value="Show"
style="margin: 0px; padding: 0px; width: 60px; font-size: 10px;"
onclick="var c=this.parentNode.nextElementSibling.getElementsByTagName('div')[0]; if(c.style.display!='inline'){c.style.display='inline';this.value='Hide';}else{c.style.display='none';this.value='Show';}"
type="button">
</div>
<div style="border: 1px inset; padding: 6px;">
<div style="display: none;">{TEXT}</div>
</div>Lösung: Statt durch den gesamten übergeordneten Bereich zu suchen, navigiert der neue Code vom Button-<div> direkt zum nächsten Geschwisterelement (nextElementSibling). Da der Inhalts-<div> immer direkt nach dem Button-<div> steht, ist die Referenz damit eindeutig – jeder Button steuert nur seinen eigenen Spoiler.
Der entscheidende Teil im onclick:
var c = this.parentNode.nextElementSibling.getElementsByTagName('div')[0];
this → der geklickte Button
.parentNode → das umschließende Button-<div>
.nextElementSibling → das direkt folgende <div> (mit dem Border)
.getElementsByTagName('div')[0] → der darin enthaltene Inhalts-<div>
So funktioniert jeder Spoiler unabhängig voneinander, egal wie viele im selben Post stehen.
| 3.3.15 | php 8.3 |
-
hackepeter13
- Valued Contributor
- Beiträge: 3577
- Registriert: 21.04.2004 12:22
- Wohnort: Berlin
- Kontaktdaten:
Re: Spoiler BB-Code
Nutze doch eine ganz einfache HTML-Lösung, wie:
BBCode:
HTML-Ersetzung:
Mit css kann das ganze auch noch aufgehübscht werden.
BBCode:
Code: Alles auswählen
[spoiler={TEXT2;optional}]{TEXT}[/spoiler]Code: Alles auswählen
<details class="spoiler-details" id="{TEXT2}">
<summary title="Inhalt anzeigen/verbergen">{TEXT2}</summary>
{TEXT}
</details>Re: Spoiler BB-Code
Ich schliesse mich an. Zumal das Thema hier von 2015 und der besagte BBcode von 2014 ist und seitdem gab es massive Änderungen und Neuerungen bei HTML, CSS und JavaScript. Wir haben heutzutage ganz andere Möglichkeiten und es ist nicht mehr nötig für simple Spoiler JavaScript einzusetzen, das geht mit einer puren HTML5 Implementierung.
Ich habe hier für phpBB.de ebenfalls einen Spoiler BBcode nach HTML5 Standard entworfen, der basiert auf der Spoiler Lösung die ich schon seit vielen Jahren bei phpBB Ext Check einsetze und das habe ich hier allgemein für phpBB portiert und speziell an phpBB.de angepasst. Da ist es egal ob 1 oder 10 Spoiler auf der Seite oder im Beitrag vorhanden sind und der kann auch problemlos mehrfach verschachtelt werden.
Das ist möglich mit dem Konstrukt was hackepeter gezeigt hat. Nur mit dem Unterschied das bei mir optional ein Titel definiert werden kann. Aber das ist alles eine Frage der persönlichen Anforderungen und kann ja jeder machen wie er das braucht.
Ich habe hier für phpBB.de ebenfalls einen Spoiler BBcode nach HTML5 Standard entworfen, der basiert auf der Spoiler Lösung die ich schon seit vielen Jahren bei phpBB Ext Check einsetze und das habe ich hier allgemein für phpBB portiert und speziell an phpBB.de angepasst. Da ist es egal ob 1 oder 10 Spoiler auf der Seite oder im Beitrag vorhanden sind und der kann auch problemlos mehrfach verschachtelt werden.
Beispiel Spoiler mit Titel Funktion
Text
Noch ein weiterer Spoiler im Spoiler
Noch mehr Text
Und noch eine Spoiler Ebene
Okay, jetzt reichts aber!
Möge das Backup mit dir sein. Immer.
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
Kein Support via PN! Siehe den Punkt "Private Nachrichten" im phpBB.de-Knigge.
Erweiterungen - Infos zur artgerechten Haltung / phpBB Ext Check - Analyse von Erweiterungen bezüglich Vorgaben und Kompatibilität
