Seite 1 von 3
Letzte Themen anzeigen (lasttopics)
Verfasst: 23.12.2015 13:12
von Comedix
Hallo,
noch verwende ich die Version 3.0.14, möchte aber auf 3.1 umsteigen. Das Forum ist nur ein Teil meiner Homepage. Ich verwende bisher den Mod lasttopics, damit kann ich die letzten x Themen aus dem Forum auf einer beliebigen Seite meiner Homepage, also außerhalb des Forums, per Includierung einer PHP-Datei, die im Forumverzeichnis liegt, darstellen. Gibt es eine vergleichbare Möglichkeit auch für 3.1.x?
Gruß, Marco
Re: Letzte Themen anzeigen (lasttopics)
Verfasst: 10.01.2016 10:17
von Comedix
Hallo,
bin ich tatsächlich der Einzige, der Themen aus dem Forum auf der Hauptseite seiner Homepage anzeigen lassen möchte? Kann ich mir gar nicht vorstellen. Vielleicht aber gibt es kaum noch Homepages, die neben dem Forum auch noch eigene Inhalte produzieren und deshalb diese Extension suchen. Ich wäre auch bereit für eine entsprechende Extension Geld zu bezahlen, wenn sie nur für meine Zwecke programmiert werden müsste. Bevor es das nicht gibt, kann ich nicht auf die neue Version umsteigen.
Gruß, Marco
Re: Letzte Themen anzeigen (lasttopics)
Verfasst: 10.01.2016 10:35
von Kirk
Hallo
Vielleicht währe die Erweiterung
Recent Topics was für dich.
Re: Letzte Themen anzeigen (lasttopics)
Verfasst: 10.01.2016 12:16
von Comedix
Kirk hat geschrieben:Vielleicht währe die Erweiterung
Recent Topics was für dich.
Danke für deine Antwort. Ich glaube nicht, dass diese Erweiterung meinen Anforderungen entspricht. Die Extension ergänzt "nur" die Index des Forums um eine Liste der Topics. Ich möchte jedoch diese Liste in der Hauptseite einer beliebigen PHP-Seite includieren. Zu sehen auf meiner
Startseite. Genau genommen ist es wohl auch keine Extension, sondern ein Fragment, das Daten aus der Forum-Datenbank ausliest und auf einer beliebigen Seite darstellt. Das dürfte erklären, warum ich mit meiner Frage in diesem Topic möglicherweise falsch bin.
Re: Letzte Themen anzeigen (lasttopics)
Verfasst: 10.01.2016 13:10
von BNa
Ab hier lesen:
viewtopic.php?p=977650#p977650
Hinweis: Es gibt mehrere Versionen des Scripts in diesem Topic.
Sie sollten aber alle (auch im 3.1.*) funktionieren.
Jedenfalls wüsste ich nicht, warum nicht
Hat sich wohl kaum die ganze SQL-Syntax im 3.1.* geändert
Comedix hat geschrieben:Ich verwende bisher den Mod lasttopics
Hast Du dafür einen Downloadlink?
Oder den exakten Namen vom Mod?
Re: Letzte Themen anzeigen (lasttopics)
Verfasst: 10.01.2016 21:43
von gn#36
Bei der Speicherung der Themen hat sich schon einiges geändert, z.B. durch den Papierkorb den es ja jetzt gibt. Ich würde mal vermuten, dass der ganze Kram bei dem Skript dann nicht beachtet wird und die Papierkorb-Themen mitgelistet werden. Aber sonst sieht das Skript einfach genug aus um weiter zu funktionieren. Probier's einfach aus, aber insbesonder im Hinblick auf Themen, die nicht zu sehen sein sollten.
Re: Letzte Themen anzeigen (lasttopics)
Verfasst: 11.01.2016 20:14
von Comedix
BNa hat geschrieben:Hast Du dafür einen Downloadlink?
Oder den exakten Namen vom Mod?
Wie gesagt, genau genommen ist es wohl kein Mod, den man im Forum installiert. Es ist nur eine PHP-Datei, relativ kurz, deshalb poste ich Code hier direkt im Eintrag.
Womöglich funktioniert die Datei, die ich mal vor 10 Jahren aus dem Mod-Bereich des alten phpBB-Forums hatte, auch mit der Version 3.1. Wenn aber nicht, dann wird ein ziemlich aufwändiger Test, für einen möglicherweise zweifelhaften Erfolg. Da mir die Anzeige der Forumthemen auf meiner Hauptseite aber sehr wichtig ist, möchte ich auch nach einer Umstellung nicht darauf verzichten.
Code: Alles auswählen
<?php
// ############ Anfang Festlegung der Vorgaben ########################################
// Laenge der angezeigten Themenueberschrift in Buchstaben
$topic_length = '30';
// Maximal angezeigte Beiträge
$topic_limit = '7';
// Eingeschraenkte Forumsanzeige ('0' = Aus; '1' = Ein)
$special_forums = '1';
// IDs der ausgeschlossenen Foren (nur wenn Forumsanzeige = "1"); Trennung der IDs mit einem Komma
$forum_ids = '1,2,3,16,17,18,19,20,21,24,35,38,42,48';
// Relative Pfadangabe zur config.php
$config_path = '/';
// Absoluter Pfad des Forums auf dem Server, bitte eingeben !!!
$root_path = 'http://www.comedix.de/pinboard/';
// ############ Ende Vorgaben #######################################
//Ermittlung des aktuellen Server-Verzeichnisses für Einbindung config.php
$path = dirname(__FILE__);
// Einbinden der phpBB-Konfigurationsdatei und somit Ermittlung der MySQL-Zugangsdaten
include_once($path.$config_path .'config.php');
// Verbindungsaufbau mit Zugangsdaten aus config.php, Fehlermeldung bei Problemen
mysql_connect($dbhost, $dbuser, $dbpasswd) OR die('Serververbindung fehlgeschlagen');
// Verbindung mit der phpBB-Datenbank herstellen
mysql_select_db($dbname) OR die('Datenbankverbindung fehlgeschlagen!');
//Abfrage ob Foreneinschraenkung gesetzt per Verzweigung und Uebergabe der moeglichen IDS an die Variable
$where_forums = ( $special_forums == '0' ) ? '' : 't.forum_id NOT IN ('. $forum_ids .') AND ';
//Definition der SQL-Abfrage
$sql = "SELECT t.*, f.forum_id, f.forum_name, u.username AS first_poster, u.user_id AS first_poster_id, u2.username AS last_poster, u2.user_id AS last_poster_id, p.post_username AS first_poster_name, p2.post_username AS last_poster_name, p2.post_time
FROM ". $table_prefix ."topics t, ". $table_prefix ."forums f, ". $table_prefix ."users u, ". $table_prefix ."posts p, ". $table_prefix ."posts p2, ". $table_prefix ."users u2
WHERE $where_forums t.topic_poster = u.user_id AND f.forum_id = t.forum_id AND p.post_id = t.topic_first_post_id AND p2.post_id = t.topic_last_post_id AND u2.user_id = p2.poster_id
ORDER BY t.topic_last_post_id DESC LIMIT $topic_limit";
//Durchfuehrung der SQL-Abfrage und Ergebnisuebergabe an $result
$result = mysql_query($sql);
// Wenn Abfrafge fehlgeschlagen = Fehlermeldung
if( !$result )
{
die('SQL-Abfrage fehlgeschlagen!: '. mysql_error());
exit();
}
//Definition Array für Aufnahme der Abfragedaten
$line = array();
// Uebergabe der Daten bis zum letzten Datensatz an Array per Schleife
while( $row = mysql_fetch_array($result) )
{
$line[] = $row;
}
// Strukturiertes Auslesen des Arrays und Variablenuebergabe
for( $i = 0; $i < count($line); $i++ )
{
$forum_id = $line[$i]['forum_id']; //Forums-ID
$forum_url = $root_path .'viewforum.php?f='. $forum_id; //Forums-Link
$topic_id = $line[$i]['topic_id']; //Themen-ID
$topic_url = $root_path .'viewtopic.php?t='. $topic_id; //Themen-Link
// Ausgabeformat der Beitragsueberschrift (Thema)
$topic_title = ( strlen($line[$i]['topic_title']) < $topic_length ) ? $line[$i]['topic_title'] : substr(stripslashes($line[$i]['topic_title']), 0, $topic_length) .'...';
// Themenklassifizierung
$topic_type = ( $line[$i]['topic_type'] == '2' ) ? 'Beitrag ': '';
$topic_type .= ( $line[$i]['topic_type'] == '3' ) ? 'Globaler Beitrag: ': '';
$topic_type .= ( $line[$i]['topic_type'] == '1' ) ? 'Wichtiger Beitrag: ': '';
$topic_type .= ( $line[$i]['topic_vote'] ) ? 'Abstimmung: ': '';
$views = $line[$i]['topic_views'];
$replies = $line[$i]['topic_replies'];
$first_time = date('d.m.Y', $line[$i]['topic_time']);
$first_author = ( $line[$i]['first_poster_id'] != '-1' ) ? '<a href="'. $root_path .'profile.php?mode=viewprofile&u='. $line[$i]['first_poster_id'] .'" target="_blank">'. $line[$i]['first_poster'] .'</a>' : ( ($line[$i]['first_poster_name'] != '' ) ? $line[$i]['first_poster_name'] : 'guest' );
$last_time = date('d.m.Y', $line[$i]['post_time']);
$last_author = ( $line[$i]['last_poster_id'] != '-1' ) ? $line[$i]['last_poster'] : ( ($line[$i]['last_poster_name'] != '' ) ? $line[$i]['last_poster_name'] : 'guest' );
$last_url = '<a href="'. $root_path .'viewtopic.php?p='. $line[$i]['topic_last_post_id'] .'#'. $line[$i]['topic_last_post_id'] .'" target="_blank">'. $last_author .'</a>';
// ############## Eigentliche Ausgabe der Beitraege #############
echo '<a href="'. $topic_url .'" target="_blank">'. $topic_title .'</a>';
echo ' im Bereich ';
echo '<a href="'. $forum_url .'" target="_blank">'. $line[$i]['forum_name'] .'</a> ('. $last_time .')<br>';
// echo '<table cellspacing=0 cellpadding=0><tr>';
// echo '<td valign="top" class=main><a href="'. $topic_url .'" target="_blank">'. $topic_title .'</a>';
// echo ' im Bereich ';
// echo '<a href="'. $forum_url .'" target="_blank">'. $line[$i]['forum_name'] .'</a> ('. $last_time .')</td></tr></table>';
// ############## Ende Eigentliche Ausgabe ##############
}
mysql_close(); // Beendigung der Datenbankverbindung
?>
Re: Letzte Themen anzeigen (lasttopics)
Verfasst: 11.01.2016 20:32
von BNa
Und? Schon probiert?
Ist ja nur ein "dummes(!)"
include();
....
Damit kamma nix kaputt machen

Re: Letzte Themen anzeigen (lasttopics)
Verfasst: 11.01.2016 21:35
von Comedix
BNa hat geschrieben:Und? Schon probiert?
Das Include ist nicht mein Problem. Mein Forum läuft noch auf 3.0, wenn ich auf 3.1 umstelle und das Include nicht funktioniert, muss ich ein komplettes Backup wieder herstellen. Das mache ich nicht mal eben nach Feierabend. Ich habe keine List die Nacht damit zu verbringen ein Forum wieder zum Laufen zu bekommen.
Re: Letzte Themen anzeigen (lasttopics)
Verfasst: 12.01.2016 00:02
von BNa
Richte doch einfach ein 3.1.* Test-Forum ein
Erstell dann einige (Test-)Beiträge und teste ganz risiko-frei
