mirror of
https://github.com/phpbb/phpbb.git
synced 2025-06-28 06:08:52 +00:00
Merge pull request #3850 from rxu/ticket/14117
[ticket/14117] Add core events to index.php to allow modifying birthdays list
This commit is contained in:
commit
224efba459
1 changed files with 49 additions and 16 deletions
|
@ -119,7 +119,7 @@ $db->sql_freeresult($result);
|
||||||
$legend = implode($user->lang['COMMA_SEPARATOR'], $legend);
|
$legend = implode($user->lang['COMMA_SEPARATOR'], $legend);
|
||||||
|
|
||||||
// Generate birthday list if required ...
|
// 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'))
|
if ($config['load_birthdays'] && $config['allow_birthdays'] && $auth->acl_gets('u_viewprofile', 'a_user', 'a_useradd', 'a_userdel'))
|
||||||
{
|
{
|
||||||
$time = $user->create_datetime();
|
$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)) . "%'";
|
$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
|
$sql_ary = array(
|
||||||
FROM ' . USERS_TABLE . ' u
|
'SELECT' => 'u.user_id, u.username, u.user_colour, u.user_birthday',
|
||||||
LEFT JOIN ' . BANLIST_TABLE . " b ON (u.user_id = b.ban_userid)
|
'FROM' => array(
|
||||||
WHERE (b.ban_id IS NULL
|
USERS_TABLE => 'u',
|
||||||
OR b.ban_exclude = 1)
|
),
|
||||||
|
'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_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 . ')',
|
||||||
$result = $db->sql_query($sql);
|
);
|
||||||
|
|
||||||
while ($row = $db->sql_fetchrow($result))
|
/**
|
||||||
|
* 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);
|
||||||
|
|
||||||
|
foreach ($rows as $row)
|
||||||
{
|
{
|
||||||
$birthday_username = 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_year = (int) substr($row['user_birthday'], -4);
|
||||||
$birthday_age = ($birthday_year) ? max(0, $now['year'] - $birthday_year) : '';
|
$birthday_age = ($birthday_year) ? max(0, $now['year'] - $birthday_year) : '';
|
||||||
|
|
||||||
$template->assign_block_vars('birthdays', array(
|
$birthdays[] = array(
|
||||||
'USERNAME' => $birthday_username,
|
'USERNAME' => $birthday_username,
|
||||||
'AGE' => $birthday_age,
|
'AGE' => $birthday_age,
|
||||||
));
|
);
|
||||||
|
|
||||||
// For 3.0 compatibility
|
// For 3.0 compatibility
|
||||||
if ($age = (int) substr($row['user_birthday'], -4))
|
$birthday_list[] = $birthday_username . (($birthday_age) ? " ({$birthday_age})" : '');
|
||||||
{
|
|
||||||
$birthday_list[] = $birthday_username . (($birthday_year) ? ' (' . $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
|
// Assign index specific vars
|
||||||
|
|
Loading…
Add table
Reference in a new issue