Я нашел решение! Модифицировал встроенный таск обновления кэша дней рождения ('birthdays') 1. В файле sources/action_admin/calendars.php найти комментарий: //-----------------------------------------
// Grab birthdays
//----------------------------------------- и закомментировать /* */ блок из пары десятков строк, вплоть до комментария: //--------------------------------------------
// Update calendar array
//-------------------------------------------- Вместо закомментированных строк вставить: $query = "SELECT m.id, m.members_display_name, m.mgroup, m.bday_year, m.bday_month, m.bday_day,
YEAR(NOW())-m.bday_year AS age, g.prefix, g.suffix
FROM ibf_members m
LEFT JOIN ibf_groups g ON (m.mgroup=g.g_id)
WHERE 1=2 ";
for ($i=1;$i<$this->ipsclass->vars['calendar_limit'];$i++)
$query .= " OR DATE_FORMAT(DATE_ADD(CURDATE(),INTERVAL {$i} DAY), '%m%d')=CONCAT(LPAD(bday_month,2,'0'),LPAD(bday_day,2,'0'))";
$query .= " ORDER BY CONCAT(LPAD(bday_month,2,'0'),LPAD(bday_day,2,'0'))";
$row = $this->ipsclass->DB->query( $query );
while ( $r = $this->ipsclass->DB->fetch_row() )
{
$birthdays[ $r['id'] ] = $r;
} 2. В файле sources/lib/func_boardstats.php найти комментарий: //-----------------------------------------
// Print...
//----------------------------------------- и сразу после него добавить три строчки: if ( is_array($this->ipsclass->cache['birthdays']) AND count( $this->ipsclass->cache['birthdays'] ) )
foreach( $this->ipsclass->cache['birthdays'] as $u )
$show_events[] = "<a href='{$this->ipsclass->base_url}showuser={$u['id']}' title='{$u['age']}'><b>{$u['prefix']}{$u['members_display_name']}{$u['suffix']}</b></a> <i>({$u['bday_day']}.{$u['bday_month']})</i>"; 3. После этого нужно зайти в админку (Настройки -> Список задач) и принудительно запустить задачу "Кеширование дней рождения и событий". Либо ждать 12 часов до автоматического запуска задачи ============= Принимаются замечание о багах и фичах