<?php

/********************************************************************************
	- MemHT Portal -
	
	Copyright (C) 2007-2008 by Miltenovik Manojlo
	http://www.memht.com
	
	This program is free software; you can redistribute it and/or modify
	it under the terms of the GNU General Public License as published by
	the Free Software Foundation; either version 2 of the License, or
	(at your opinion) any later version.
	
	This program is distributed in the hope that it will be useful,
	but WITHOUT ANY WARRANTY; without even the implied warranty of
	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
	GNU General Public License for more details.
	
	You should have received a copy of the GNU General Public License along
	with this program; if not, see <http://www.gnu.org/licenses/> (GPLv2)
	or write to the Free Software Foundation, Inc., 51 Franklin Street,
	Fifth Floor, Boston, MA02110-1301, USA.
		
********************************************************************************/

header("Content-Type: text/xml");

//===========================================
//Database: Connect
//===========================================
require_once("inc/inc_config.php");
require_once("inc/inc_database.php");

$dblink = new database();
$dblink->connect();

//===========================================
//TIMEZONE SETTING + DATABASE CHECK
//===========================================
$timezonerow = $dblink->get_row("SELECT timezone FROM memht_config") or die("<table style='padding: 2px; border: 1px solid #999; background-color: #EEE; font-family: Verdana; font-size: 10px;' align='center'><tr><td><b>Attention:</b> Cannot find database tables!</td></tr></table>");
$siteConfig['timezone'] = intval($timezonerow['timezone']);
$tzNOW = "DATE_ADD(NOW(),INTERVAL ".$siteConfig['timezone']." HOUR)";

require_once("inc/inc_login.php");
require_once("inc/inc_functions.php");
require_once("inc/inc_readConfig.php");
require_once("inc/inc_getinfo.php");
require_once("inc/inc_ban.php");

if (file_exists("lang/".$siteConfig['language'].".php")) {
	include_once("lang/".$siteConfig['language'].".php");
} else {
	include_once("lang/".$siteConfig['default_language'].".php");
}

if (!defined("_LANG_CHARSET_")) { define("_LANG_CHARSET_","utf-8"); }

//===========================================
$topic = (isset($_GET['topic'])) ? intval($_GET['topic']) : 0 ;
$cat = (isset($_GET['cat'])) ? intval($_GET['cat']) : 0 ;
$forum = (isset($_GET['forum'])) ? intval($_GET['forum']) : 0 ;
$page = (isset($_GET['page'])) ? clean($_GET['page']) : "news" ;
$items = (isset($_GET['items'])) ? intval($_GET['items']) : 30 ;
if ($items>50) { $items = 50; }

