diff options
| -rw-r--r-- | phpBB/index.php | 63 | 
1 files changed, 48 insertions, 15 deletions
diff --git a/phpBB/index.php b/phpBB/index.php index df6932f6c0..eb9a657b3f 100644 --- a/phpBB/index.php +++ b/phpBB/index.php @@ -119,7 +119,7 @@ $db->sql_freeresult($result);  $legend = implode($user->lang['COMMA_SEPARATOR'], $legend);  // Generate birthday list if required ... -$birthday_list = array(); +$birthdays = $birthday_list = array();  if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel'))  {  	$time = $user->create_datetime(); @@ -132,33 +132,66 @@ if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets('  		$leap_year_birthdays = " OR u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', 29, 2)) . "%'";  	} -	$sql = 'SELECT u.user_id, u.username, u.user_colour, u.user_birthday -		FROM ' . USERS_TABLE . ' u -		LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid) -		WHERE (b.ban_id IS NULL -			OR b.ban_exclude = 1) +	$sql_ary = array( +		'SELECT' => 'u.user_id, u.username, u.user_colour, u.user_birthday', +		'FROM' => array( +			USERS_TABLE => 'u', +		), +		'LEFT_JOIN' => array( +			array( +				'FROM' => array(BANLIST_TABLE => 'b'), +				'ON' => 'u.user_id = b.ban_userid', +			), +		), +		'WHERE' => "(b.ban_id IS NULL OR b.ban_exclude = 1)  			AND (u.user_birthday LIKE '" . $db->sql_escape(sprintf('%2d-%2d-', $now['mday'], $now['mon'])) . "%' $leap_year_birthdays) -			AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')'; +			AND u.user_type IN (" . USER_NORMAL . ', ' . USER_FOUNDER . ')', +	); + +	/** +	* Event to modify the SQL query to get birthdays data +	* +	* @event core.index_modify_birthdays_sql +	* @var	array	now			The assoc array with the 'now' local timestamp data +	* @var	array	sql_ary		The SQL array to get the birthdays data +	* @var	object	time		The user related Datetime object +	* @since 3.1.7-RC1 +	*/ +	$vars = array('now', 'sql_ary', 'time'); +	extract($phpbb_dispatcher->trigger_event('core.index_modify_birthdays_sql', compact($vars))); + +	$sql = $db->sql_build_query('SELECT', $sql_ary);  	$result = $db->sql_query($sql); +	$rows = $db->sql_fetchrowset($result); +	$db->sql_freeresult($result); -	while ($row = $db->sql_fetchrow($result)) +	foreach ($rows as $row)  	{  		$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( +		$birthdays[] = array(  			'USERNAME'	=> $birthday_username,  			'AGE'		=> $birthday_age, -		)); +		);  		// For 3.0 compatibility -		if ($age = (int) substr($row['user_birthday'], -4)) -		{ -			$birthday_list[] = $birthday_username . (($birthday_year) ? ' (' . $birthday_age . ')' : ''); -		} +		$birthday_list[] = $birthday_username . (($birthday_age) ? " ({$birthday_age})" : '');  	} -	$db->sql_freeresult($result); + +	/** +	* Event to modify the birthdays list +	* +	* @event core.index_modify_birthdays_list +	* @var	array	birthdays		Array with the users birhtdays data +	* @var	array	rows			Array with the birhtdays SQL query result +	* @since 3.1.7-RC1 +	*/ +	$vars = array('birthdays', 'rows'); +	extract($phpbb_dispatcher->trigger_event('core.index_modify_birthdays_list', compact($vars))); + +	$template->assign_block_vars_array('birthdays', $birthdays);  }  // Assign index specific vars  | 
