diff options
Diffstat (limited to 'phpBB/includes/functions_display.php')
| -rw-r--r-- | phpBB/includes/functions_display.php | 121 | 
1 files changed, 55 insertions, 66 deletions
| diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php index 4881dde6f5..afda10ebee 100644 --- a/phpBB/includes/functions_display.php +++ b/phpBB/includes/functions_display.php @@ -30,10 +30,9 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod  	$forum_rows = $subforums = $forum_ids = $forum_ids_moderator = $forum_moderators = $active_forum_ary = array();  	$parent_id = $visible_forums = 0; -	$sql_from = '';  	// Mark forums read? -	$mark_read = request_var('mark', ''); +	$mark_read = $request->variable('mark', '');  	if ($mark_read == 'all')  	{ @@ -61,9 +60,9 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod  		$redirect = build_url(array('mark', 'hash', 'mark_time'));  		meta_refresh(3, $redirect); -		if (check_link_hash(request_var('hash', ''), 'global')) +		if (check_link_hash($request->variable('hash', ''), 'global'))  		{ -			markread('all', false, false, request_var('mark_time', 0)); +			markread('all', false, false, $request->variable('mark_time', 0));  			if ($request->is_ajax())  			{ @@ -153,6 +152,7 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod  	$forum_tracking_info = $valid_categories = array();  	$branch_root_id = $root_data['forum_id']; +	/* @var $phpbb_content_visibility \phpbb\content_visibility */  	$phpbb_content_visibility = $phpbb_container->get('content.visibility');  	while ($row = $db->sql_fetchrow($result)) @@ -341,10 +341,10 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod  	if ($mark_read == 'forums')  	{  		$redirect = build_url(array('mark', 'hash', 'mark_time')); -		$token = request_var('hash', ''); +		$token = $request->variable('hash', '');  		if (check_link_hash($token, 'global'))  		{ -			markread('topics', $forum_ids, false, request_var('mark_time', 0)); +			markread('topics', $forum_ids, false, $request->variable('mark_time', 0));  			$message = sprintf($user->lang['RETURN_FORUM'], '<a href="' . $redirect . '">', '</a>');  			meta_refresh(3, $redirect); @@ -437,15 +437,14 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod  			*  			* @event core.display_forums_modify_category_template_vars  			* @var	array	cat_row			Template data of the 'category' -			* @var	bool	catless			The flag indicating whether the 'category' has a parent category  			* @var	bool	last_catless	The flag indicating whether the last forum had a parent category  			* @var	array	root_data		Array with the root forum data  			* @var	array	row				The data of the 'category'  			* @since 3.1.0-RC4 +			* @change 3.1.7-RC1 Removed undefined catless variable  			*/  			$vars = array(  				'cat_row', -				'catless',  				'last_catless',  				'root_data',  				'row', @@ -732,7 +731,7 @@ function generate_forum_rules(&$forum_data)  		return;  	} -	global $template, $phpbb_root_path, $phpEx; +	global $template;  	if ($forum_data['forum_rules'])  	{ @@ -750,20 +749,20 @@ function generate_forum_rules(&$forum_data)  * Create forum navigation links for given forum, create parent  * list if currently null, assign basic forum info to template  */ -function generate_forum_nav(&$forum_data) +function generate_forum_nav(&$forum_data_ary)  { -	global $db, $user, $template, $auth, $config; +	global $template, $auth, $config;  	global $phpEx, $phpbb_root_path, $phpbb_dispatcher; -	if (!$auth->acl_get('f_list', $forum_data['forum_id'])) +	if (!$auth->acl_get('f_list', $forum_data_ary['forum_id']))  	{  		return;  	} -	$navlinks = $navlinks_parents = $forum_template_data = array(); +	$navlinks_parents = $forum_template_data = array();  	// Get forum parents -	$forum_parents = get_forum_parents($forum_data); +	$forum_parents = get_forum_parents($forum_data_ary);  	$microdata_attr = 'data-forum-id'; @@ -793,23 +792,24 @@ function generate_forum_nav(&$forum_data)  	}  	$navlinks = array( -		'S_IS_CAT'		=> ($forum_data['forum_type'] == FORUM_CAT) ? true : false, -		'S_IS_LINK'		=> ($forum_data['forum_type'] == FORUM_LINK) ? true : false, -		'S_IS_POST'		=> ($forum_data['forum_type'] == FORUM_POST) ? true : false, -		'FORUM_NAME'	=> $forum_data['forum_name'], -		'FORUM_ID'		=> $forum_data['forum_id'], -		'MICRODATA'		=> $microdata_attr . '="' . $forum_data['forum_id'] . '"', -		'U_VIEW_FORUM'	=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_data['forum_id']), +		'S_IS_CAT'		=> ($forum_data_ary['forum_type'] == FORUM_CAT) ? true : false, +		'S_IS_LINK'		=> ($forum_data_ary['forum_type'] == FORUM_LINK) ? true : false, +		'S_IS_POST'		=> ($forum_data_ary['forum_type'] == FORUM_POST) ? true : false, +		'FORUM_NAME'	=> $forum_data_ary['forum_name'], +		'FORUM_ID'		=> $forum_data_ary['forum_id'], +		'MICRODATA'		=> $microdata_attr . '="' . $forum_data_ary['forum_id'] . '"', +		'U_VIEW_FORUM'	=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $forum_data_ary['forum_id']),  	);  	$forum_template_data = array( -		'FORUM_ID' 		=> $forum_data['forum_id'], -		'FORUM_NAME'	=> $forum_data['forum_name'], -		'FORUM_DESC'	=> generate_text_for_display($forum_data['forum_desc'], $forum_data['forum_desc_uid'], $forum_data['forum_desc_bitfield'], $forum_data['forum_desc_options']), +		'FORUM_ID' 		=> $forum_data_ary['forum_id'], +		'FORUM_NAME'	=> $forum_data_ary['forum_name'], +		'FORUM_DESC'	=> generate_text_for_display($forum_data_ary['forum_desc'], $forum_data_ary['forum_desc_uid'], $forum_data_ary['forum_desc_bitfield'], $forum_data_ary['forum_desc_options']), -		'S_ENABLE_FEEDS_FORUM'	=> ($config['feed_forum'] && $forum_data['forum_type'] == FORUM_POST && !phpbb_optionget(FORUM_OPTION_FEED_EXCLUDE, $forum_data['forum_options'])) ? true : false, +		'S_ENABLE_FEEDS_FORUM'	=> ($config['feed_forum'] && $forum_data_ary['forum_type'] == FORUM_POST && !phpbb_optionget(FORUM_OPTION_FEED_EXCLUDE, $forum_data_ary['forum_options'])) ? true : false,  	); +	$forum_data = $forum_data_ary;  	/**  	* Event to modify the navlinks text  	* @@ -829,6 +829,8 @@ function generate_forum_nav(&$forum_data)  		'navlinks',  	);  	extract($phpbb_dispatcher->trigger_event('core.generate_forum_nav', compact($vars))); +	$forum_data_ary = $forum_data; +	unset($forum_data);  	$template->assign_block_vars_array('navlinks', $navlinks_parents);  	$template->assign_block_vars('navlinks', $navlinks); @@ -884,7 +886,8 @@ function get_forum_parents(&$forum_data)  */  function get_moderators(&$forum_moderators, $forum_id = false)  { -	global $config, $template, $db, $phpbb_root_path, $phpEx, $user, $auth; +	global $db, $phpbb_root_path, $phpEx, $user, $auth; +	global $phpbb_container;  	$forum_id_ary = array(); @@ -920,6 +923,9 @@ function get_moderators(&$forum_moderators, $forum_id = false)  		'WHERE'		=> 'm.display_on_index = 1',  	); +	/** @var \phpbb\group\helper $group_helper */ +	$group_helper = $phpbb_container->get('group_helper'); +  	// We query every forum here because for caching we should not have any parameter.  	$sql = $db->sql_build_query('SELECT', $sql_array);  	$result = $db->sql_query($sql, 3600); @@ -939,7 +945,7 @@ function get_moderators(&$forum_moderators, $forum_id = false)  		}  		else  		{ -			$group_name = (($row['group_type'] == GROUP_SPECIAL) ? $user->lang['G_' . $row['group_name']] : $row['group_name']); +			$group_name = $group_helper->get_name($row['group_name']);  			if ($user->data['user_id'] != ANONYMOUS && !$auth->acl_get('u_viewprofile'))  			{ @@ -996,8 +1002,6 @@ function topic_status(&$topic_row, $replies, $unread_topic, &$folder_img, &$fold  {  	global $user, $config; -	$folder = $folder_new = ''; -  	if ($topic_row['topic_status'] == ITEM_MOVED)  	{  		$topic_type = $user->lang['VIEW_TOPIC_MOVED']; @@ -1143,46 +1147,27 @@ function display_custom_bbcodes()  /**  * Display reasons +* +* @deprecated 3.2.0-dev  */  function display_reasons($reason_id = 0)  { -	global $db, $user, $template; +	global $phpbb_container; -	$sql = 'SELECT * -		FROM ' . REPORTS_REASONS_TABLE . ' -		ORDER BY reason_order ASC'; -	$result = $db->sql_query($sql); - -	while ($row = $db->sql_fetchrow($result)) -	{ -		// If the reason is defined within the language file, we will use the localized version, else just use the database entry... -		if (isset($user->lang['report_reasons']['TITLE'][strtoupper($row['reason_title'])]) && isset($user->lang['report_reasons']['DESCRIPTION'][strtoupper($row['reason_title'])])) -		{ -			$row['reason_description'] = $user->lang['report_reasons']['DESCRIPTION'][strtoupper($row['reason_title'])]; -			$row['reason_title'] = $user->lang['report_reasons']['TITLE'][strtoupper($row['reason_title'])]; -		} - -		$template->assign_block_vars('reason', array( -			'ID'			=> $row['reason_id'], -			'TITLE'			=> $row['reason_title'], -			'DESCRIPTION'	=> $row['reason_description'], -			'S_SELECTED'	=> ($row['reason_id'] == $reason_id) ? true : false) -		); -	} -	$db->sql_freeresult($result); +	$phpbb_container->get('phpbb.report.report_reason_list_provider')->display_reasons($reason_id);  }  /**  * Display user activity (action forum/topic)  */ -function display_user_activity(&$userdata) +function display_user_activity(&$userdata_ary)  {  	global $auth, $template, $db, $user;  	global $phpbb_root_path, $phpEx;  	global $phpbb_container, $phpbb_dispatcher;  	// Do not display user activity for users having more than 5000 posts... -	if ($userdata['user_posts'] > 5000) +	if ($userdata_ary['user_posts'] > 5000)  	{  		return;  	} @@ -1203,12 +1188,13 @@ function display_user_activity(&$userdata)  	$active_f_row = $active_t_row = array();  	if (!empty($forum_ary))  	{ +		/* @var $phpbb_content_visibility \phpbb\content_visibility */  		$phpbb_content_visibility = $phpbb_container->get('content.visibility');  		// Obtain active forum  		$sql = 'SELECT forum_id, COUNT(post_id) AS num_posts  			FROM ' . POSTS_TABLE . ' -			WHERE poster_id = ' . $userdata['user_id'] . ' +			WHERE poster_id = ' . $userdata_ary['user_id'] . '  				AND post_postcount = 1  				AND ' . $phpbb_content_visibility->get_forums_visibility_sql('post', $forum_ary) . '  			GROUP BY forum_id @@ -1230,7 +1216,7 @@ function display_user_activity(&$userdata)  		// Obtain active topic  		$sql = 'SELECT topic_id, COUNT(post_id) AS num_posts  			FROM ' . POSTS_TABLE . ' -			WHERE poster_id = ' . $userdata['user_id'] . ' +			WHERE poster_id = ' . $userdata_ary['user_id'] . '  				AND post_postcount = 1  				AND ' . $phpbb_content_visibility->get_forums_visibility_sql('post', $forum_ary) . '  			GROUP BY topic_id @@ -1250,6 +1236,7 @@ function display_user_activity(&$userdata)  		}  	} +	$userdata = $userdata_ary;  	/**  	* Alter list of forums and topics to display as active  	* @@ -1261,9 +1248,11 @@ function display_user_activity(&$userdata)  	*/  	$vars = array('userdata', 'active_f_row', 'active_t_row');  	extract($phpbb_dispatcher->trigger_event('core.display_user_activity_modify_actives', compact($vars))); +	$userdata_ary = $userdata; +	unset($userdata); -	$userdata['active_t_row'] = $active_t_row; -	$userdata['active_f_row'] = $active_f_row; +	$userdata_ary['active_t_row'] = $active_t_row; +	$userdata_ary['active_f_row'] = $active_f_row;  	$active_f_name = $active_f_id = $active_f_count = $active_f_pct = '';  	if (!empty($active_f_row['num_posts'])) @@ -1271,7 +1260,7 @@ function display_user_activity(&$userdata)  		$active_f_name = $active_f_row['forum_name'];  		$active_f_id = $active_f_row['forum_id'];  		$active_f_count = $active_f_row['num_posts']; -		$active_f_pct = ($userdata['user_posts']) ? ($active_f_count / $userdata['user_posts']) * 100 : 0; +		$active_f_pct = ($userdata_ary['user_posts']) ? ($active_f_count / $userdata_ary['user_posts']) * 100 : 0;  	}  	$active_t_name = $active_t_id = $active_t_count = $active_t_pct = ''; @@ -1280,10 +1269,10 @@ function display_user_activity(&$userdata)  		$active_t_name = $active_t_row['topic_title'];  		$active_t_id = $active_t_row['topic_id'];  		$active_t_count = $active_t_row['num_posts']; -		$active_t_pct = ($userdata['user_posts']) ? ($active_t_count / $userdata['user_posts']) * 100 : 0; +		$active_t_pct = ($userdata_ary['user_posts']) ? ($active_t_count / $userdata_ary['user_posts']) * 100 : 0;  	} -	$l_active_pct = ($userdata['user_id'] != ANONYMOUS && $userdata['user_id'] == $user->data['user_id']) ? $user->lang['POST_PCT_ACTIVE_OWN'] : $user->lang['POST_PCT_ACTIVE']; +	$l_active_pct = ($userdata_ary['user_id'] != ANONYMOUS && $userdata_ary['user_id'] == $user->data['user_id']) ? $user->lang['POST_PCT_ACTIVE_OWN'] : $user->lang['POST_PCT_ACTIVE'];  	$template->assign_vars(array(  		'ACTIVE_FORUM'			=> $active_f_name, @@ -1303,7 +1292,7 @@ function display_user_activity(&$userdata)  */  function watch_topic_forum($mode, &$s_watching, $user_id, $forum_id, $topic_id, $notify_status = 'unset', $start = 0, $item_title = '')  { -	global $template, $db, $user, $phpEx, $start, $phpbb_root_path; +	global $db, $user, $phpEx, $start, $phpbb_root_path;  	global $request;  	$table_sql = ($mode == 'forum') ? FORUMS_WATCH_TABLE : TOPICS_WATCH_TABLE; @@ -1334,8 +1323,8 @@ function watch_topic_forum($mode, &$s_watching, $user_id, $forum_id, $topic_id,  		{  			if (isset($_GET['unwatch']))  			{ -				$uid = request_var('uid', 0); -				$token = request_var('hash', ''); +				$uid = $request->variable('uid', 0); +				$token = $request->variable('hash', '');  				if ($token && check_link_hash($token, "{$mode}_$match_id") || confirm_box(true))  				{ @@ -1408,8 +1397,8 @@ function watch_topic_forum($mode, &$s_watching, $user_id, $forum_id, $topic_id,  		{  			if (isset($_GET['watch']))  			{ -				$uid = request_var('uid', 0); -				$token = request_var('hash', ''); +				$uid = $request->variable('uid', 0); +				$token = $request->variable('hash', '');  				if ($token && check_link_hash($token, "{$mode}_$match_id") || confirm_box(true))  				{ | 
