bbCode auserhalb des Forums...

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
hibbert
Mitglied
Beiträge: 158
Registriert: 27.10.2002 15:50
Kontaktdaten:

bbCode auserhalb des Forums...

Beitrag von hibbert »

Hi,
wie kann ich den BBCode außerhalb des Forums nutzen?

Ich habe da schon was gefunden, aber das funzt net. MeinBBCode reagiert nur auf die Typischen zeichen wie [ b] und [ /b]. Doch in der Datenbank wird vom Forum folgendes eingetragen:
[b:799d1b4f3b]Text[/b:799d1b4f3b]

wieso? und wie kann ich jetzt außerhalb des Forums erreichen, dass Text fett geschrieben wied?

thx hibbert
» Wer nicht fragt bleibt dumm !! «
Benutzeravatar
Nico Haase
Mitglied
Beiträge: 1100
Registriert: 10.08.2003 15:19
Wohnort: Neu-Anspach / Darmstadt
Kontaktdaten:

Beitrag von Nico Haase »

kommt drauf an, was du machen willst. wenn du die forenbeiträge von außen lesen willst, dann schnapp dir die uid (feld bbcode_uid in PHPBB_posts_text) und den text und jag beides durch die bbcode.php-funktionen, das geht mit

Code: Alles auswählen

<?php
include (PHPBB-ORDNER."/includes/bbcode.php");
$text = bbencode_second_pass($message, $bbcode_uid)
?>
Buchtips.net bietet mehr als 2500 Buchrezensionen
Benutzeravatar
hibbert
Mitglied
Beiträge: 158
Registriert: 27.10.2002 15:50
Kontaktdaten:

Beitrag von hibbert »

ich habe folgendes versucht:

Code: Alles auswählen

include ("../forum/includes/bbcode.php"); 
$text = bbencode_second_pass($message, $bbcode_uid); 
echo $text;
nun eigendlich sollte die Nachricht so aussehen:
Juhuuu:wink:
aber sie sieht nun so aus:
[b:58623378cd]juhuuu[/b:58623378cd] : wink:
und so bestimme ich die Var $message:

Code: Alles auswählen

$sql = "SELECT privmsgs_text FROM phpbb_privmsgs_text WHERE privmsgs_text_id = '$id'"; 
$query = mysql_query($sql);
$zeileholen = mysql_fetch_array($query);
$message=$zeileholen["privmsgs_text"];
Was habe ich falsche gemacht oder anders gefragt, warum funzt das net?

thx hibbert
» Wer nicht fragt bleibt dumm !! «
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

Du musst nicht nur den Text sondern auch die bbcode_uid auslesen und ausgeben.. damit der BBcode dann richtig umgewandelt wird.
Schau dir am besten mal die viewtopic.php an, wie´s da gehandhabt wird.
Benutzeravatar
hibbert
Mitglied
Beiträge: 158
Registriert: 27.10.2002 15:50
Kontaktdaten:

Beitrag von hibbert »

mhhh,
phpbb wurde ja sicherlich von Profis geproggt. da ist viel dabei was ich nicht ganz so verstehe :oops:.

Ich finde das einfach nicht, wo die den Text in den Bbcode umwandeln...

kannst du mir vielleicht noch nen tipp geben?

thx hibbert
» Wer nicht fragt bleibt dumm !! «
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

hmm..
Bei der obigen sql-Anweisung musst du zusätzlich noch die bbcode_uid abfragen (einfach "privmsgs_bbcode_uid" nach "privmsgs_text" eintragen).
Da´s weiter unten benötigt wird, musst du noch einige Sachen aus der "privmsgs" Tabelle abfragen. Du kannst die sql-Anweisung dementsprechend erweitern; in etwa folgendermaßen..
$sql = "SELECT privmsgs_id, privmsgs_enable_bbcode, privmsgs_enable_html, privmsgs_enable_smilies, privmsgs_text_id, privmsgs_text, privmsgs_bbcode_uid FROM phpbb_privmsgs, phpbb_privmsgs_text WHERE privmsgs_text_id = privmsgs_id AND privmsgs_id = '$id'";
Die Erweiterung der where-Klausel ist notwendig, damit die zueinander passenden Einträge in den beiden Tabellen gefunden werden.

Nach $message gibst du dann $message_bbcode aus..

Code: Alles auswählen

$message_bbcode = $zeileholen['privmsgs_bbcode_uid'];
Mit ein paar Funktionen wird dann die bbcode_uid umgewandelt.. und noch einiges andere..

Code: Alles auswählen

if( $zeilenholen['privmsgs_enable_html'] )
{
	$message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message);
}

