diff options
Diffstat (limited to 'phpBB/includes/functions_display.php')
| -rw-r--r-- | phpBB/includes/functions_display.php | 141 | 
1 files changed, 67 insertions, 74 deletions
| diff --git a/phpBB/includes/functions_display.php b/phpBB/includes/functions_display.php index 3b2d66c2d3..32bee14eef 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)) @@ -282,6 +282,7 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod  			$subforums[$parent_id][$forum_id]['name'] = $row['forum_name'];  			$subforums[$parent_id][$forum_id]['orig_forum_last_post_time'] = $row['forum_last_post_time'];  			$subforums[$parent_id][$forum_id]['children'] = array(); +			$subforums[$parent_id][$forum_id]['type'] = $row['forum_type'];  			if (isset($subforums[$parent_id][$row['parent_id']]) && !$row['display_on_index'])  			{ @@ -341,10 +342,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 +438,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 +			* @changed 3.1.7-RC1 Removed undefined catless variable  			*/  			$vars = array(  				'cat_row', -				'catless',  				'last_catless',  				'root_data',  				'row', @@ -491,6 +491,7 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod  						'link'		=> append_sid("{$phpbb_root_path}viewforum.$phpEx", 'f=' . $subforum_id),  						'name'		=> $subforum_row['name'],  						'unread'	=> $subforum_unread, +						'type'		=> $subforum_row['type'],  					);  				}  				else @@ -572,6 +573,7 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod  				'U_SUBFORUM'	=> $subforum['link'],  				'SUBFORUM_NAME'	=> $subforum['name'],  				'S_UNREAD'		=> $subforum['unread'], +				'IS_LINK'		=> $subforum['type'] == FORUM_LINK,  			);  		}  		$s_subforums_list = (string) implode($user->lang['COMMA_SEPARATOR'], $s_subforums_list); @@ -727,18 +729,18 @@ function display_forums($root_data = '', $display_moderators = true, $return_mod  */  function generate_forum_rules(&$forum_data)  { -	if (!$forum_data['forum_rules'] && !$forum_data['forum_rules_link']) +	if ($forum_data['forum_rules'])  	{ -		return; +		$forum_data['forum_rules'] = generate_text_for_display($forum_data['forum_rules'], $forum_data['forum_rules_uid'], $forum_data['forum_rules_bitfield'], $forum_data['forum_rules_options']);  	} -	global $template, $phpbb_root_path, $phpEx; - -	if ($forum_data['forum_rules']) +	if (!$forum_data['forum_rules'] && !$forum_data['forum_rules_link'])  	{ -		$forum_data['forum_rules'] = generate_text_for_display($forum_data['forum_rules'], $forum_data['forum_rules_uid'], $forum_data['forum_rules_bitfield'], $forum_data['forum_rules_options']); +		return;  	} +	global $template; +  	$template->assign_vars(array(  		'S_FORUM_RULES'	=> true,  		'U_FORUM_RULES'	=> $forum_data['forum_rules_link'], @@ -750,20 +752,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 +795,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 +832,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 +889,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 +926,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 +948,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 +1005,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']; @@ -1072,7 +1079,7 @@ function display_custom_bbcodes()  	global $db, $template, $user, $phpbb_dispatcher;  	// Start counting from 22 for the bbcode ids (every bbcode takes two ids - opening/closing) -	$num_predefined_bbcodes = 22; +	$num_predefined_bbcodes = NUM_PREDEFINED_BBCODES;  	$sql_ary = array(  		'SELECT'	=> 'b.bbcode_id, b.bbcode_tag, b.bbcode_helpline', @@ -1143,46 +1150,28 @@ function display_custom_bbcodes()  /**  * Display reasons +* +* @deprecated 3.2.0-dev  */  function display_reasons($reason_id = 0)  { -	global $db, $user, $template; - -	$sql = 'SELECT * -		FROM ' . REPORTS_REASONS_TABLE . ' -		ORDER BY reason_order ASC'; -	$result = $db->sql_query($sql); +	global $phpbb_container; -	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 $auth, $template, $db, $user, $config;  	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) +	// Do not display user activity for users having too many posts... +	$limit = $config['load_user_activity_limit']; +	if ($userdata_ary['user_posts'] > $limit && $limit != 0)  	{  		return;  	} @@ -1203,12 +1192,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 +1220,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 +1240,7 @@ function display_user_activity(&$userdata)  		}  	} +	$userdata = $userdata_ary;  	/**  	* Alter list of forums and topics to display as active  	* @@ -1261,9 +1252,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 +1264,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 +1273,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 +1296,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 +1327,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 +1401,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))  				{ | 
