MyBB.de Forum
RSS Feed: Neueste Beiträge - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Anpassungen (https://www.mybb.de/forum/forum-47.html)
+--- Forum: Plugin-Diskussionen (https://www.mybb.de/forum/forum-38.html)
+--- Thema: RSS Feed: Neueste Beiträge (/thread-9360.html)

Seiten: Seiten: 1 2


RSS Feed: Neueste Beiträge - alexking - 28.04.2008

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";
?>



RE: RSS Feed: Neueste Beiträge - Michael - 28.04.2008

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").


RE: RSS Feed: Neueste Beiträge - alexking - 28.04.2008

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 ?


RE: RSS Feed: Neueste Beiträge - Michael - 29.04.2008

Mal Benutzt du die Variable $threads und mal $newest_threads. Du solltest dich mit dir auf eine einigen. Smile


RE: RSS Feed: Neueste Beiträge - alexking - 29.04.2008

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 ?


RE: RSS Feed: Neueste Beiträge - Michael - 29.04.2008

$posts kommt in dem Skript gar nicht vor. Ersetze alle $threads durch $newest_threads, dann sollte es passen.


RE: RSS Feed: Neueste Beiträge - alexking - 29.04.2008

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 ?


RE: RSS Feed: Neueste Beiträge - Michael - 29.04.2008

Kannst du mal einen Link zu deiner jetzigen rss2.php posten?


RE: RSS Feed: Neueste Beiträge - alexking - 30.04.2008

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 ?


RE: RSS Feed: Neueste Beiträge - Michael - 30.04.2008

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.