aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/feed.php
diff options
context:
space:
mode:
authorAndreas Fischer <bantu@phpbb.com>2009-12-01 12:25:34 +0000
committerAndreas Fischer <bantu@phpbb.com>2009-12-01 12:25:34 +0000
commit1de328e2fe74dfe23b071d55bbbb167b2abc40af (patch)
tree24a72b13a4fb20b70748410ee93afb16a13524fd /phpBB/feed.php
parentcf9e42ffd88aa76c559a43f9a68f736a2367b9cf (diff)
downloadforums-1de328e2fe74dfe23b071d55bbbb167b2abc40af.tar
forums-1de328e2fe74dfe23b071d55bbbb167b2abc40af.tar.gz
forums-1de328e2fe74dfe23b071d55bbbb167b2abc40af.tar.bz2
forums-1de328e2fe74dfe23b071d55bbbb167b2abc40af.tar.xz
forums-1de328e2fe74dfe23b071d55bbbb167b2abc40af.zip
Fix Bug #54295 - Cleanly handle forum/topic not found in ATOM Feeds. Also related: Bug #54735
git-svn-id: file:///svn/phpbb/branches/phpBB-3_0_0@10296 89ea8834-ac86-4346-8a33-228a782c2dd0
Diffstat (limited to 'phpBB/feed.php')
-rw-r--r--phpBB/feed.php45
1 files changed, 26 insertions, 19 deletions
diff --git a/phpBB/feed.php b/phpBB/feed.php
index 5edaf2281f..b7d681c092 100644
--- a/phpBB/feed.php
+++ b/phpBB/feed.php
@@ -66,7 +66,10 @@ if ($feed === false)
}
// Open Feed
-$feed->open();
+if ($feed->open() === false)
+{
+ trigger_error('NO_FEED');
+}
// Iterate through items
while ($row = $feed->get_item())
@@ -479,34 +482,42 @@ class phpbb_feed
{
if (!$this->forum_id && !$this->topic_id)
{
- return;
+ return false;
}
else if ($this->forum_id && !$this->topic_id)
{
- global $db, $user, $global_vars;
+ global $db, $user;
$sql = 'SELECT forum_name
FROM ' . FORUMS_TABLE . '
WHERE forum_id = ' . $this->forum_id;
$result = $db->sql_query($sql);
-
- $global_vars['FEED_MODE'] = $user->lang['FORUM'] . ': ' . $db->sql_fetchfield('forum_name');
-
+ $row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
+
+ if (empty($row))
+ {
+ return false;
+ }
}
else if ($this->topic_id)
{
- global $db, $user, $global_vars;
+ global $db, $user;
$sql = 'SELECT topic_title
FROM ' . TOPICS_TABLE . '
WHERE topic_id = ' . $this->topic_id;
$result = $db->sql_query($sql);
-
- $global_vars['FEED_MODE'] = $user->lang['TOPIC'] . ': ' . $db->sql_fetchfield('topic_title');
-
+ $row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
+
+ if (empty($row))
+ {
+ return false;
+ }
}
+
+ return true;
}
function close()
@@ -517,6 +528,8 @@ class phpbb_feed
$db->sql_freeresult($this->result);
}
+
+ return true;
}
/**
@@ -840,9 +853,7 @@ class phpbb_feed_forums extends phpbb_feed
function open()
{
- global $user, $global_vars;
-
- $global_vars['FEED_MODE'] = $user->lang['FORUMS'];
+ return true;
}
function get_sql()
@@ -903,9 +914,7 @@ class phpbb_feed_news extends phpbb_feed
function open()
{
- global $user, $global_vars;
-
- $global_vars['FEED_MODE'] = $user->lang['FEED_NEWS'];
+ return true;
}
function get_sql()
@@ -997,9 +1006,7 @@ class phpbb_feed_topics extends phpbb_feed
function open()
{
- global $user, $global_vars;
-
- $global_vars['FEED_MODE'] = $user->lang['TOPICS'];
+ return true;
}
function get_sql()