phpBB

Code Changes

File: phpbb/feed/forum.php

  Unmodified   Added   Modified   Removed
Line 12Line 12
*/

namespace phpbb\feed;

*/

namespace phpbb\feed;

 

use phpbb\feed\exception\no_feed_exception;
use phpbb\feed\exception\no_forum_exception;
use phpbb\feed\exception\unauthorized_forum_exception;


/**
* Forum feed


/**
* Forum feed

Line 19Line 23
* This will give you the last {$this->num_items} posts made
* within a specific forum.
*/

* This will give you the last {$this->num_items} posts made
* within a specific forum.
*/

class forum extends \phpbb\feed\post_base

class forum extends post_base

{

{

	var $forum_id		= 0;
var $forum_data = array();

	protected $forum_id		= 0;
protected $forum_data = array();


/**
* Set the Forum ID


/**
* Set the Forum ID

Line 37Line 41
		return $this;
}


		return $this;
}


	function open()




	/**
* {@inheritdoc}
*/
public function open()

	{
// Check if forum exists
$sql = 'SELECT forum_id, forum_name, forum_password, forum_type, forum_options

	{
// Check if forum exists
$sql = 'SELECT forum_id, forum_name, forum_password, forum_type, forum_options

Line 49Line 56

if (empty($this->forum_data))
{


if (empty($this->forum_data))
{

			trigger_error('NO_FORUM');

			throw new no_forum_exception($this->forum_id);

		}

// Forum needs to be postable
if ($this->forum_data['forum_type'] != FORUM_POST)
{

		}

// Forum needs to be postable
if ($this->forum_data['forum_type'] != FORUM_POST)
{

			trigger_error('NO_FEED');

			throw new no_feed_exception();

		}

// Make sure forum is not excluded from feed
if (phpbb_optionget(FORUM_OPTION_FEED_EXCLUDE, $this->forum_data['forum_options']))
{

		}

// Make sure forum is not excluded from feed
if (phpbb_optionget(FORUM_OPTION_FEED_EXCLUDE, $this->forum_data['forum_options']))
{

			trigger_error('NO_FEED');

			throw new no_feed_exception();

		}

// Make sure we can read this forum
if (!$this->auth->acl_get('f_read', $this->forum_id))
{

		}

// Make sure we can read this forum
if (!$this->auth->acl_get('f_read', $this->forum_id))
{

			trigger_error('SORRY_AUTH_READ');









			if ($this->user->data['user_id'] != ANONYMOUS)
{
send_status_line(403, 'Forbidden');
}
else
{
send_status_line(401, 'Unauthorized');
}
throw new unauthorized_forum_exception($this->forum_id);

		}

// Make sure forum is not passworded or user is authed

		}

// Make sure forum is not passworded or user is authed

Line 77Line 92

if (isset($forum_ids_passworded[$this->forum_id]))
{


if (isset($forum_ids_passworded[$this->forum_id]))
{

				trigger_error('SORRY_AUTH_READ');









				if ($this->user->data['user_id'] != ANONYMOUS)
{
send_status_line(403, 'Forbidden');
}
else
{
send_status_line(401, 'Unauthorized');
}
throw new unauthorized_forum_exception($this->forum_id);

			}

unset($forum_ids_passworded);

			}

unset($forum_ids_passworded);

Line 86Line 109
		parent::open();
}


		parent::open();
}


	function get_sql()




	/**
* {@inheritdoc}
*/
protected function get_sql()

	{
// Determine topics with recent activity
$sql = 'SELECT topic_id, topic_last_post_time

	{
// Determine topics with recent activity
$sql = 'SELECT topic_id, topic_last_post_time

Line 111Line 137
		{
return false;
}

		{
return false;
}

 

parent::fetch_attachments(array(), $topic_ids);


$this->sql = array(
'SELECT' => 'p.post_id, p.topic_id, p.post_time, p.post_edit_time, p.post_visibility, p.post_subject, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url, p.post_attachment, ' .


$this->sql = array(
'SELECT' => 'p.post_id, p.topic_id, p.post_time, p.post_edit_time, p.post_visibility, p.post_subject, p.post_text, p.bbcode_bitfield, p.bbcode_uid, p.enable_bbcode, p.enable_smilies, p.enable_magic_url, p.post_attachment, ' .

Line 129Line 157
		return true;
}


		return true;
}


	function adjust_item(&$item_row, &$row)




	/**
* {@inheritdoc}
*/
public function adjust_item(&$item_row, &$row)

	{
parent::adjust_item($item_row, $row);


	{
parent::adjust_item($item_row, $row);


Line 137Line 168
		$item_row['forum_id'] = $this->forum_id;
}


		$item_row['forum_id'] = $this->forum_id;
}


	function get_item()




	/**
* {@inheritdoc}
*/
public function get_item()

	{
return ($row = parent::get_item()) ? array_merge($this->forum_data, $row) : $row;
}

	{
return ($row = parent::get_item()) ? array_merge($this->forum_data, $row) : $row;
}