Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 7 Gast/Gäste
Beiträge aus bestimmtem Forum auf externer Seite anzeigen
#61
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.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#62
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.
MyBBoard.de jetzt auf YouTube!
Fehlender Plan wird durch Wahnsinn ersetzt!!Toungue
Gruß Krafdi    www.krafdi.de
Zitieren
#63
@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. Smile

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. Smile

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;
    } 
[Bild: sysp-50033.gif]
Zitieren
#64
Guten Morgen. Smile
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. Smile

(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;
    }


?>
[Bild: sysp-50033.gif]
Zitieren
#65
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.
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#66
@Dragon: Dankeschön! Smile
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? Smile
[Bild: sysp-50033.gif]
Zitieren
#67
Hallo Phenom,
bitte setze an den Anfang der datei folgendes und Poste die Fehlermeldungen, wenn vorhanden.

PHP-Code:
error_reporting(E_ALL); 

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!
Zitieren
#68
Hallo Garlant!

zur Fehlermeldung:
Wenn ich das nun oben einfüge, dann kommt erneut eine Leere Seite, ohne Inhalt und ohne Quelltext. Smile

zu deinem PHP-Code:
Wenn ich das nun ersetze, kommt auch eine leere Seite, wobei im Quelltext aber nur folgendes steht:
Code:
<br />
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 ... Sad
'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. Sad
[Bild: sysp-50033.gif]
Zitieren
#69
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
[Bild: banner.png]
Support erfolgt NUR im Forum!
Bitte gelöste Themen als "erledigt" markieren.
Beiträge mit mangelhafter Rechtschreibung/Grammatik werden kommentarlos gelöscht.
Zitieren
#70
Ersetze:
PHP-Code:
$message["message"
durch:
PHP-Code:
$message->message 
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  MyBB 1.6.14 Logindaten aus externer Datenbank nutzten king555 4 1.844 15.07.2014, 23:22
Letzter Beitrag: Juventiner
  SEO und neue Themen auf externer Seiten robagedy 7 3.447 03.06.2013, 14:36
Letzter Beitrag: robagedy
  Abfrage aus externer DB ausgeben robagedy 2 1.614 24.05.2013, 15:37
Letzter Beitrag: robagedy
  [geteilt] "Forum ist ein Externer Link" Frage Torie 13 6.266 17.09.2012, 08:13
Letzter Beitrag: Torie
  Beiträge von bestimmtem Nutzer nur von bestimmten Nutzer bearbeiten/löschen Frido 3 2.371 05.03.2009, 17:17
Letzter Beitrag: Frido