MyBB.de Forum

Normale Version: neueste themen auf externe seite anzeigen lassen???
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
Ich habe aktuell diesen Code laufen:
Code:
<?php
/**
* @version $Id $
* @package Mybb Latest Post
* @copyright (C) 2005 Marcel v. Lucadou
* @homepage www.designfresh.de
* @license http://www.gnu.org/copyleft/gpl.html GNU/GPL
*/

defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

$number=5;
$max=50;
$name=1;
$link=1;

$number = $params->get( 'number_posts' );
$moduleclass_sfx = $params->get( 'moduleclass_sfx' );
$max = $params->get( 'max_length' );
$name = $params->get( 'name' );
$link = $params->get( 'link' );

$host = $params->get( 'host' );
$user = $params->get( 'user' );
$pass = $params->get( 'pass' );
$db = $params->get( 'db' );
$prefix = $params->get( 'prefix' );
$url = $params->get( 'url' );

$connect = mysql_connect( $host, $user, $pass );

if ( ! $connect ) {
    die( "Konnte Verbindung zur Datenbank nicht aufbauen: ".mysql_error() );
}

if ( !mysql_select_db($db) ) {
   echo "<p>Auswahl der Datenbank zur Zeit nicht moeglich:" .mysql_error()."</p>" ;
}

$sql = "SELECT * FROM `".$prefix."threads` ORDER BY lastpost DESC LIMIT $number";

$result = mysql_query($sql);

if ( !$result ) {
   die( "Fehler bei der Ausführung der Abfrage:" .mysql_error() );
}



echo "<ul class=\"latestnews$moduleclass_sfx\">\n";
while ( $row = mysql_fetch_array($result) ) {
    $thread= $row['subject'];
    $length=strlen($thread);
if ($length > $max) {
    $thread=substr($thread, 0, $max).'...';
}
echo"<li class=\"latestnews\">";
echo"<a href=\"".$url."/showthread.php?tid=".$row['tid']."\">$thread</a>";
if ($name){
echo" von <strong>".$row['username']."</strong>";
}
echo"</li>\n";
}
echo "</ul>\n";

if ($link) {
echo "<a href=\"".$url."/search.php?action=getdaily\">Heutige Einträge</a>";
echo "    <a href=\"".$url."/search.php?action=getnew\">Neue Einträge</a>";
}

?>
Habe nun hier alles mögliche im Forum hier gelesen was eingefügt werden soll etc, aber ich komm nicht wirklich weiter. Ich hab immer noch falsche Umlaute! Man muss aber dazu sagen, dass ich zwar php vom groben Aufbau un den ein oder anderen Befehl versteh ich aber nicht mal ansatzweise vom Beherschen von php von mir sprechen will. ^^
Ich habe exakt das hier eingebaut:

PHP-Code:
// Daten für Verbindung zur Datenbank
$dbhost "xxx";
$dbuser "xxx";
$dbpassword "xxx";
$dbdatabase "xxx";

// Präfix
$prefix "xxx_mybb_";

// URL zum Forum 
$url "http://www.xxx.de/xxx";

// Anzahl der Themen
$limit "5";

// Verbindung zur Datenbank aufnehmen
$db mysql_connect($dbhost,$dbuser,$dbpassword) or die ("Verbindung fehlgeschlagen");  
mysql_select_db($dbdatabase,$db);

// Mitglieder abfragen
$res=mysql_query("SELECT uid FROM ".$prefix."users",$db); $mitglieder=mysql_num_rows($res);

// Überschrift
//echo "<strong>Neueste Themen</strong><br />";

// Liste starten
echo "<ul>";

// Letzte Themen auslesen
$query mysql_query ("SELECT subject,tid FROM ".$prefix."threads WHERE visible='1' AND fid NOT IN ('1', '2', '3', '4', '5' ,'6', '7', '8', '9', '10', '11', '12', '13', '14', '15') ORDER BY tid DESC LIMIT 0,".$limit."");

while (
$newest_threads mysql_fetch_array($query)) 
    {
    echo 
"<ul style=\"margin-top: 7px; margin-left: -15px; margin-right: 5px; margin-bottom: 7px; padding-left: 3px;\"><li><a href=\"".$url."/showthread.php?tid=".$newest_threads['tid']."\" target=\"_blank\">".htmlentities(utf8_decode($newest_threads['subject']))."</a></li></ul>";
    }



// Liste schließen 

Wobei du das "margin" weg lassen kannst, denn das hatte ich mir nur da rein gesetzt, um die Ausrichtungen an den Rest meiner Webseite anzugleichen.
Und das "AND fid NOT IN ('1', '2', '3', '4', '5' ......" musst du natürlich deinen Wünschen anpassen. Genauso wie "Anzahl der Themen" und "Überschrift".
Satt der "xxx" musst du natürlich deine Daten einsetzen.

