BBCode in Mod einfügen

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
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
Gooof
Mitglied
Beiträge: 122
Registriert: 19.11.2005 08:44
Wohnort: Hannover
Kontaktdaten:

BBCode in Mod einfügen

Beitrag von Gooof »

Hi,

ich habe hier ein Mod, bei dem man im Adminbereich einen Text hinzufügen kann der dann auf der index.php angezeigt wird. Könnte mir bitte einer sagen wie ich da den BBCode drüber laufen lassen kann, das dieser ausgegeben wird??

BITTE BITTE!!! :D

Code: Alles auswählen

   //
   // MOD Index-News BEGIN
   //
   if ( $userdata['session_logged_in'] )
   {
      // News anzeigen wenn User eigeloggt ist
      if ( $board_config['mod_news'] == 1 )
      {
         // News aktiviert und anzeigen
         $mod_news_msg = $board_config['mod_news_msg'];
         if ( $board_config['allow_smilies'] )
         {
            // Smilies aktiviert und einfügen
            $mod_news_msg = smilies_pass($mod_news_msg);
         }
         $mod_news_msg = str_replace("\n", "\n<br />\n", $mod_news_msg);
         //$mod_news_msg = bbcode($mod_news_msg);

         $template->assign_block_vars('index_news', array(
            'L_INDEX_NEWS' => $lang['Index_Mod_News'],
            'L_INDEX_NEWS_MSG' => $mod_news_msg,
            'INDEX_NEWS_IMG' => $images['forum_new']
            ));
      }
   }
   else
   {
      // Info anzeigen wenn nicht registriert/nicht eingeloggt
      if ( $board_config['mod_info'] == 1 )
      {
         // Info aktiviert und anzeigen
         $mod_info_msg = $board_config['mod_info_msg'];
         if ( $board_config['allow_smilies'] )
         {
            // Smilies aktiviert und einfügen
            $mod_info_msg = smilies_pass($mod_info_msg);
         }
         $mod_info_msg = str_replace("\n", "\n<br />\n", $mod_info_msg);
         //$mod_news_msg = bbcode($mod_news_msg);
         $template->assign_block_vars('index_news', array(
            'L_INDEX_NEWS' => $lang['Index_Mod_Info'],
            'L_INDEX_NEWS_MSG' => $mod_info_msg,
            'INDEX_NEWS_IMG' => $images['forum_new']
            ));
      }
   }
   
   //
   // MOD Index-News END
   // 
Kostenloses phpBB Forum + Portal + Fotoalbum + Unterforen + Spielen und über 400 Styles + super Support - http://www.Kostenloses-Forum.be
Erstes phpBB3 Hosting Deutschlands - http://www.phpbb8.de (BETA)
Benutzeravatar
punkface
Mitglied
Beiträge: 3579
Registriert: 12.08.2004 23:37

Beitrag von punkface »

Ganz einfach:

Adminbereich:
  • bbcode.php includen
  • mit make_bbcode_uid() BBCode UID erzeugen, welche auch in der Datenbank gespeichert werden muss
  • Funktion bbencode_first_pass() aufrufen. 1. Parameter ist der entsprechende Text, der 2. Parameter ist die erzeugte BBCode UID
Index:
  • bbcode.php includen
  • die Funktion bbencode_second_pass() verwenden um die BBCodes durch HTML zu ersetzten. 1. Parameter ist wieder der entsprechende Text, 2. Parameter die im Adminbereich erzeugte, und in der Datenbank gespeicherte BBCode UID
Benutzeravatar
Gooof
Mitglied
Beiträge: 122
Registriert: 19.11.2005 08:44
Wohnort: Hannover
Kontaktdaten:

Beitrag von Gooof »

@punkface very THX!! Jetzt bin ich schon sehr viel weiter, nur 1-2 Fragen habe ich noch.

- Wo muss ich denn die make_bbcode_uid() BBCode UID in der Datenbank Speichern? Es ist ja die Index Seite... diese hat keine extra Tabelle.

- zum ausgeben des Code wäre dann wohl folgendes richtig:
bbencode_second_pass($mod_news_msg, $bbcode_uid);

- jetzt muss ich nur noch im Adminbereich die Funktion einbauen und fertig?!?
Kostenloses phpBB Forum + Portal + Fotoalbum + Unterforen + Spielen und über 400 Styles + super Support - http://www.Kostenloses-Forum.be
Erstes phpBB3 Hosting Deutschlands - http://www.phpbb8.de (BETA)
Benutzeravatar
punkface
Mitglied
Beiträge: 3579
Registriert: 12.08.2004 23:37

Beitrag von punkface »

1. Ich würd die BBCode UID in der Tabelle prefix_config speichern, denn da wird ja offensichtlich auch die Newsmeldung gespeichert ->

Code: Alles auswählen

$mod_news_msg = $board_config['mod_news_msg'];
2. und 3. Jep ;)
Benutzeravatar
Gooof
Mitglied
Beiträge: 122
Registriert: 19.11.2005 08:44
Wohnort: Hannover
Kontaktdaten:

Beitrag von Gooof »