if( $message_bbcode_uid != '' )
{
	$message = bbencode_second_pass($message, $message_bbcode);
}

$message = make_clickable($message);

$orig_word = array();
$replacement_word = array();
obtain_word_list($orig_word, $replacement_word);
if( count($orig_word) )
{
	$message = preg_replace($orig_word, $replacement_word, $message);
}

if( $zeilenholen['privmsgs_enable_smilies'] )
{
	$message = smilies_pass($message);
}

$message = str_replace("\n", '<br />', $message);
Zuletzt geändert von Acid am 16.12.2003 16:48, insgesamt 3-mal geändert.
Benutzeravatar
hibbert
Mitglied
Beiträge: 158
Registriert: 27.10.2002 15:50
Kontaktdaten:

Beitrag von hibbert »

ok, mein quelltext sieht jetzt so aus:

Code: Alles auswählen

// Nachricht empfangen bzw. anzeigen.
$sql = "SELECT privmsgs_id, privmsgs_enable_bbcode, privmsgs_enable_html, privmsgs_enable_smilies, privmsgs_text_id, privmsgs_text, privmsgs_bbcode_uid FROM phpbb_privmsgs, phpbb_privmsgs_text WHERE privmsgs_text_id = privmsgs_id AND privmsgs_id = '$id'";
$query = mysql_query($sql);
$zeileholen = mysql_fetch_array($query);
$message=$zeileholen["privmsgs_text"];
$message_bbcode = $zeileholen['privmsgs_bbcode_uid'];
include ("../forum/includes/bbcode.php"); 
if( !$board_config['allow_html'] ) //ob im Adminpanel HTML aktiviert ist 
{ 
   if( $zeilenholen['privmsgs_enable_html'] ) //ob beim Schreiben der Nachricht HTML aktiviert wurde 
   { 
      $message = preg_replace('#(<)([\/]?.*?)(>)#is', "<\\2>", $message); 
   } 
} 
(...)
if( $board_config['allow_smilies'] && $zeilenholen['privmsgs_enable_smilies'] ) //ob im Adminpanel und beim Schreiben Smilees aktiviert sind 
{ 
   $message = smilies_pass($message); 
} 
$message = str_replace("\n", '<br />', $message);
echo $message;
echo $message_bbcode;
Ich habe den Quelltext für deisen Beitrag gekürzt, da ich da nichts verändert habe...

und was dabei rauskommt ist das:
Browser hat geschrieben:[b:66d291fa51]Moinsen[/b:66d291fa51] Ok, das reicht dann schon wieder... :wink:66d291fa51
Warum funzt das jetzt schonwieder net??

Danke für deine bisherige Hilfe !
hibbert
» Wer nicht fragt bleibt dumm !! «
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

aso.. lass mal die Abfragen bezüglich $board_config['...'] weg, denn das funktioniert nur, wenn du die common.php einbindest.

$message_bbcode brauchst du übrigens nicht mit´m echo ausgeben.
Benutzeravatar
hibbert
Mitglied
Beiträge: 158
Registriert: 27.10.2002 15:50
Kontaktdaten:

Beitrag von hibbert »

mhhh,
ich habe die abfragen rausgelassen und trotzdem funzt es net.

Code: Alles auswählen

$sql = "SELECT privmsgs_id, privmsgs_enable_bbcode, privmsgs_enable_html, privmsgs_enable_smilies, privmsgs_text_id, privmsgs_text, privmsgs_bbcode_uid FROM phpbb_privmsgs, phpbb_privmsgs_text WHERE privmsgs_text_id = privmsgs_id AND privmsgs_id = '$id'";
$query = mysql_query($sql);
$zeileholen = mysql_fetch_array($query);
$message=$zeileholen["privmsgs_text"];
$message_bbcode = $zeileholen['privmsgs_bbcode_uid'];


include ("../forum/includes/bbcode.php"); 

//wenn URLs geschrieben wurden, sollten diese klickbar sein? 
$message = make_clickable($message); 

//falls du bei dem Text die Zensur anwenden willst 
$orig_word = array(); 
$replacement_word = array(); 
obtain_word_list($orig_word, $replacement_word); 
if( count($orig_word) ) 
{ 
   $message = preg_replace($orig_word, $replacement_word, $message); 
} 

//damit beim Schreiben eingefügt Absätze auch als solche dargestellt werden 
$private_message = str_replace("\n", '<br />', $private_message);


$message_bbcode;
echo $message;
hibbert
» Wer nicht fragt bleibt dumm !! «
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

hmm.. ich hab meinen ersten Beitrag nochmal ausgebessert.
Es waren einige Fehler drin. :grin: :roll:
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“