diff options
Diffstat (limited to 'phpBB/index.php')
| -rw-r--r-- | phpBB/index.php | 126 | 
1 files changed, 93 insertions, 33 deletions
| diff --git a/phpBB/index.php b/phpBB/index.php index 46694a6ec2..a36d74e0e9 100644 --- a/phpBB/index.php +++ b/phpBB/index.php @@ -1,10 +1,13 @@  <?php  /**  * -* @package phpBB3 -* @version $Id$ -* @copyright (c) 2005 phpBB Group -* @license http://opensource.org/licenses/gpl-license.php GNU Public License +* This file is part of the phpBB Forum Software package. +* +* @copyright (c) phpBB Limited <https://www.phpbb.com> +* @license GNU General Public License, version 2 (GPL-2.0) +* +* For full copyright and license information, please see +* the docs/CREDITS.txt file.  *  */ @@ -25,28 +28,64 @@ $user->session_begin();  $auth->acl($user->data);  $user->setup('viewforum'); -display_forums('', $config['load_moderators']); +// Mark notifications read +if (($mark_notification = $request->variable('mark_notification', 0))) +{ +	if ($user->data['user_id'] == ANONYMOUS) +	{ +		if ($request->is_ajax()) +		{ +			trigger_error('LOGIN_REQUIRED'); +		} +		login_box('', $user->lang['LOGIN_REQUIRED']); +	} + +	if (check_link_hash($request->variable('hash', ''), 'mark_notification_read')) +	{ +		$phpbb_notifications = $phpbb_container->get('notification_manager'); + +		$notification = $phpbb_notifications->load_notifications(array( +			'notification_id'	=> $mark_notification, +		)); + +		if (isset($notification['notifications'][$mark_notification])) +		{ +			$notification = $notification['notifications'][$mark_notification]; + +			$notification->mark_read(); -// Set some stats, get posts count from forums data if we... hum... retrieve all forums data -$total_posts	= $config['num_posts']; -$total_topics	= $config['num_topics']; -$total_users	= $config['num_users']; +			if ($request->is_ajax()) +			{ +				$json_response = new \phpbb\json_response(); +				$json_response->send(array( +					'success'	=> true, +				)); +			} -$l_total_user_s = ($total_users == 0) ? 'TOTAL_USERS_ZERO' : 'TOTAL_USERS_OTHER'; -$l_total_post_s = ($total_posts == 0) ? 'TOTAL_POSTS_ZERO' : 'TOTAL_POSTS_OTHER'; -$l_total_topic_s = ($total_topics == 0) ? 'TOTAL_TOPICS_ZERO' : 'TOTAL_TOPICS_OTHER'; +			if (($redirect = $request->variable('redirect', ''))) +			{ +				redirect(append_sid($phpbb_root_path . $redirect)); +			} +			redirect($notification->get_redirect_url()); +		} +	} +} + +display_forums('', $config['load_moderators']); + +$order_legend = ($config['legend_sort_groupname']) ? 'group_name' : 'group_legend';  // Grab group details for legend display  if ($auth->acl_gets('a_group', 'a_groupadd', 'a_groupdel'))  { -	$sql = 'SELECT group_id, group_name, group_colour, group_type +	$sql = 'SELECT group_id, group_name, group_colour, group_type, group_legend  		FROM ' . GROUPS_TABLE . ' -		WHERE group_legend = 1 -		ORDER BY group_name ASC'; +		WHERE group_legend > 0 +		ORDER BY ' . $order_legend . ' ASC';  }  else  { -	$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type +	$sql = 'SELECT g.group_id, g.group_name, g.group_colour, g.group_type, g.group_legend  		FROM ' . GROUPS_TABLE . ' g  		LEFT JOIN ' . USER_GROUP_TABLE . ' ug  			ON ( @@ -54,9 +93,9 @@ else  				AND ug.user_id = ' . $user->data['user_id'] . '  				AND ug.user_pending = 0  			) -		WHERE g.group_legend = 1 +		WHERE g.group_legend > 0  			AND (g.group_type <> ' . GROUP_HIDDEN . ' OR ug.user_id = ' . $user->data['user_id'] . ') -		ORDER BY g.group_name ASC'; +		ORDER BY g.' . $order_legend . ' ASC';  }  $result = $db->sql_query($sql); @@ -77,17 +116,18 @@ while ($row = $db->sql_fetchrow($result))  }  $db->sql_freeresult($result); -$legend = implode(', ', $legend); +$legend = implode($user->lang['COMMA_SEPARATOR'], $legend);  // Generate birthday list if required ... -$birthday_list = ''; +$birthday_list = array();  if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel'))  { -	$now = phpbb_gmgetdate(time() + $user->timezone + $user->dst); +	$time = $user->create_datetime(); +	$now = phpbb_gmgetdate($time->getTimestamp() + $time->getOffset());  	// Display birthdays of 29th february on 28th february in non-leap-years  	$leap_year_birthdays = ''; -	if ($now['mday'] == 28 && $now['mon'] == 2 && !$user->format_date(time(), 'L')) +	if ($now['mday'] == 28 && $now['mon'] == 2 && !$time->format('L'))  	{  		$leap_year_birthdays = " OR u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', 29, 2)) . "%'";  	} @@ -103,11 +143,19 @@ if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets('  	while ($row = $db->sql_fetchrow($result))  	{ -		$birthday_list .= (($birthday_list != '') ? ', ' : '') . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']); +		$birthday_username	= get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']); +		$birthday_year		= (int) substr($row['user_birthday'], -4); +		$birthday_age		= ($birthday_year) ? max(0, $now['year'] - $birthday_year) : ''; + +		$template->assign_block_vars('birthdays', array( +			'USERNAME'	=> $birthday_username, +			'AGE'		=> $birthday_age, +		)); +		// For 3.0 compatibility  		if ($age = (int) substr($row['user_birthday'], -4))  		{ -			$birthday_list .= ' (' . max(0, $now['year'] - $age) . ')'; +			$birthday_list[] = $birthday_username . (($birthday_year) ? ' (' . $birthday_age . ')' : '');  		}  	}  	$db->sql_freeresult($result); @@ -115,13 +163,13 @@ if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets('  // Assign index specific vars  $template->assign_vars(array( -	'TOTAL_POSTS'	=> sprintf($user->lang[$l_total_post_s], $total_posts), -	'TOTAL_TOPICS'	=> sprintf($user->lang[$l_total_topic_s], $total_topics), -	'TOTAL_USERS'	=> sprintf($user->lang[$l_total_user_s], $total_users), -	'NEWEST_USER'	=> sprintf($user->lang['NEWEST_USER'], get_username_string('full', $config['newest_user_id'], $config['newest_username'], $config['newest_user_colour'])), +	'TOTAL_POSTS'	=> $user->lang('TOTAL_POSTS_COUNT', (int) $config['num_posts']), +	'TOTAL_TOPICS'	=> $user->lang('TOTAL_TOPICS', (int) $config['num_topics']), +	'TOTAL_USERS'	=> $user->lang('TOTAL_USERS', (int) $config['num_users']), +	'NEWEST_USER'	=> $user->lang('NEWEST_USER', get_username_string('full', $config['newest_user_id'], $config['newest_username'], $config['newest_user_colour'])),  	'LEGEND'		=> $legend, -	'BIRTHDAY_LIST'	=> $birthday_list, +	'BIRTHDAY_LIST'	=> (empty($birthday_list)) ? '' : implode($user->lang['COMMA_SEPARATOR'], $birthday_list),  	'FORUM_IMG'				=> $user->img('forum_read', 'NO_UNREAD_POSTS'),  	'FORUM_UNREAD_IMG'			=> $user->img('forum_unread', 'UNREAD_POSTS'), @@ -129,19 +177,31 @@ $template->assign_vars(array(  	'FORUM_UNREAD_LOCKED_IMG'	=> $user->img('forum_unread_locked', 'UNREAD_POSTS_LOCKED'),  	'S_LOGIN_ACTION'			=> append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=login'), +	'U_SEND_PASSWORD'           => ($config['email_enable']) ? append_sid("{$phpbb_root_path}ucp.$phpEx", 'mode=sendpassword') : '',  	'S_DISPLAY_BIRTHDAY_LIST'	=> ($config['load_birthdays']) ? true : false, +	'S_INDEX'					=> true, -	'U_MARK_FORUMS'		=> ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}index.$phpEx", 'hash=' . generate_link_hash('global') . '&mark=forums') : '', +	'U_MARK_FORUMS'		=> ($user->data['is_registered'] || $config['load_anon_lastread']) ? append_sid("{$phpbb_root_path}index.$phpEx", 'hash=' . generate_link_hash('global') . '&mark=forums&mark_time=' . time()) : '',  	'U_MCP'				=> ($auth->acl_get('m_') || $auth->acl_getf_global('m_')) ? append_sid("{$phpbb_root_path}mcp.$phpEx", 'i=main&mode=front', true, $user->session_id) : '')  ); +$page_title = $user->lang['INDEX']; + +/** +* You can use this event to modify the page title and load data for the index +* +* @event core.index_modify_page_title +* @var	string	page_title		Title of the index page +* @since 3.1.0-a1 +*/ +$vars = array('page_title'); +extract($phpbb_dispatcher->trigger_event('core.index_modify_page_title', compact($vars))); +  // Output page -page_header($user->lang['INDEX']); +page_header($page_title, true);  $template->set_filenames(array(  	'body' => 'index_body.html')  );  page_footer(); - -?>
\ No newline at end of file | 
