Hallo, Gast! (Registrieren)

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


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
RSS Feed: Neueste Beiträge
#1
Ich weiß, dass es einen ähnlichen Thread schon gibt, aber der trifft nicht ganz mein Problem.

Gibt es eine Möglichkeit die Threads mit den neuesten Beiträgen als News-Feed auszugeben ?
Ich benötige das für ein Widget in Wordpress.

Standardmäßig zeigt er ja immer nur die neuesten Themen an, aber nicht die Themen wo jeweils der aktuellste Beitrag vorhanden ist.
Im anderen Thread hatte ich die rss2.php gesehen von Michael, allerdings zeigt er dann für jeden Thread auch mehrere Antworten mit an.

Ich möchte, dass immer die Threads nach jeweils aktuellstem Beitrag geordnet angezeigt werden.

Vermutlich ist das ja nur ne kleine Änderung in der rss2.php
Diese sieht bislang so aus:

PHP-Code:
<?php
### Neueste Posts per RSS ###

// Globales
define("IN_MYBB"1);
define("KILL_GLOBALS"1);
define("NO_ONLINE"1);

require 
"./global.php";

// Nicht sichtbare Foren
$unviewable get_unviewable_forums();
if(
$unviewable) {
    
$unviewable "AND fid NOT IN($unviewable)";
}

// Limit - Anzahl der Posts
if(!isset($mybb->input['limit'])) {
    
$limit "10";
}
elseif(
intval($mybb->input['limit']) > "30") {
    
$limit "30";
} else {
    
$limit intval($mybb->input['limit']);
}

// Nur bestimte Foren?
if(isset($mybb->input['forums'])) {
    
$forums explode(","$mybb->input['forums']);
    
$sep "";
    foreach(
$forums as $forum) {
        
$inforums .= $sep.intval($forum);
        
$sep ",";
    }
    
$inforums "AND fid IN (".$inforums.")";
}

// Name
$title htmlspecialchars_uni($mybb->settings['bbname'].$title);

// Head ausgeben
header("Content-Type: text/xml");
echo 
"<?xml version=\"1.0\" encoding=\"utf-8\"?>\n";
echo 
"<rss version=\"0.92\">\n";
echo 
"\t<channel>\n";
echo 
"\t\t<title><![CDATA[".$title."]]></title>\n";
echo 
"\t\t<link>".$mybb->settings['bburl']."</link>\n";
echo 
"\t\t<description><![CDATA[".$mybb->settings['bbname']." - ".$mybb->settings['bburl']."]]></description>\n";
echo 
"\t\t<language>de</language>\n";

// Posts aus Datenbank holen
$query $db->query("SELECT * FROM ".TABLE_PREFIX."threads WHERE 1=1 $unviewable $inforums ORDER BY lastpost DESC LIMIT 0,".$limit."");
while(
$newest_threads $db->fetch_array($query)) {
    
// Forum ermitteln
    
$query2 $db->query("SELECT name FROM ".TABLE_PREFIX."forums WHERE fid = '".$posts['fid']."' LIMIT 0,1");
    
$forums $db->fetch_array($query2);
    echo 
"\t\t<item>\n";
    echo 
"\t\t\t<title>".htmlspecialchars_uni($threads['subject'])."</title>\n";
    echo 
"\t\t\t<author>".htmlspecialchars_uni($threads['username'])."</author>\n";
    echo 
"\t\t\t<description><![CDATA[".$forums['name'].": ".htmlspecialchars_uni($threads['message'])."]]></description>\n";
    echo 
"\t\t\t<link>".$mybb->settings['bburl']."/showthread.php?tid=".$newest_threads['tid']."&amp;pid=".$newest_threads['pid']."#pid".$newest_threads['pid']."</link>\n";
    echo 
"\t\t</item>\n";
}

// Abschließen
echo "\t</channel>\n";
echo 
" </rss>\n";
?>
Zitieren
#2
alexking schrieb:Standardmäßig zeigt er ja immer nur die neuesten Themen an, aber nicht die Themen wo jeweils der aktuellste Beitrag vorhanden ist.
Das ist falsch. Im Query werden die Themen sortiert nach dem Zeitpunkt des letzten Beitrags im Thema ("ORDER BY lastpost").

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
#3
Michael schrieb:
alexking schrieb:Standardmäßig zeigt er ja immer nur die neuesten Themen an, aber nicht die Themen wo jeweils der aktuellste Beitrag vorhanden ist.
Das ist falsch. Im Query werden die Themen sortiert nach dem Zeitpunkt des letzten Beitrags im Thema ("ORDER BY lastpost").

