Anzeige der letzten Themen

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
Dude23
Mitglied
Beiträge: 34
Registriert: 30.10.2005 15:10
Wohnort: Regensburg

Anzeige der letzten Themen

Beitrag von Dude23 »

Hallo,

ich hoffe, dass das hier das richtige Forum ist - falls nicht, bitte verschieben!

Es geht um folgende Sache: Unter phpBB2 hatte ich einen kleinen Code, der es mir ermöglichte, die letzten 6 Themen als Link inkl. Datum und Zeit des letzten Beitrags in dem Thema anzuzeigen. Das sieht so aus:

1. Zeile: Titel des Threads (als Link)
2. Zeile: Datum und Uhrzeit des letzten Beitrags in diesem Thread

Das ganze funktioniert auch wunderbar unter phpBB3 (auf das ich jetzt gerne umsteigen möchte), allerdings mit einer Ausnahme: Hat man auf den Link geklickt, kam man im Forum automatisch zum letzten Beitrag - unter phpBB3 kommt man zwar auch in den Thread, aber leider zum ersten Beitrag.

Hier jetzt mal der Code:

Code: Alles auswählen

<?php
$host="localhost";
$username="---";
$password="---";
$database="---";

//Verbindung zur Datenbank
mysql_connect($host, $username, $password);

//Datenbankauswahl
mysql_select_db($database);

 $sql = 'SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username'
        . ' FROM phpbb_topics t, phpbb_forums f, phpbb_posts p, phpbb_users u'
        . ' WHERE t.topic_id = p.topic_id AND '
        . ' f.forum_id = t.forum_id AND '
        . ' t.topic_status <> 2 AND '
        . ' p.post_id = t.topic_last_post_id AND '
        . ' p.poster_id = u.user_id'
        . ' ORDER BY p.post_id DESC LIMIT 6';
// wenn Abfrage möglich...
if ( $result = mysql_query($sql) )
{
   // dann Schleife solange ein Ergebnis ausgelesen werden kann...
   while ( $row = mysql_fetch_assoc($result) )
   {
      // mysql_fetch_assoc() füllt $row wie ein array() im Format: array('post_time' => 12345678)
      $frmDatum = date("d.m.Y", $row['post_time']);
      $frmZeit = date("H:i:s", $row['post_time']);
      $post = $row['post_id'];
      echo "<font color=black size=2><a href=../phpBB/phpBB2/viewtopic.php?p=$post#$post><font color=black size=2>".$row['topic_title']."</a><br>$frmDatum $frmZeit<br></br>";
   }
}
mysql_close();
?>
Und es sieht so aus als hätte im Link das "$post#$post" schlicht seine Wirkung verloren. Nämlich, dass er (der Link) direkt zum letzten Beitrag führt und nicht "nur" in den Thread.

Und jetzt die Frage: Kann mir jemand helfen? ;)

Vielen Dank im Voraus!

MfG
Dude
Benutzeravatar
bantu
Server-Team
Beiträge: 7311
Registriert: 25.04.2006 16:12
Wohnort: Karlsruhe

Beitrag von bantu »

Wo willst du die Themen denn anzeigen? Im Board?

Eventuell findest du weitere Anregungen im Quellcode dieser Modifikation: NV recent topics 1.0.0d
Powered by Coffee
HausAmSee
Mitglied
Beiträge: 14
Registriert: 01.04.2008 20:28
Wohnort: Am See

Beitrag von HausAmSee »

Geht relativ einfach:

Code: Alles auswählen

<?php
$host="localhost";
$username="---";
$password="---";
$database="---";

//Verbindung zur Datenbank
mysql_connect($host, $username, $password);

//Datenbankauswahl
mysql_select_db($database);

 $sql = 'SELECT t.topic_id, t.topic_title, t.topic_last_post_id, t.forum_id, p.post_id, p.poster_id, p.post_time, u.user_id, u.username'
        . ' FROM phpbb_topics t, phpbb_forums f, phpbb_posts p, phpbb_users u'
        . ' WHERE t.topic_id = p.topic_id AND '
        . ' f.forum_id = t.forum_id AND '
        . ' t.topic_status <> 2 AND '
        . ' p.post_id = t.topic_last_post_id AND '
        . ' p.poster_id = u.user_id'
        . ' ORDER BY p.post_id DESC LIMIT 6';
// wenn Abfrage möglich...
if ( $result = mysql_query($sql) )
{
   // dann Schleife solange ein Ergebnis ausgelesen werden kann...
   while ( $row = mysql_fetch_assoc($result) )
   {
      // mysql_fetch_assoc() füllt $row wie ein array() im Format: array('post_time' => 12345678)
      $frmDatum = date("d.m.Y", $row['post_time']);
      $frmZeit = date("H:i:s", $row['post_time']);
      $post = $row['post_id'];
      echo "<font color=black size=2><a href=../phpBB/phpBB2/viewtopic.php?p=$post#p$post><font color=black size=2>".$row['topic_title']."</a><br>$frmDatum $frmZeit<br></br>";
   }
}
mysql_close();
?>
Bitteschön. In phpBB3 befindet sich vor der eig. ID des Postings nämlich nun noch ein "p". ;)
Zuletzt geändert von HausAmSee am 10.04.2008 14:39, insgesamt 1-mal geändert.
Dude23
Mitglied
Beiträge: 34
Registriert: 30.10.2005 15:10
Wohnort: Regensburg

Beitrag von Dude23 »

@bantu Ne, auf der Homepage, zu dem das Forum gehört.

@HausAmSee Ich hab mich bisher noch nicht genügend mit der neuen Version beschäftigt. Ich danke vielmals für die schnelle Antwort. Werd's gleich ausprobieren.

edit: Hat funktioniert, danke!
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“