Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
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.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 2.504
Themen: 69
Registriert seit: 09.04.2005
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.
Beiträge: 42
Themen: 2
Registriert seit: 21.09.2007
MyBB-Version: 1.2.10
29.10.2007, 21:01
(Dieser Beitrag wurde zuletzt bearbeitet: 29.10.2007, 21:03 von Phenom.)
@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; }
Beiträge: 42
Themen: 2
Registriert seit: 21.09.2007
MyBB-Version: 1.2.10
30.10.2007, 08:31
(Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2007, 08:31 von Phenom.)
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; }
?>
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
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.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 42
Themen: 2
Registriert seit: 21.09.2007
MyBB-Version: 1.2.10
30.10.2007, 10:55
(Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2007, 10:55 von Phenom.)
@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?
Beiträge: 1.626
Themen: 41
Registriert seit: 24.01.2006
30.10.2007, 11:02
(Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2007, 11:06 von Garlant.)
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
Ich gebe keinen Support per Messenger oder PN!
Beiträge: 42
Themen: 2
Registriert seit: 21.09.2007
MyBB-Version: 1.2.10
30.10.2007, 11:25
(Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2007, 13:42 von Phenom.)
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.
Beiträge: 18.383
Themen: 257
Registriert seit: 09.02.2005
31.10.2007, 17:52
(Dieser Beitrag wurde zuletzt bearbeitet: 31.10.2007, 17:53 von Michael.)
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']; } ?>
Gruß,
Michael
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
|