Sorry hatte aus Versehen schon den von mir selbst geänderten Code gepostet. Dieser funktioniert allerdings bei mir nicht. Da steht dann bei allen Einträgen einfach nur untitled statt der Name des Threads.

Weißt du was falsch ist am Code ?
Zitieren
#4
Mal Benutzt du die Variable $threads und mal $newest_threads. Du solltest dich mit dir auf eine einigen. Smile

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
#5
Michael schrieb:Mal Benutzt du die Variable $threads und mal $newest_threads. Du solltest dich mit dir auf eine einigen. Smile

Ja ich weiß, dass es daran liegt. Aber ich hab schon alle Kombinationen durchprobiert. Wenn ich alles auf threads setze oder alles auf newest_threads kommt auch immer nur untitled. Es klappt nur, wenn alles auf posts steht, aber dann hab ich wieder nicht die gewünschte Ansicht.

Das es generell gehen sollte weiß ich ja, weil du mir schonmal ein Script gegeben hast, um die Beiträge auf einer anderen php Seite ausgeben zu lassen. Anhand dessen habe ich versucht die rss2.php zu erstellen. Leider kann ich dieses Script nicht in Wordpress nutzen in der Sidebar.

Kannst du mir sagen, welcher Wert (threads, newest_threads, posts) wohin kommen muss ?
Zitieren
#6
$posts kommt in dem Skript gar nicht vor. Ersetze alle $threads durch $newest_threads, dann sollte es passen.

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
#7
Ne, dann bekomm ich folgenden Fehler:
Ein Fehler ist aufgetaucht - der Feed funktioniert zur Zeit nicht. Probiere es später noch einmal.

In der Original rss2.php waren aber schon Variablen mit $posts. Irgendeine Kombination muss ja korrekt sein, hast du sonst noch eine Lösung ?
Zitieren
#8
Kannst du mal einen Link zu deiner jetzigen rss2.php posten?

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
#9
Michael schrieb:Kannst du mal einen Link zu deiner jetzigen rss2.php posten?

Oh man ich bin ein Idiot, aber deine Frage hat mich erst auf die Lösung gebracht.
Nachdem ich die rss2.php Link aufrufen wollte, bekam ich eine genaue Fehlerangabe. In Zeile 59 hatte sich ein Punkt zu viel eingeschlichen. Vorher hatte ich es ja immer nur in der Sidebar von Wordpress versucht, wo nur ein allgemeiner Fehler kam.

Danke dir für deine Mühe, jetzt klappt alles wunderbar !
Ich poste im anderen Thread nochmal die funktionierende rss2.php, damit sie jeder nutzen kann.

Letzte Frage:
Wenn die Anzeige immer den Stand vor etwa einer Stunde anzeigt und nicht den tatsächlich aktuellen, dann liegt das nicht an der rss2.php, sondern an dem Feed-Reader in Wordpress oder ?
Zitieren
#10
Ich denke, dass Wordpress den Feed in einen Cache einliest, damit er nicht jedesmal neu geladen werden muss. Evtl. gibt es dafür eine Einstellung.

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


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Neueste Beiträge anzeigen UweJ 6 1.071 22.11.2022, 14:02
Letzter Beitrag: UweJ
  Neueste Beiträge auf einer Homepage Seite einbinden Sunny1980 1 1.762 18.02.2019, 09:44
Letzter Beitrag: itsmeJAY
  RSS Feed Poster-> extra Seite KaSo 1 1.392 12.07.2017, 19:36
Letzter Beitrag: KaSo
  Letzte Beiträge per RSS-Feed querschlaeger 21 9.328 05.11.2015, 14:40
Letzter Beitrag: bigfraggle
  Suche Plugin für Neueste Beiträge Startseite Robotic-Forum 1 1.410 19.12.2012, 18:19
Letzter Beitrag: StefanT