Vielleicht hilft es dir.
PHP-Code:
<?php
### Konfiguration ###
// Daten für Verbindung zur Datenbank
$dbhost "localhost";
$dbuser "XXXX";
$dbpassword "XXXXX";
$dbdatabase "XXXXX";

// Präfix
$prefix "mybb_";

// URL zum Forum 
$url "XXXXXXXXXXXXXXX";
// Anzahl der Themen
$limit "5";

// Überlange Themen kürzen (0 = Nein, x = Anzahl der auszugebenden Zeichen)
$length "0";

### Konfiguration ###


// Head ausgeben
echo "<table width=\"100%\" border=\"0\" cellpadding=\"3\" cellspacing=\"0\"><tr><td colpan=\"4\"><strong>Letzte Themen</strong></td></tr><tr><td>Forum</td><td>Benutzer</td><td>Datum</td><td>Thema</td></tr>";

// Themen aus Datenbank holen
$query $db->query ("SELECT subject,username,uid,tid,fid,dateline FROM ".TABLE_PREFIX."threads WHERE visible='1' $unviewwhere ORDER BY tid DESC LIMIT 0,".$limit."");
while(
$threads $db->fetch_array($query))
{
// Forum ermitteln
$query2 $db->query ("SELECT name FROM ".TABLE_PREFIX."forums WHERE fid = '".$threads['fid']."'");
$forums $db->fetch_array($query2);

// Betreff kürzen?
if ($length != 0)
{
    if (
strlen($threads['subject']) > $length
    {
    
$threads['subject'] = substr($threads['subject'],0,$length) . "...";
    }
}

// Daten ausgeben
echo "<tr><td><a href=\"".$mybb->settings['bburl']."/forumdisplay.php?fid=".$threads['fid']."\">".htmlentities($forums['name'])."</a></td>
<td><a href=\""
.$mybb->settings['bburl']."/member.php?action=profile&uid=".$threads['uid']."\">".htmlentities($threads['username'])."</a></td>
<td>"
.htmlentities(mydate($mybb->settings['dateformat'], $threads['dateline'])).", ".htmlentities(mydate($mybb->settings['timeformat'], $threads['dateline']))."</td>
<td><a href=\""
.$mybb->settings['bburl']."/showthread.php?tid=".$threads['tid']."\">".htmlentities($threads['subject'])."</a></td></tr>";
}

// Footer ausgeben
echo "</table>";
?>


Das habe ich bei mir drin, habe es im root des Forums, jedoch bekomme ich lediglich den Tabellenheader angezeigt.

Habe auch schon versucht es außerhalb des Forenverzeichnisses hin zu bekommen, aber da kommt genauso wenig....

Ich kann mir nicht mehr erklären wo der Fehler liegt Sad

Kann mir please jemand helfen?
Oje, ich blick hier nicht mehr durch...
Ich hab schon ein paar probiert, aber das höchste der Gefühle war, dass da steht "Neueste Themen" mit nichts drunter.
Mein Ziel sind die 5 neuesten Beiträge einfach mit Link untereinander aufgereiht. Und zwar nur die, die für den, der die Übersicht anschaut, sichtbar sind. Also so, dass Gäste nicht ins interne Board schauen können und Registrierte nicht ins Admin-Board. Geht das?

Ich bin verwirrt...

Edit: Es geht um diese Seite und ich hätte es gerne so wie hier.
Hallo FL4PJ4CK,
Ich gehe davon aus, dass du das Script im Rootordner deiner Website verwenden willst. Versuche es mal mit dieser Version.
PHP-Code:
<?php
// Globales
define("KILL_GLOBALS"1);
define("NO_ONLINE"1);
define("IN_MYBB"1);

require(
"./forum/global.php");

// Anzahl der Themen
$limit "5";

// Überlange Themen kürzen (0 = Nein, x = Anzahl der auszugebenden Zeichen)
$length "0";

### Konfiguration ###

//Nicht sichtbare Foren ausschließen
$unviewable get_unviewable_forums();
if(
$unviewable)
{
$unviewwhere "AND fid NOT IN (".$unviewable.")";


// Head ausgeben

echo "<table width=\"90%\" align=\"center\" border=\"1\"  padding=\"0px\" cellpadding=\"3\" cellspacing=\"0\" style=\"font-family: Arial; font-size: 10; border-collapse: inherit; border-top-style: none; border-right-style: none; border-left-style: none; white-space: normal; border-top-width: medium; border-right-width: medium; border-left-width: medium; white-space: normal; border-bottom: 0px solid silver; \" border-collapse: inherit><tr><td colpan=\"4\" colspan=\"4\"><strong>Letzte Themen</strong></td></tr><tr><td>Forum</td><td>Benutzer</td><td>Datum</td><td>Thema</td></tr>"


// Themen aus Datenbank holen
$query $db->query ("SELECT subject,username,uid,tid,fid,dateline FROM ".TABLE_PREFIX."threads WHERE visible='1' $unviewwhere ORDER BY tid DESC LIMIT 0,".$limit."");
while(
$threads $db->fetch_array($query))
{
// Forum ermitteln
$query2 $db->query ("SELECT name FROM ".TABLE_PREFIX."forums WHERE fid = '".$threads['fid']."'");
$forums $db->fetch_array($query2);

// Betreff kürzen?
if ($length != 0)
{
    if (
strlen($threads['subject']) > $length
    {
    
$threads['subject'] = substr($threads['subject'],0,$length) . "...";
    }
}

// Daten ausgeben
echo "<tr><font size=\"2\"><td><a href=\"".$mybb->settings['bburl']."/forumdisplay.php?fid=".$threads['fid']."\">".htmlentities($forums['name'])."</a></td>
<td><a href=\""
.$mybb->settings['bburl']."/member.php?action=profile&amp;uid=".$threads['uid']."\">".htmlentities($threads['username'])."</a></td>
<td>"
.htmlentities(my_date($mybb->settings['dateformat'], $threads['dateline'])).", ".htmlentities(my_date($mybb->settings['timeformat'], $threads['dateline']))."</td>
<td><a href=\""
.$mybb->settings['bburl']."/showthread.php?tid=".$threads['tid']."\">".htmlentities($threads['subject'])."</a></td></tr>";
}

// Footer ausgeben
echo "</table>";
?>

Mfg Garlant
Super, ich werde es gleich mal ausprobieren. Das Skript soll in die index.php im Root, genau. Das Forum liegt unter /forum/.
Muss ich da noch irgendwie die Datenbankanbindung eintragen oder geht das direkt über das Forum?

Danke!
Hm, also wenn ich nichts eintrage, kommt das:

[Bild: http://www.nicolasschabram.de/Privat/letzte_themen.png]
Hallo FL4PJ4CK,

Nein, du brauchst nichts mehr ein zu tragen.
Versuche es bitte mit dieser Version:
PHP-Code:
<?php
// Globales
define("KILL_GLOBALS"1);
define("NO_ONLINE"1);
define("IN_MYBB"1);

chdir("./forum/");

require(
"./global.php");

// Anzahl der Themen
$limit "5";

// Überlange Themen kürzen (0 = Nein, x = Anzahl der auszugebenden Zeichen)
$length "0";

### Konfiguration ###

//Nicht sichtbare Foren ausschließen
$unviewable get_unviewable_forums();
if(
$unviewable)
{
$unviewwhere "AND fid NOT IN (".$unviewable.")";


// Head ausgeben

echo "<table width=\"90%\" align=\"center\" border=\"1\"  padding=\"0px\" cellpadding=\"3\" cellspacing=\"0\" style=\"font-family: Arial; font-size: 10; border-collapse: inherit; border-top-style: none; border-right-style: none; border-left-style: none; white-space: normal; border-top-width: medium; border-right-width: medium; border-left-width: medium; white-space: normal; border-bottom: 0px solid silver; \" border-collapse: inherit><tr><td colpan=\"4\" colspan=\"4\"><strong>Letzte Themen</strong></td></tr><tr><td>Forum</td><td>Benutzer</td><td>Datum</td><td>Thema</td></tr>"


// Themen aus Datenbank holen
$query $db->query ("SELECT subject,username,uid,tid,fid,dateline FROM ".TABLE_PREFIX."threads WHERE visible='1' $unviewwhere ORDER BY tid DESC LIMIT 0,".$limit."");
while(
$threads $db->fetch_array($query))
{
// Forum ermitteln
$query2 $db->query ("SELECT name FROM ".TABLE_PREFIX."forums WHERE fid = '".$threads['fid']."'");
$forums $db->fetch_array($query2);

// Betreff kürzen?
if ($length != 0)
{
    if (
strlen($threads['subject']) > $length
    {
    
$threads['subject'] = substr($threads['subject'],0,$length) . "...";
    }
}

// Daten ausgeben
echo "<tr><font size=\"2\"><td><a href=\"".$mybb->settings['bburl']."/forumdisplay.php?fid=".$threads['fid']."\">".htmlentities($forums['name'])."</a></td>
<td><a href=\""
.$mybb->settings['bburl']."/member.php?action=profile&amp;uid=".$threads['uid']."\">".htmlentities($threads['username'])."</a></td>
<td>"
.htmlentities(my_date($mybb->settings['dateformat'], $threads['dateline'])).", ".htmlentities(my_date($mybb->settings['timeformat'], $threads['dateline']))."</td>
<td><a href=\""
.$mybb->settings['bburl']."/showthread.php?tid=".$threads['tid']."\">".htmlentities($threads['subject'])."</a></td></tr>";
}

// Footer ausgeben
echo "</table>";

chdir("../");
?>

Mfg Garlant
Hm, also sieht schon besser aus, aber irgendwas stimmt wohl noch nicht (Sonderzeichen und Fehlermeldung):

[Bild: http://www.nicolasschabram.de/Privat/letzte_themen2.png]

Mein Layout wird leider durch die Tabelle auch ziemlich zerschlagen. Die ist zu breit dafür. Das wird dann alles in die Länge gezogen =(

Ah, ich sehe gerade, das sind ja die letzten Themen. Ist es auch möglich, die letzten Beiträge anzuzeigen?
Zur Not geht es auch so, aber wenn es eine Möglichkeit gibt, ... =)

Danke für deine Hilfe, Nico
Hallo FL4PJ4CK,

In welchem "Modus" speicherst du deine Datei den ab? Gibt es bei dir den die Möglichkeit die Datei utf8 codiert, abspeichern zu lassen?
Stelle bitte auch sicher, das vor <?pgp und ?> keinerlei Zeichen sind.

PHP-Code:
<?php
// Globales
define("KILL_GLOBALS"1);
define("NO_ONLINE"1);
define("IN_MYBB"1);

chdir("./forum/");

require(
"./global.php");

// Anzahl der Themen
$limit "5";

// Überlange Themen kürzen (0 = Nein, x = Anzahl der auszugebenden Zeichen)
$length "0";

### Konfiguration ###

//Nicht sichtbare Foren ausschließen
$unviewable get_unviewable_forums();
if(
$unviewable)
{
$unviewwhere "AND fid NOT IN (".$unviewable.")";


// Head ausgeben

echo "<table width=\"90%\" align=\"center\" border=\"1\"  padding=\"0px\" cellpadding=\"3\" cellspacing=\"0\" style=\"font-family: Arial; font-size: 10; border-collapse: inherit; border-top-style: none; border-right-style: none; border-left-style: none; white-space: normal; border-top-width: medium; border-right-width: medium; border-left-width: medium; white-space: normal; border-bottom: 0px solid silver; \" border-collapse: inherit><tr><td colpan=\"4\" colspan=\"4\"><strong>Letzte Themen</strong></td></tr><tr><td>Forum</td><td>Benutzer</td><td>Datum</td><td>Thema</td></tr>"


// Themen aus Datenbank holen
$query $db->query ("SELECT subject,username,uid,tid,fid,dateline FROM ".TABLE_PREFIX."posts WHERE visible='1' $unviewwhere ORDER BY tid DESC LIMIT 0,".$limit."");
while(
$posts $db->fetch_array($query))
{
// Forum ermitteln
$query2 $db->query ("SELECT name FROM ".TABLE_PREFIX."forums WHERE fid = '".$posts['fid']."'");
$forums $db->fetch_array($query2);

// Betreff kürzen?
if ($length != 0)
{
    if (
strlen($threads['subject']) > $length
    {
        
$posts['subject'] = substr($posts['subject'],0,$length) . "...";
    }
}

// Daten ausgeben
echo "<tr><font size=\"2\"><td><a href=\"".$mybb->settings['bburl']."/forumdisplay.php?fid=".$posts['fid']."\">".htmlspecialchars($forums['name'])."</a></td>
<td><a href=\""
.$mybb->settings['bburl']."/member.php?action=profile&uid=".$posts['uid']."\">".htmlspecialchars($posts['username'])."</a></td>
<td>"
.htmlentities(my_date($mybb->settings['dateformat'], $posts['dateline'])).", ".htmlspecialchars(my_date($mybb->settings['timeformat'], $posts['dateline']))."</td>
<td><a href=\""
.$mybb->settings['bburl']."/showthread.php?tid=".$posts['tid']."\">".htmlspecialchars($posts['subject'])."</a></td></tr>";
}

// Footer ausgeben
echo "</table>";

chdir("../");
?>

Den html-code musst du dir natürlich noch anpassen und validieren.

Mfg Garlant
Hm, sieht immer noch gleich aus (Fehlermeldung, Zeichen).
Hab jetzt eigentlich gerade auf UTF-8 umgestellt.

Zitat:Den html-code musst du dir natürlich noch anpassen und validieren.

Was meinst du damit? Das Problem ist, dass ich die Seite mit NetObjects Fusion gemacht hab. Und da ist der Code nicht wirklich valide...

Ich glaub, ich lass es jetzt einfach. So wichtig ist es mir auch nicht.

Trotzdem danke, Nico
Seiten: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30