BBCode um Klapptext erweitern?
am 30.06.2007 - 16:22 Uhr in
Hiho!
Ich möchte mein BBCode-Modul um einen Klapptext erweitern.
Also aus
[klapp]Test, der erst nach erneutem Klick auf die Überschrift angezeigt werden soll[/klapp]
soll etwa sowas werden wie die "Kästen" bei der Adminseite zu den Modulen.
Nun habe ich mir die Adminseite einmal angeschaut und bin auf collapse.js gestoßen. Bei der Adminseite wird das so erstellt:
<fieldset class=" collapsible"><legend><a href="#">mehr Infos</a></legend>Test, der erst nach erneutem Klick auf die Überschrift angezeigt werden soll</fieldset>
Nun habe ich das in meine bbcode-filter.inc auch eingebaut:
// Klapptext
'#\[klapp(?::\w+)?\]#i' => '<fieldset class=" collapsible"><legend><a href="#">mehr Infos</a></legend>',
'#\[/klapp(?::\w+)?\]#si' => '</fieldset>',
Das klappt soweit auch prima, nur die Anzeige stimmt nicht. Die Dinger sind immer aufgeklappt und lassen sich nicht mehr zu klappen.
Was habe ich falsch gemacht? Die collapse.js ist auch eingebunden, sollte also klappen, dachte ich...
Muss ich damit es richtig tut noch weitere Elemente drum rum packen oder hab ich irgendwo einen Fehler drin?
Was mich zudem noch stutzig macht: bei der Vorschau zu meinem Beitrag sieht es anders aus, als in der gespeichert Version. Und so wie in der Vorschau hätte ich es eigentlich gerne...
Das System ist zu finden unter: http://extern.klugpopeln.de/FBM_drupal5/?q=node/8
(Testumgebung, fühlt euch frei rumzuspielen/auszuprobieren)
Verwendet wird: Drupal5 mit entsprechend aktuellen Modulen
- Anmelden oder Registrieren um Kommentare zu schreiben
Hast Du dazu mittlerweile
am 04.07.2007 - 08:25 Uhr
Hast Du dazu mittlerweile eine Lösung gefunden? Auf Deiner Seite scheint's ja nun zu funktionieren...
--
bv - drupalcenter.de
jo das hab ich wohl
am 04.07.2007 - 16:20 Uhr
Hi bv,
ja das habe ich, danke für die Prüfung.
Und das war die Lösung:
bbcode-filter.inc wird erweitert um
// Klapptext
'#\[klapp=([\w\s]+)(?::\w+)?\](.*?)\[/klapp(?::\w+)?\]#si' => '<form method="post" id="test"><div><fieldset class=" collapsible collapsed"><legend><a href="#">\\1</a></legend> <table class="bbcode"><tr class="bbcode"><td class="bbcode">\\2</td></tr></table></fieldset></div></form>',
'#\[klapp](.*?)\[/klapp(?::\w+)?\]#si' => '<form method="post" id="test"><div><fieldset class=" collapsible collapsed"><legend><a href="#">mehr Infos</a></legend> <table class="bbcode"><tr class="bbcode"><td class="bbcode">\\1</td></tr></table></fieldset></div></form>',
Auf den Seiten (z.B. Forum, funktioniert aber überall, wo BBCODE erlaubt ist) dann einfach schreiben:
[klapp=Text der den weiteren Inhalt aufklappen]der weitere Text der aufgeklappt wird[/klapp]
oder
[klapp]der weitere Text der aufgeklappt wird[/klapp]
Letztere Lösung nimmt automatisch "mehr Infos" als "Überschrift" in der ersteren definiert man sich die selber.
Damit das funktioniert, muss die collapse.js aus dem Ordern misc noch eingebunden werden. Ich habe das einfach mit in die page.tpl.php gepackt als js-include.
Funktioniert prima, vor allem wenn man den CSS-Code noch etwas modifiziert, kann sich das sehen lassen. Auch verschachtelt tut das recht gut, Links etc werden trotzdem noch erkannt.
Einziger Kritikpunkt soweit: Klapptext in einem Klapptext funktioniert nicht. Aber darauf verzichte ich persönlich gerne.