BB Button (switch innerhalb von posts)

In diesem Forum können Mod-Autoren ihre Mods vorstellen, die sich noch im Entwicklungsstatus befinden. Der Einbau in Foren im produktiven Betrieb wird nicht empfohlen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Benutzeravatar
warefare.net
Mitglied
Beiträge: 74
Registriert: 13.07.2006 17:22
Wohnort: Buchholz
Kontaktdaten:

BB Button (switch innerhalb von posts)

Beitrag von warefare.net »

Hallo ,
frohe weihnachten zusammen :)
Bei uns gibbet gleich erst Essen also bastel ich noch an meinem forum...


Ich dachte mir das ein BBCode völlig fehlt, der aber in anderen Foren integriert ist. Undzwar kann man in anderen Foren Post-Schnipsel für Gäste ausblenden. Z.B. wenn man irgend nen Code hat innerhalb von nem post und aufgrund von Code-Klau sowas nur für registrierte Benutzer freigeben will, aber nicht gleich das ganze forum sperren will (Nur ein Beispiel)

Also hab ich mir gedacht fügen wir das in die bbcode.php ein:

Code: Alles auswählen

[find]
// [i] and [/i] for italicizing text.
$text = str_replace("[i:$uid]", $bbcode_tpl['i_open'], $text);
$text = str_replace("[/i:$uid]", $bbcode_tpl['i_close'], $text); 

[after add]
$text = str_replace("[switch:$uid]", '<!-- BEGIN switch --> ', $text);
$text = str_replace("[/switch:$uid]", '<!-- END switch --> ', $text); 

Code: Alles auswählen

[#find]
// [i] and [/i] for italicizing text.
$text = preg_replace("#\[i\](.*?)\[/i\]#si", "[i:$uid]\\1[/i:$uid]", $text);

[#after add]
$text = preg_replace("#\[switch\](.*?)\[/switch\]#si", "[switch:$uid]\\1[/switch:$uid]", $text);

Nun noch in viewtopic.php

Code: Alles auswählen

[#find]
}
$template->pparse('body');

[#before add]
if ( !$userdata['session_logged_in'] )
{
  $template->assign_block_vars('postrow.switch',   array());
}
als dies nicht klappte dacht ich mir dass man das evtl in der page header einfügen könnt also

Code: Alles auswählen

[#find]
if ( $userdata['session_logged_in'] )
{
[#after add]
$template->assign_block_vars('postrow.switch',   array());
Hat wer ne idee was ich verändern muss, damit es funktioniert ?
| http://l2warfare.com - phpbb forums | Lineage 2 MMORPG | Site Admin |
|Monetize Your Site|
|Web 2.0 - Participate - Wordpress Blog|
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Wenn ich richtig verstanden habe was du machen willst dann kann ich dir sagen dass das so niemals funktionieren wird. Jeder BBcode muss so gestaltet sein, dass er nicht erst noch von dem Template Compiler interpretiert werden muss. Genau dass ist aber bei dir der Fall, du versuchst in dem BBcode Templatefunktionen zu verwenden. Der BBcode ersetzt aber nur den [xyz] Kram durch echtes HTML, daher wirst du an den Stellen wenn du es probierst lediglich zwei HTML Kommentare vorfinden.

Die einzige Möglichkeit dies zu realisieren besteht darin, beim zweiten Ersetzen dieses Codes darauf zu achten, ob der betrachtende User gast ist oder nicht. Wenn ja dann ersetzt du den ganzen Kram durch einen leeren String (oder vielleicht besser durch ein Leerzeichen). Wenn nein ersetzt du nur die Tags durch nichts.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „phpBB 2.0: Mods in Entwicklung“