Ok, hab ich gemacht. Aus der parser.php hab ich das Code-Stück gelöscht.
Nun sieht die auslesen.php Datei 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=28"; $ergebnis = mysql_query($abfrage);
Das ist viel komplizierter als gedacht. Ich habe mir das nochmal genau angeschaut und es kommen viel öfters Variablen des MyBBs vor. Versuche mal die einzelnen Funktionen, die du brauchst auszubauen und in eine eigene Datei zu verlagern.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
01.11.2007, 11:56 (Dieser Beitrag wurde zuletzt bearbeitet: 01.11.2007, 11:57 von Phenom.)
Ok, ich kann allerdings nur die raussuchen, die ich meiner Meinung nach für notwendig halte, die dann in einer Datei zu einem ganzen PHP Code zusammenzufügen kann ich leider nich.
Funktion 1:
PHP-Code:
function parse_message($message, $options=array()) { //global $plugins, $mybb;
// Set base URL for parsing smilies $this->base_url = "/myBB";
// If MyCode needs to be replaced, first filter out [code] and [php] tags. if($options['allow_mycode'] != "no") { // First we split up the contents of code and php tags to ensure they're not parsed. preg_match_all("#\[(code|php)\](.*?)\[/\\1\](\r\n?|\n?)#si", $message, $code_matches, PREG_SET_ORDER); $message = preg_replace("#\[(code|php)\](.*?)\[/\\1\](\r\n?|\n?)#si", "{{mybb-code}}\n", $message); }
// Always fix bad Javascript in the message. $message = $this->fix_javascript($message);
// Replace "me" code and slaps if we have a username if($options['me_username']) { $message = preg_replace('#(>|^|\r|\n)/me ([^\r\n<]*)#i', "\\1<span style=\"color: red;\">* {$options['me_username']} \\2</span>", $message); $message = preg_replace('#(>|^|\r|\n)/slap ([^\r\n<]*)#i', "\\1<span style=\"color: red;\">* {$options['me_username']}{$lang->slaps} \\2 {$lang->with_trout}</span>", $message); }
// If we can, parse smilies if($options['allow_smilies'] != "no") { $message = $this->parse_smilies($message, $options['allow_html']); }
// Run plugin hooks //$message = $plugins->run_hooks("parse_message", $message);
if($options['allow_mycode'] != "no") { // Now that we're done, if we split up any code tags, parse them and glue it all back together if(count($code_matches) > 0) { foreach($code_matches as $text) { // Fix up HTML inside the code tags so it is clean if($options['allow_html'] != "no") { $text[2] = $this->parse_html($text[2]); }
// If there is custom MyCode, load it. if(is_array($custom_mycode)) { foreach($custom_mycode as $key => $mycode) { $custom_mycode[$key]['regex'] = "#".$mycode['regex']."#si"; } $mycode = array_merge($standard_mycode, $custom_mycode); } else { $mycode = $standard_mycode; }
// Assign the MyCode to the cache. foreach($mycode as $code) { $this->mycode_cache['find'][] = $code['regex']; $this->mycode_cache['replacement'][] = $code['replacement']; } }
Ich glaube das brauche ich auch noch:
PHP-Code:
function parse_mycode($message, $options=array()) { global $lang;
// Cache the MyCode globally if needed. if($this->mycode_cache == 0) { $this->cache_mycode(); }
// Parse quotes first $message = $this->mycode_parse_quotes($message);
$message = $this->mycode_auto_url($message);
$message = str_replace('$', '$', $message);
// Replace the rest $message = preg_replace($this->mycode_cache['find'], $this->mycode_cache['replacement'], $message);
// Special code requiring special attention while(preg_match("#\[list\](.*?)\[/list\]#esi", $message)) { $message = preg_replace("#\[list\](.*?)\[/list\](\r\n?|\n?)#esi", "\$this->mycode_parse_list('$1')\n", $message); }
Eigentlich brauche ich alles bis auf die Smileys ... ^^
Tut mir Leid das es jetzt so viel ist, aber ich bin nun mal nicht sehr gut in PHP, aber hoffe trotzdem dass ihr mir weiterhelfen könnt.
Nun, du hast gesagt, ich soll die in eine neu Datei packen. Soll die am Anfang noch was besitzen oder reicht es einfach nur noch am Anfang ein <?php und am Schluss ein ?> zu setzen?
01.11.2007, 14:50 (Dieser Beitrag wurde zuletzt bearbeitet: 01.11.2007, 14:56 von Phenom.)
Also, erst einmal viele vielen Dank, dass ihr mir geholfen habt. Ich hab es nun gelassen, ich werde den MyBB-internen Parser nicht verwenden. Es ist 1. zu viel Arbeit und 2. für mich, da ich ja nicht so geübt in PHP bin, ein wirklich blödes Hindernis.
Nun, allerdings habe ich es endlich geschafft, einen anderen BBCode Parser zum laufen zu bringen. Er funktioniert sehr gut. Deckt zwar nicht alle BBCodes von meinem MyBB ab, aber die Notwendigsten sind vorhanden.
Den BBCode Parser hab ich angehängt.
So sieht der endgültige Quellcode der Datei aus, die die Datenbank ausliest.
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=28"; $ergebnis = mysql_query($abfrage);
Das Ergebnis sieht so aus: http://monk.ja-nee.de/read.php
Ist zwar noch nicht die Seite für unserer Pfarrei, sondern mein anderes Forum, aber man kann schön sehen, dass es funktioniert, obwohl die Bilder etwas zu breit sind, was aber egal ist.
// Daten für Verbindung zur Datenbank
$dbhost = "localhost";
$dbuser = "xxx";
$dbpassword = "xxx";
$dbdatabase = "xxx";
// Präfix
$prefix = "mybb_";
// URL zum Forum
$url = "http://forum.vfr-club.com";
// Verbindung zur Datenbank aufnehmen
$mybb = mysql_connect($localhost,$dblogin,$dbpass) or die ("Verbindung fehlgeschlagen");
mysql_select_db($dbdatabase,$db);
//Abfrage der Datenbank
$abfrage = "SELECT message FROM {$prefix}posts WHERE pid=28";
$ergebnis = mysql_query($abfrage);
Ist das die komplette Fehlermeldung? Damit lässt sich leider nicht viel anfangen.
Gruß,
Michael Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.