diff options
author | Andreas Fischer <bantu@phpbb.com> | 2009-12-01 12:25:34 +0000 |
---|---|---|
committer | Andreas Fischer <bantu@phpbb.com> | 2009-12-01 12:25:34 +0000 |
commit | 1de328e2fe74dfe23b071d55bbbb167b2abc40af (patch) | |
tree | 24a72b13a4fb20b70748410ee93afb16a13524fd /phpBB/feed.php | |
parent | cf9e42ffd88aa76c559a43f9a68f736a2367b9cf (diff) | |
download | forums-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.php | 45 |
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() |