ach so... lol na klar das wird dann ja so gespeichert mit der Nachricht [ b:325fgd ]blub[ /b ], ich teste das gleich mal!
Kostenloses phpBB Forum + Portal + Fotoalbum + Unterforen + Spielen und über 400 Styles + super Support - http://www.Kostenloses-Forum.be
Erstes phpBB3 Hosting Deutschlands - http://www.phpbb8.de (BETA)
Benutzeravatar
Gooof
Mitglied
Beiträge: 122
Registriert: 19.11.2005 08:44
Wohnort: Hannover
Kontaktdaten:

Beitrag von Gooof »

ich habe jetzt soweit alles geändert aber ohne Erfolg.

Der neue Code in der admin_board.php:

Code: Alles auswählen

include($phpbb_root_path . 'includes/bbcode.'.$phpEx);

$BBuid = make_bbcode_uid();
$mod_info_MSG = bbencode_first_pass($new['mod_info_msg'], $BBuid);
$mod_news_MSG = bbencode_first_pass($new['mod_news_msg'], $BBuid);
Soweit so gut... jetzt wird in der Textbox der BBCode der vorher so aussah:

Code: Alles auswählen

[b]test[/b]
nun einfach so geschrieben:

Code: Alles auswählen

[b:45sdg2]test[/b:45sdg2]
Auf der Index Seite wo der BB Code nun in HTML umgewandelt werden soll, steht da jetzt alles einfach so in Text also: Hallo [b:45sdg2]test[/b:45sdg2]!


Kann ich den BBCode den nicht im Adminbereich so eintragen:

Code: Alles auswählen

Test Text und hier [b]BBcode[/b]
Der wird dann einfach auf der Index Seite in HTML umgewandelt und fertig?
Kostenloses phpBB Forum + Portal + Fotoalbum + Unterforen + Spielen und über 400 Styles + super Support - http://www.Kostenloses-Forum.be
Erstes phpBB3 Hosting Deutschlands - http://www.phpbb8.de (BETA)
Benutzeravatar
punkface
Mitglied
Beiträge: 3579
Registriert: 12.08.2004 23:37

Beitrag von punkface »

Gooof hat geschrieben:Soweit so gut... jetzt wird in der Textbox der BBCode der vorher so aussah:

Code: Alles auswählen

[b]test[/b]
nun einfach so geschrieben:

Code: Alles auswählen

[b:45sdg2]test[/b:45sdg2]
So weit ist doch alles richtig. Wenn du irgendwo den BBCode so anzeigen willst, wie er eingegeben wurde, musst du die BBCode UID natürlich wieder aus den BBCode-tags entfernen.
Beispiel-Code aus der posting.php

Code: Alles auswählen

		if ( $post_info['bbcode_uid'] != '' )
		{
			$message = preg_replace('/\:(([a-z0-9]:)?)' . $post_info['bbcode_uid'] . '/s', '', $message);
		}
Gooof hat geschrieben:Auf der Index Seite wo der BB Code nun in HTML umgewandelt werden soll, steht da jetzt alles einfach so in Text also: Hallo [b:45sdg2]test[/b:45sdg2]!
Funktion bbencode_second_pass() nicht ausgeführt oder falsche BBCode UID übergeben.
Gooof hat geschrieben:Kann ich den BBCode den nicht im Adminbereich so eintragen:

Code: Alles auswählen

Test Text und hier [b]BBcode[/b]
Der wird dann einfach auf der Index Seite in HTML umgewandelt und fertig?
Wenn beide Funktionen um korrekten BBCode zu erkennen und diesen in HTML umzuwandeln zwei Argumente, nämlich den Text und die BBCode UID brauchen? .. Natürlich!

Code: Alles auswählen

bbencode_second_pass(bbencode_first_pass(TEXT, BBCODE_UID), BBCODE_UID);
So kommen aber bei jedem Aufruf der index.php haufenweise preg_match und preg_replace-Aufrufe aus der bbcode_first_pass() hinzu ...
Benutzeravatar
Gooof
Mitglied
Beiträge: 122
Registriert: 19.11.2005 08:44
Wohnort: Hannover
Kontaktdaten:

Beitrag von Gooof »

Puuhh... ganz schön viel arbeit! Ich hatte ja fast alles richtig macht bis auf die Ausgabe. (bbencode_second_pass).
Mir ist gestern aufgefallen, das die Infobox mit HTML Code läuft, das heißt ich schreibe den Code da jetzt direkt rein, so braucht man keinen BBCode mehr. :wink:
Problem ist dann jetzt behoben, ich bleibe bei HTML! (da gibt es auch mehr Codes) :wink:

@punkface... sag mal bist du eigentlich der einzige hier, der sowas kann? :D Ich habe hier noch von keinem solche Antworten gekriegt wie von Dir! DANKE!!
Kostenloses phpBB Forum + Portal + Fotoalbum + Unterforen + Spielen und über 400 Styles + super Support - http://www.Kostenloses-Forum.be
Erstes phpBB3 Hosting Deutschlands - http://www.phpbb8.de (BETA)
Antworten

Zurück zu „phpBB 2.0: Mod Support“