<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: phpbb code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Fri, 29 Aug 2008 15:38:35 GMT</pubDate>
    <description>DZone Snippets: phpbb code</description>
    <item>
      <title>RSS mod for phpBB</title>
      <link>http://snippets.dzone.com/posts/show/4155</link>
      <description>// This is a mod from phpBB that creates an RSS feed for your forum. I am hoping the folks at phpbb-seo.com can help me out with making this compatible with the 'advanced mod rewrite' mod.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;/***************************************************************************&lt;br /&gt; *                                rss.php&lt;br /&gt; *                            -------------------&lt;br /&gt; *   begin                : Saturday, Feb 13, 2001&lt;br /&gt; *   copyright            : (C) 2005 by Lucas van Dijk&lt;br /&gt; *   email                : lucas@aoe3capitol.nl&lt;br /&gt; *&lt;br /&gt; *   $Id: rss.php,v 1.00 2004/07/11 16:46:15 mrlucky Exp $&lt;br /&gt; *&lt;br /&gt; *&lt;br /&gt; ***************************************************************************/&lt;br /&gt;&lt;br /&gt;/***************************************************************************&lt;br /&gt; *&lt;br /&gt; *   This program is free software; you can redistribute it and/or modify&lt;br /&gt; *   it under the terms of the GNU General Public License as published by&lt;br /&gt; *   the Free Software Foundation; either version 2 of the License, or&lt;br /&gt; *   (at your option) any later version.&lt;br /&gt; *&lt;br /&gt; ***************************************************************************/&lt;br /&gt;&lt;br /&gt;define('IN_PHPBB', 1);&lt;br /&gt;$phpbb_root_path = './';&lt;br /&gt;include($phpbb_root_path . 'extension.inc');&lt;br /&gt;include($phpbb_root_path . 'common.'.$phpEx);&lt;br /&gt;include($phpbb_root_path.'includes/functions_post.php');&lt;br /&gt;include($phpbb_root_path.'includes/bbcode.php');&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;// Start session management&lt;br /&gt;//&lt;br /&gt;$userdata = session_pagestart($user_ip, PAGE_INDEX);&lt;br /&gt;init_userprefs($userdata);&lt;br /&gt;//&lt;br /&gt;// End session management&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;// -------&lt;br /&gt;// Begin Page specific functions&lt;br /&gt;//&lt;br /&gt;function make_xml_compatible($text, $bbcode_uid = '', $use_bbcode = 0)&lt;br /&gt;{&lt;br /&gt;        global $board_config, $base_url;&lt;br /&gt;&lt;br /&gt;        if($use_bbcode)&lt;br /&gt;        {&lt;br /&gt;                if($bbcode_uid != '')&lt;br /&gt;                {&lt;br /&gt;                        $text = ( $board_config['allow_bbcode'] ) ? bbencode_second_pass($text, $bbcode_uid) : preg_replace('/\:[0-9a-z\:]+\]/si', ']', $text);&lt;br /&gt;                }&lt;br /&gt;                else&lt;br /&gt;                {&lt;br /&gt;                        $text = preg_replace('/\:[0-9a-z\:]+\]/si', ']', $text);&lt;br /&gt;                }&lt;br /&gt;                $text = make_clickable($text);&lt;br /&gt;                if($board_config['allow_smilies'])&lt;br /&gt;                {&lt;br /&gt;                        $text = smilies_pass($text);&lt;br /&gt;                        $text = str_replace("./".$board_config['smilies_path'], $base_url.$board_config['smilies_path'], $text);&lt;br /&gt;                }&lt;br /&gt;        }&lt;br /&gt;        $text = nl2br($text);&lt;br /&gt;&lt;br /&gt;        $text = str_replace('&amp;pound', '&amp;amp;#163;', $text);&lt;br /&gt;        $text = str_replace('&amp;copy;', '(c)', $text);&lt;br /&gt;&lt;br /&gt;        $text = htmlspecialchars($text);&lt;br /&gt;&lt;br /&gt;        return $text;&lt;br /&gt;}&lt;br /&gt;//&lt;br /&gt;// End page specific functions&lt;br /&gt;// ------&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;// If running with PHP3&lt;br /&gt;//&lt;br /&gt;if(!is_array($_SERVER))&lt;br /&gt;{&lt;br /&gt;        $_SERVER = $HTTP_SERVER_VARS;&lt;br /&gt;        $_GET = $HTTP_GET_VARS;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;// Get Various vars&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;$base_url = ($board_config['cookie_secure'] ? "https://" : "http://").$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF']);&lt;br /&gt;&lt;br /&gt;if(substr($base_url, -1) != "/")&lt;br /&gt;{&lt;br /&gt;        $base_url .= "/";&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;// Start RSS output&lt;br /&gt;//&lt;br /&gt;$rss_result = "&lt;?xml version=\"1.0\" encoding=\"iso-8859-1\"?&gt;&lt;br /&gt;&lt;rss version=\"2.0\"&gt;&lt;br /&gt;&lt;channel&gt;&lt;br /&gt;  &lt;title&gt;".make_xml_compatible($board_config['sitename'])."&lt;/title&gt;&lt;br /&gt;  &lt;link&gt;".$base_url."index.php&lt;/link&gt;&lt;br /&gt;  &lt;description&gt;".make_xml_compatible($board_config['site_desc'])."&lt;/description&gt;&lt;br /&gt;  &lt;language&gt;".$board_config['default_lang']."&lt;/language&gt;&lt;br /&gt;  &lt;copyright&gt;(c) Copyright 2007 by ".make_xml_compatible($board_config['sitename'])."&lt;/copyright&gt;&lt;br /&gt;  &lt;managingEditor&gt;".$board_config['board_email']."&lt;/managingEditor&gt;&lt;br /&gt;  &lt;webMaster&gt;".$board_config['board_email']."&lt;/webMaster&gt;&lt;br /&gt;  &lt;pubDate&gt;".create_date($board_config['default_dateformat'], time(), $board_config['board_timezone'])."&lt;/pubDate&gt;&lt;br /&gt;  &lt;lastBuildDate&gt;".create_date($board_config['default_dateformat'], time(), $board_config['board_timezone'])."&lt;/lastBuildDate&gt;&lt;br /&gt;  &lt;docs&gt;http://backend.userland.com/rss&lt;/docs&gt;&lt;br /&gt;  &lt;generator&gt;phpBB2 RSS Syndication Mod by Lucas&lt;/generator&gt;&lt;br /&gt;  &lt;ttl&gt;1&lt;/ttl&gt;&lt;br /&gt;&lt;br /&gt;  &lt;image&gt;&lt;br /&gt;    &lt;title&gt;".make_xml_compatible($board_config['sitename'])."&lt;/title&gt;&lt;br /&gt;    &lt;url&gt;".$board_config['rss_image']."&lt;/url&gt;&lt;br /&gt;    &lt;link&gt;".$base_url."&lt;/link&gt;&lt;br /&gt;    &lt;description&gt;".make_xml_compatible($board_config['site_desc'])."&lt;/description&gt;&lt;br /&gt;  &lt;/image&gt;&lt;br /&gt;";&lt;br /&gt;&lt;br /&gt;//&lt;br /&gt;// Get latest topics&lt;br /&gt;//&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$forum=1;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        //&lt;br /&gt;        // This SQL query selects the latest topics of a specific forum&lt;br /&gt;        //&lt;br /&gt;        $sql = "SELECT t.topic_title, t.topic_last_post_id, p.post_time, pt.post_text, pt.bbcode_uid, pt.post_link, u.username, u.user_id&lt;br /&gt;                FROM ".TOPICS_TABLE." t, ".POSTS_TABLE." p, ".POSTS_TEXT_TABLE." pt, ".USERS_TABLE." u&lt;br /&gt;                WHERE t.forum_id = ".$forum."&lt;br /&gt;                AND t.topic_status != 1&lt;br /&gt;                AND p.post_id = t.topic_last_post_id&lt;br /&gt;                AND pt.post_id = p.post_id&lt;br /&gt;                AND u.user_id = p.poster_id&lt;br /&gt;                ORDER BY t.topic_last_post_id DESC&lt;br /&gt;                LIMIT 0, ".intval($board_config['max_rss_topics']);&lt;br /&gt;        if(!$result = $db-&gt;sql_query($sql))&lt;br /&gt;        {&lt;br /&gt;                message_die(GENERAL_ERROR, "Could not get Latest topics", '', __LINE__, __FILE__, $sql);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        $is_auth = array();&lt;br /&gt;        $is_auth = auth(AUTH_ALL, $forum, $userdata);&lt;br /&gt;		&lt;br /&gt;		&lt;br /&gt;&lt;br /&gt;        while($row = $db-&gt;sql_fetchrow($result))&lt;br /&gt;        {&lt;br /&gt;		//Read link MOD&lt;br /&gt;		$post_link = ( $row['post_link'] != '' ) ? $row['post_link'] : '';&lt;br /&gt;		//end read link&lt;br /&gt;		&lt;br /&gt;                if($is_auth['auth_view'] &amp;&amp; $is_auth['auth_read'])&lt;br /&gt;                {&lt;br /&gt;                        $description = "&lt;br /&gt;                                       ".$lang['Posted']." ".create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone'])."&lt;br /&gt;&lt;br /&gt;                                      &lt;br /&gt;&lt;br /&gt;                                      ".$row['post_text']&lt;br /&gt;									  ."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;									  &lt;a href=\"$post_link\"&gt;Read&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href=\"".$base_url."viewtopic.php?".POST_POST_URL."=".$row['topic_last_post_id']."\" &gt;Permalink&lt;/a&gt;"&lt;br /&gt;									  ."&lt;hr /&gt;";&lt;br /&gt;&lt;br /&gt;                        $rss_result .= "&lt;br /&gt;                                      &lt;item&gt;&lt;br /&gt;                                        &lt;title&gt;".make_xml_compatible(strip_tags($row['topic_title']))."&lt;/title&gt;&lt;br /&gt;                                        &lt;link&gt;".$base_url."viewtopic.php?".POST_POST_URL."=".$row['topic_last_post_id']."&lt;/link&gt;&lt;br /&gt;                                        &lt;description&gt;".make_xml_compatible($description, $row['bbcode_uid'], true)."&lt;/description&gt;&lt;br /&gt;                                        &lt;pubDate&gt;".create_date($board_config['default_dateformat'], $row['post_time'], $board_config['board_timezone'])."&lt;/pubDate&gt;&lt;br /&gt;                                        &lt;guid isPermaLink=\"true\"&gt;".$base_url."viewtopic.php?".POST_POST_URL."=".$row['topic_last_post_id']."#".$row['topic_last_post_id']."&lt;/guid&gt;&lt;br /&gt;                                      &lt;/item&gt;";&lt;br /&gt;                }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;$rss_result .= "&lt;/channel&gt;&lt;/rss&gt;";&lt;br /&gt;&lt;br /&gt;header("Content-type: text/xml", true);&lt;br /&gt;echo $rss_result;&lt;br /&gt;&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 18 Jun 2007 08:04:28 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/4155</guid>
      <author>securitynut (Jason)</author>
    </item>
  </channel>
</rss>
