RE: Beiträge aus bestimmtem Forum auf externer Seite anzeigen - StefanT - 29.10.2007
Ich würde im Forum nicht HTML aktivieren. Dafür ist das zu unsicher. Versuche doch den Code vom BBCoder-Parser des MyBBs zu übernehmen. Da muss man gar nicht so viel ändern.
Dein Ansatz ist richtig. Du musst aus der Tabelle "mybb_posts" die "message" von der gewünschten "pid" auslesen.
RE: Beiträge aus bestimmtem Forum auf externer Seite anzeigen - krafdi - 29.10.2007
Phenom schrieb:Oder wie wäre es, wenn ich im Forum einstelle, dass man HTML nutzen kann. Dann müsste man die Formatierungen manuell per HTML vornehmen, aber dann würde es auch so in der Datenbank stehen, oder? Wenn ich dich richtig verstehe soll dieses Forum nur von dir genutzt werden als CMS Ersatz. Wenn also nur du Schreib rechte hast sollte es keine Probleme geben.
RE: Beiträge aus bestimmtem Forum auf externer Seite anzeigen - Phenom - 29.10.2007
@Dragon: Hm, ich versuch mich mal an einem Script. Mein Ergebnis zeig ich dann morgen, da ich aber bisher nicht sonderlich viel Erfahrung damit habe, siehts wohl schlecht aus, dass was draus wird. Aber ich poste es morgen trotzdem mal.
krafdi schrieb:Phenom schrieb:Oder wie wäre es, wenn ich im Forum einstelle, dass man HTML nutzen kann. Dann müsste man die Formatierungen manuell per HTML vornehmen, aber dann würde es auch so in der Datenbank stehen, oder? Wenn ich dich richtig verstehe soll dieses Forum nur von dir genutzt werden als CMS Ersatz. Wenn also nur du Schreib rechte hast sollte es keine Probleme geben. Ja, so soll es eigentlich sein.
Ich hab im Internet einen weiteren Parser für den BBCode gefunden. Könnte der mir dann evtl. weiterhelfen?
PHP-Code: function bb_decode($data) {
$data = htmlspecialchars($data);
$offset = 0; while(($pos = strpos($data, '[noparse]', $offset)) !== false) {
$end = strpos($data, '[/noparse]', $pos);
if($end === false) break;
$noparse = substr($data, $pos + 9, $end - ($pos + 9)); $noparse = str_replace(array('[', ']'), array('[', ']'), $noparse);
$end += 10;
$data = substr_replace($data, $noparse, $pos, $end - $pos);
$offset = $end; }
$search[] = '[b]'; $search[] = '[/b]'; $search[] = '[i]'; $search[] = '[/i]'; $search[] = '[u]'; $search[] = '[/u]'; $search[] = '[/color]'; $search[] = '[/size]'; $search[] = '[/font]'; $search[] = '[highlight]'; $search[] = '[/highlight]';
$replace[] = '<strong>'; $replace[] = '</strong>'; $replace[] = '<i>'; $replace[] = '</i>'; $replace[] = '<u>'; $replace[] = '</u>'; $replace[] = '</font>'; $replace[] = '</font>'; $replace[] = '</font>'; $replace[] = '<span class="highlight">'; $replace[] = '</span>';
$data = str_replace($search, $replace, $data);
$search = array(); $replace = array();
$search[] = '/\[color=(.*?)\]/'; $search[] = '/\[size=(.*?)\]/'; $search[] = '/\[font=(.*?)\]/'; $search[] = '/\[email\](.*?)\[\/email\]/'; $search[] = '/\[email=(.*?)\](.*?)\[\/email\]/'; $search[] = '/\[url\](.*?)\[\/url\]/'; $search[] = '/\[url=(.*?)\](.*?)\[\/url\]/';
$search[] = '/\[img\](.*?)\[\/img\]/';
$replace[] = '<font color="${1}">'; $replace[] = '<font size="${1}">'; $replace[] = '<font face="${1}">'; $replace[] = '<a href="mailto:${1}">${1}</a>'; $replace[] = '<a href="mailto:${1}">${2}</a>'; $replace[] = '<a href="${1}">${1}</a>'; $replace[] = '<a href="${1}">${2}</a>'; $replace[] = '<img src="${1}" />';
$data = preg_replace($search, $replace, $data);
$offset = 0; while(strpos($data, '[list]', $offset) !== false) {
$pos = strpos($data, '[list]', $offset); $end = strpos($data, '[/list]', $pos);
if($end === false) break;
$list = trim(substr($data, $pos + 6, $end - ($pos + 6)));
$elements = explode('[*]', $list); $list = '<ul>';
for($i = 1; $i < count($elements); $i++) {
$list .= '<li>'.nl2br(rtrim($elements[$i])).'</li>'; }
$list .= '</ul>';
$end += 7; $offset = $end;
$data = substr_replace($data, $list, $pos, $end - $pos); }
$offset = 0; while(strpos($data, '[list=', $offset) !== false) {
$pos = strpos($data, '[list=', $offset); $pos2 = strpos($data, ']', $pos + 6);
$type = substr($data, $pos + 6, $pos2 - ($pos + 6));
$end = strpos($data, '[/list]', $pos2);
if($end === false) break;
$list = trim(substr($data, $pos2 + 1, $end - ($pos2 + 1)));
$elements = explode('[*]', $list); $list = '<ol type="'.$type.'">';
for($i = 1; $i < count($elements); $i++) {
$list .= '<li>'.nl2br(rtrim($elements[$i])).'</li>'; }
$list .= '</ol>';
$end += 7; $offset = $end;
$data = substr_replace($data, $list, $pos, $end - $pos); }
$data = nl2br($data);
$offset = 0; while(($pos = strpos($data, '[code]', $offset)) !== false) {
$end = strpos($data, '[/code]', $pos);
if($end === false) break;
$code = substr($data, $pos + 6, $end - ($pos + 6));
$strlen = strlen($code) + 13;
$code = '<pre>'.str_replace('', '', $code).'</pre>';
$end += 7;
$offset = $end - ($strlen - strlen($code));
$data = substr_replace($data, $code, $pos, $end - $pos); }
return $data; }
RE: Beiträge aus bestimmtem Forum auf externer Seite anzeigen - Phenom - 30.10.2007
Guten Morgen.
Tut mir Leid wegen dem Doppelpost.
Ich hab mir gestern Abend den Code von Seite 3 angeschaut, und das für mich wichtige kopiert. Nun hab ich versucht selber (mithilfe von einem Tutorial) eine Datenbank abfrage zu machen. Leider hat es nicht geklappt.
Ich weis nämlich nicht, wie ich den Text von einem bestimmten Thread lesen kann. Zum Beispiel von Thread 16.
(Hier der Code.)
PHP-Code: <?php // Daten für Verbindung zur Datenbank $dbhost = "Localhost"; $dbuser = " ***** "; $dbpassword = " ***** "; $dbdatabase = " ***** ";
// Präfix $prefix = "mybb_";
// URL zum Forum $url = "http://www.monk.ja-nee.de/myBB";
// Verbindung zur Datenbank aufnehmen $db = mysql_connect($dbhost,$dbuser,$dbpassword) or die ("Verbindung fehlgeschlagen"); mysql_select_db($dbdatabase,$db);
//Abfrage der Datenbank $abfrage = "SELECT message FROM mybb_posts"; $ergebnis = mysql_query($abfrage);
//Ausgabe des Feldes while($row = mysql_fetch_object($ergebnis)) { echo $row->url; }
?>
RE: Beiträge aus bestimmtem Forum auf externer Seite anzeigen - StefanT - 30.10.2007
PHP-Code: <?php // Daten für Verbindung zur Datenbank $dbhost = "Localhost"; $dbuser = " ***** "; $dbpassword = " ***** "; $dbdatabase = " ***** ";
// Präfix $prefix = "mybb_";
// URL zum Forum $url = "http://www.monk.ja-nee.de/myBB";
// Verbindung zur Datenbank aufnehmen $db = mysql_connect($dbhost,$dbuser,$dbpassword) or die ("Verbindung fehlgeschlagen"); mysql_select_db($dbdatabase,$db);
//Abfrage der Datenbank $abfrage = "SELECT message FROM {$prefix}posts WHERE tid=16"; $ergebnis = mysql_query($abfrage);
//Ausgabe des Feldes while($row = mysql_fetch_object($ergebnis)) { echo $row['message']; } ?>
Das sollte funktionieren, doch solltest du mit der pid arbeiten. Das wäre besser.
RE: Beiträge aus bestimmtem Forum auf externer Seite anzeigen - Phenom - 30.10.2007
@Dragon: Dankeschön!
Ich hab das jetzt einmal so ausprobiert, mit der TID=16, da kam nur eine weiße Seite ohne Quelltext raus. Dann habe ich TID=16 durch PID=23 ersetzt und es kam erneut eine weiße Seite raus. Wo liegt da der Fehler?
RE: Beiträge aus bestimmtem Forum auf externer Seite anzeigen - Garlant - 30.10.2007
Hallo Phenom,
bitte setze an den Anfang der datei folgendes und Poste die Fehlermeldungen, wenn vorhanden.
btw. versuche folgendes
Ersetze:
PHP-Code: while($row = mysql_fetch_object($ergebnis)) { echo $row['message']; }
durch:
PHP-Code: while($row = mysql_fetch_object($ergebnis)) { $posts[] = $row; }
if(is_array($posts)) { foreach($posts as $message) { print($message["message"]."<br />"); } }
Mfg Garlant
RE: Beiträge aus bestimmtem Forum auf externer Seite anzeigen - Phenom - 30.10.2007
Hallo Garlant!
zur Fehlermeldung:
Wenn ich das nun oben einfüge, dann kommt erneut eine Leere Seite, ohne Inhalt und ohne Quelltext.
zu deinem PHP-Code:
Wenn ich das nun ersetze, kommt auch eine leere Seite, wobei im Quelltext aber nur folgendes steht:
Könnte das heißen, dass das Feld "message" leer ist?
EDIT (13:41Uhr):
So, ich sitze jetzt schon seit heute Früh dran. Ich hab verschiedene Dinge versucht, die ich mit meinen geringen Kenntnissen kenne, hat aber alles nicht funktioniert. Ich hab auch statt TID einfach mal PID probiert, und jeweils verschiedene Zahlen, von denen ich 100pro weiß, dass es so eine TID oder PID gibt, doch funktioniert hat es trotzdem nicht ... 'Schuldigung das ich nerve, aber hat den niemand eine Idee wo das Problem liegen könnte?
Das Script sieht moment wie folgt aus:
PHP-Code: <?php
error_reporting(E_ALL);
// Daten für Verbindung zur Datenbank $dbhost = "Localhost"; $dbuser = "*****"; $dbpassword = "*****"; $dbdatabase = "*****";
// Präfix $prefix = "mybb_";
// URL zum Forum $url = "http://www.monk.ja-nee.de/myBB";
// Verbindung zur Datenbank aufnehmen $db = mysql_connect($dbhost,$dbuser,$dbpassword) or die ("Verbindung fehlgeschlagen"); mysql_select_db($dbdatabase,$db);
//Abfrage der Datenbank $abfrage = "SELECT message FROM {$prefix}posts WHERE pid=1"; $ergebnis = mysql_query($abfrage);
//Ausgabe des Feldes while($row = mysql_fetch_object($ergebnis)) { $posts[] = $row; }
if(is_array($posts)) { foreach($posts as $message) { print($message["message"]."<br />"); } } ?>
Hab bereits selber versucht aus dem Code schlau zu werden, aber kann irgendwie nicht nachvollziehen, warum er nur eine leere Seite ausgibt.
RE: Beiträge aus bestimmtem Forum auf externer Seite anzeigen - Michael - 31.10.2007
Der folgende Code ist getestet und funktioniert. Ersetze x im Query durch die ID des Themas (tid).
PHP-Code: <?php // Daten für Verbindung zur Datenbank $dbhost = "localhost"; $dbuser = ""; $dbpassword = ""; $dbdatabase = "";
// Präfix $prefix = "mybb_";
// URL zum Forum $url = "http://www.monk.ja-nee.de/myBB";
// Verbindung zur Datenbank aufnehmen $db = mysql_connect($dbhost,$dbuser,$dbpassword) or die ("Verbindung fehlgeschlagen"); mysql_select_db($dbdatabase,$db);
// Abfrage der Datenbank $abfrage = "SELECT message FROM {$prefix}posts WHERE tid='x' ORDER BY pid ASC"; $ergebnis = mysql_query($abfrage);
// Ausgabe des Feldes while($row = mysql_fetch_array($ergebnis)) { echo $row['message']; } ?>
RE: Beiträge aus bestimmtem Forum auf externer Seite anzeigen - StefanT - 31.10.2007
Ersetze:durch:
|