- <?php
- /** Fórum RSS generátor
- * @package koliportal
- * @author Karakó Miklós <palacsint_X_freemail.hu>
- * @copyright Copyright © 2005, Karakó Miklós
- */
- ob_start();
- /** initszkriptek beszúrása */
- (dirname(__FILE__) . "/../init.inc.php");
-
-
- $dataArray = array();
-
- $sql_q = "
- SELECT DISTINCT t1.title, t1.tid, p1.dt AS lastmsg, p1.uid AS lastuid,
- t1.ct AS ct, t1.cuid AS cuid,
- (SELECT count(*) FROM posts AS p4temp WHERE p4temp.tid = t1.tid) AS msgcount,
- CASE WHEN p1.dt is NULL THEN t1.ct ELSE p1.dt END AS ord_lastmsg
-
-
- FROM topics AS t1
- LEFT OUTER JOIN posts AS p1
- ON (p1.tid = t1.tid
- AND p1.postid = (SELECT max(p3temp.postid) FROM posts AS p3temp WHERE p3temp.tid = t1.tid)
- )
- ORDER BY ord_lastmsg DESC
-
- ";
- $sql_res = mysql_query($sql_q, $database);
-
- /** Hibaüzenet generálása RSS elemként
- *
- * Az RSS csatornába ágyazott hibaüzenet küldésére szolgál.
- *
- * @param string $t A hibaüzenet szövege
- */
- function error_feed($t)
- {
- $r = array();
- $r["title"] = $t;
- $r["url"] = sprintf("http://%s%s", SERVER_ROOT, $_SERVER["REQUEST_URI"]);
-
- return $r;
-
- }
-
- if ((false === $sql_res))
- {
- $dataArray[] = error_feed("Belső hiba");
- mylog(sprintf("forum_rss - get: %s", mysql_error()));
- $errc++;
- }
-
- if (0 === $errc)
- {
- while ($arr = mysql_fetch_assoc($sql_res))
- {
- $n = array();
- $n["title"] = sprintf("%s - %s", $arr["lastmsg"], $arr["title"]);
- $n["link"] = sprintf("http://%s?page=forum&tid=%d",
- SERVER_ROOT, $arr["tid"]);
- $dataArray[] = $n;
- }
- }
-
- ob_end_clean();
-
- echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n\n";
- echo "<!DOCTYPE rss PUBLIC \"-//Netscape Communications//DTD RSS 0.91//EN\"\n";
- echo " \"http://my.netscape.com/publish/formats/rss-0.91.dtd\">\n\n";
- echo "<rss version=\"0.91\">\n\n";
- echo "<channel>\n";
- echo "<title>" . RSS_TITLE . "</title>\n";
- echo "<link>" . RSS_NUKEURL . "</link>\n";
- echo "<description>" . RSS_DESCRIPTION . "</description>\n";
- echo "<language>" . RSS_BACKEND_LANGUAGE . "</language>\n\n";
-
- if (count($dataArray) > 0)
- {
- foreach($dataArray as $value) {
- printf("<item>\n
- <title>%s</title>\n
- <link>%s</link>\n
- </item>\n", $value["title"], $value["link"]);
- }
- }
-
- echo "</channel>\n";
- echo "</rss>";
-
- ?>