$myrank = myRank();
if ($row = $dblink->get_row("SELECT titolo FROM memht_pagine WHERE nome='$page' AND rank<=$myrank AND enabled=1")) {
	$pagename = outCode($row['titolo']);
	
	$row = $dblink->get_row("SELECT nome,site_url FROM memht_config");
	$sitename = outCode($row['nome']);
	$siteurl = outCode($row['site_url']);
	
	echo "<?xml version=\"1.0\" encoding=\""._LANG_CHARSET_."\"?>\n";
	echo "<rss version=\"2.0\">\n\n";
		echo "<channel>\n";
			echo "<title><![CDATA[$sitename]]></title>\n";
			echo "<link><![CDATA[$siteurl]]></link>\n";
			echo "<description><![CDATA[$pagename]]></description>\n";
			echo "<generator>MemHT Portal</generator>\n";
			
			if ($topic>0 AND $row = $dblink->get_row("SELECT nome,img FROM memht_argomenti WHERE id=$topic")) {
				$topicname = outCode($row['nome']);
				$topicimg = outCode($row['img']);
				if ($topicimg!="" AND file_exists("templates/".$siteConfig['template']."/images/topics/$topicimg.gif")) {
					$topicimg = "templates/".$siteConfig['template']."/images/topics/$topicimg.gif";
				} else if ($topicimg!="" AND file_exists("images/topics/$topicimg.gif")) {
					$topicimg = "images/topics/$topicimg.gif";
				} else {
					$topicimg = "images/topics/empty.gif";
				}
				
				echo "<category><![CDATA[$topicname]]></category>\n";
				echo "<image>\n";
					echo "<url><![CDATA[$siteurl/$topicimg]]></url>\n";
					echo "<title><![CDATA[$topicname]]></title>\n";
					$link = ($siteConfig['modrewrite']==1) ? "topics/" : "index.php?page=topics";
					echo "<link><![CDATA[$siteurl/$link]]></link>\n";
				echo "</image>\n";
				$usetopic = true;	
			} else {
				$usetopic = false;
			}
			
			if ($page=="blog") {
				if ($cat>0 AND $row = $dblink->get_row("SELECT name FROM memht_blog_categories WHERE id=$cat")) {
					$catname = outCode($row['name']);
					echo "<category><![CDATA[$catname]]></category>\n";
					$usecat = true;
				} else {
					$usecat = false;
				}
			}
			
			if ($page=="download") {
				if ($cat>0 AND $row = $dblink->get_row("SELECT nome FROM memht_download_categorie WHERE id=$cat")) {
					$catname = outCode($row['nome']);
					echo "<category><![CDATA[$catname]]></category>\n";
					$usecat = true;	
				} else {
					$usecat = false;
				}
			}
			
			if ($forum>0 AND $row = $dblink->get_row("SELECT name FROM memht_forum_forums WHERE id=$forum")) {
				$forumname = outCode($row['name']);
				echo "<category><![CDATA[$forumname]]></category>\n";
				$useforum = true;	
			} else {
				$useforum = false;
			}
			
			switch ($page) {
				case "articles":
					if ($usetopic) {
						$query = "SELECT id,nome,descrizione,DATE_FORMAT(data, '%a, %d %b %Y %H:%i:%S GMT') as data FROM memht_articoli WHERE argomento=$topic AND enabled=1 ORDER BY id DESC LIMIT $items";
					} else {
						$query = "SELECT id,nome,descrizione,DATE_FORMAT(data, '%a, %d %b %Y %H:%i:%S GMT') as data FROM memht_articoli WHERE enabled=1 ORDER BY id DESC LIMIT $items";
					}
					$result = $dblink->get_list($query);
					foreach ($result as $row) {
						$id = intval($row['id']);
						$nome = outCode($row['nome']);
						$description = outCode($row['descrizione']);
						$data = outCode($row['data']);
						
						$link = ($siteConfig['modrewrite']==1) ? "articles_{$id}_".mem_urlencode($nome).".html" : "index.php?page=articles&op=readArticle&id=$id&title=".mem_urlencode($nome);
						
						echo "<item>\n";
							echo "<title><![CDATA[$nome]]></title>\n";
							echo "<link><![CDATA[$siteurl/$link]]></link>\n";
							echo "<guid isPermaLink=\"true\"><![CDATA[$siteurl/$link]]></guid>\n";
							echo "<description><![CDATA[$description]]></description>\n";
							echo "<pubDate><![CDATA[$data]]></pubDate>\n";
						echo "</item>\n";
					}
				break;
				
				case "blog":
					if ($usecat) {//Thu, 01 Nov 2007 16:16:40 GMT
						$query = "SELECT *,DATE_FORMAT(date, '%a, %d %b %Y %H:%i:%S GMT') as date FROM memht_blog_posts WHERE category=$cat AND enabled=1 ORDER BY id DESC LIMIT $items";
					} else {
						$query = "SELECT *,DATE_FORMAT(date, '%a, %d %b %Y %H:%i:%S GMT') as date FROM memht_blog_posts WHERE enabled=1 ORDER BY id DESC LIMIT $items";
					}
					$result = $dblink->get_list($query);
					foreach ($result as $row) {
						$id = intval($row['id']);
						$title = outCode($row['title']);
						$home_text = outCode($row['home_text']);
						$date = $row['date'];
						
						$link = ($siteConfig['modrewrite']==1) ? "blog_view_{$id}_".mem_urlencode($title).".html" : "index.php?page=blog&id=$id&title=".mem_urlencode($title);
						
						echo "<item>\n";
							echo "<title><![CDATA[$title]]></title>\n";
							echo "<link><![CDATA[$siteurl/$link]]></link>\n";
							echo "<guid isPermaLink=\"true\"><![CDATA[$siteurl/$link]]></guid>\n";
							echo "<description><![CDATA[$home_text]]></description>\n";
							echo "<pubDate><![CDATA[$date]]></pubDate>\n";
						echo "</item>\n";
					}
				break;
				
				case "download":
					if ($usecat) {
						$query = "SELECT id,nome,descrizione,DATE_FORMAT(data, '%a, %d %b %Y %H:%i:%S GMT') as data FROM memht_download WHERE cat=$cat ORDER BY id DESC LIMIT $items";
					} else {
						$query = "SELECT id,nome,descrizione,DATE_FORMAT(data, '%a, %d %b %Y %H:%i:%S GMT') as data FROM memht_download ORDER BY id DESC LIMIT $items";
					}
					$result = $dblink->get_list($query);
					foreach ($result as $row) {
						$id = intval($row['id']);
						$nome = outCode($row['nome']);
						$description = outCode($row['descrizione']);
						$data = outCode($row['data']);
						
						$link = ($siteConfig['modrewrite']==1) ? "download_file_{$id}_".mem_urlencode($nome).".html" : "index.php?page=download&op=getFile&id=$id&title=".mem_urlencode($nome);
					
						echo "<item>\n";
							echo "<title><![CDATA[$nome]]></title>\n";
							echo "<link><![CDATA[$siteurl/$link]]></link>\n";
							echo "<guid isPermaLink=\"true\"><![CDATA[$siteurl/$link]]></guid>\n";
							echo "<description><![CDATA[$description]]></description>\n";
							echo "<pubDate><![CDATA[$data]]></pubDate>\n";
						echo "</item>\n";
					}
				break;
				
				case "forum":
					if ($useforum) {
						$query = "SELECT id,name,DATE_FORMAT(date, '%a, %d %b %Y %H:%i:%S GMT') as date FROM memht_forum_posts WHERE parent=0 AND forum=$forum ORDER BY id DESC LIMIT $items";
					} else {
						$query = "SELECT id,name,DATE_FORMAT(date, '%a, %d %b %Y %H:%i:%S GMT') as date FROM memht_forum_posts WHERE parent=0 ORDER BY id DESC LIMIT $items";
					}
					$result = $dblink->get_list($query);
					foreach ($result as $row) {
						$id = intval($row['id']);
						$title = outCode($row['name']);
						$date = outCode($row['date']);
						
						$link = ($siteConfig['modrewrite']==1) ? "forum_thread_{$id}_".mem_urlencode($title).".html" : "index.php?page=forum&op=viewThread&id=$id&title=".mem_urlencode($title);
						
						echo "<item>\n";
							echo "<title><![CDATA[$title]]></title>\n";
							echo "<guid isPermaLink=\"true\"><![CDATA[$siteurl/$link]]></guid>\n";
							echo "<link><![CDATA[$siteurl/$link]]></link>\n";
							echo "<pubDate><![CDATA[$date]]></pubDate>\n";
						echo "</item>\n";
					
					}
				break;
				
				case "guide":
					if ($usetopic) {
						$query = "SELECT id,nome,descrizione,DATE_FORMAT(data, '%a, %d %b %Y %H:%i:%S GMT') as data FROM memht_guide WHERE argomento=$topic AND enabled=1 ORDER BY id DESC LIMIT $items";
					} else {
						$query = "SELECT id,nome,descrizione,DATE_FORMAT(data, '%a, %d %b %Y %H:%i:%S GMT') as data FROM memht_guide WHERE enabled=1 ORDER BY id DESC LIMIT $items";
					}
					$result = $dblink->get_list($query);
					foreach ($result as $row) {
						$id = intval($row['id']);
						$nome = outCode($row['nome']);
						$description = outCode($row['descrizione']);
						$data = outCode($row['data']);
						
						$link = ($siteConfig['modrewrite']==1) ? "guide_{$id}_".mem_urlencode($nome).".html" : "index.php?page=guide&op=readGuide&id=$id&title=".mem_urlencode($nome);
						
						echo "<item>\n";
							echo "<title><![CDATA[$nome]]></title>\n";
							echo "<link><![CDATA[$siteurl/$link]]></link>\n";
							echo "<guid isPermaLink=\"true\"><![CDATA[$siteurl/$link]]></guid>\n";
							echo "<description><![CDATA[$description]]></description>\n";
							echo "<pubDate><![CDATA[$data]]></pubDate>\n";
						echo "</item>\n";
					}

				break;
				
				default:
				case "news":
					if ($usetopic) {//Thu, 01 Nov 2007 16:16:40 GMT
						$query = "SELECT id,nome,testo_home,DATE_FORMAT(data, '%a, %d %b %Y %H:%i:%S GMT') as data FROM memht_news WHERE argomento=$topic AND enabled=1 ORDER BY id DESC LIMIT $items";
					} else {
						$query = "SELECT id,nome,testo_home,DATE_FORMAT(data, '%a, %d %b %Y %H:%i:%S GMT') as data FROM memht_news WHERE enabled=1 ORDER BY id DESC LIMIT $items";
					}
					$result = $dblink->get_list($query);
					foreach ($result as $row) {
						$id = intval($row['id']);
						$nome = outCode($row['nome']);
						$home_text = outCode($row['testo_home']);
						$data = outCode($row['data']);
						
						$link = ($siteConfig['modrewrite']==1) ? "news_{$id}_".mem_urlencode($nome).".html" : "index.php?page=news&op=readNews&id=$id&title=".mem_urlencode($nome);
						
						echo "<item>\n";
							echo "<title><![CDATA[$nome]]></title>\n";
							echo "<link><![CDATA[$siteurl/$link]]></link>\n";
							echo "<guid isPermaLink=\"true\"><![CDATA[$siteurl/$link]]></guid>\n";
							echo "<description><![CDATA[$home_text]]></description>\n";
							echo "<pubDate><![CDATA[$data]]></pubDate>\n";
						echo "</item>\n";
					}
				break;
			}
			
		echo "</channel>\n";
	echo "</rss>";
}

//===========================================

function clean($string) {
	return eregi_replace("[<>'\"`%$#]","",$string);
}

//===========================================
//Database: Disconnect
//===========================================
$dblink->disconnect();

?>