Делаем аватарки юзерам именинникам
В файле functions_general.php найти:
PHP:
// THIS FUNCTION RETURNS AN ARRAY CONTAINING THE USERS FRIENDS BIRTHDAYS INFO
// INPUT:
// OUTPUT:
// бла, бла, бла - куча какого-то кода
// END friends_birthdays() FUNCTION
заменить на:
PHP:
// THIS FUNCTION RETURNS AN ARRAY CONTAINING THE USERS FRIENDS BIRTHDAYS INFO
// INPUT:
// OUTPUT:
function friends_birthdays()
{
global $setting, $database, $user;
$birthdays = NULL;
// CACHING
$cache_object = SECache::getInstance('serial');
if( is_object($cache_object) )
{
$birthdays = $cache_object->get('friends_birthdays_user_'.$user->user_info['user_id']);
}
// RETRIEVAL
//if( !is_array($birthdays) || empty($birthdays) )
if( !is_array($birthdays) )
{
$birthdays = array();
$sql = "SELECT profilefield_id, t2.profilecat_id FROM se_profilefields LEFT JOIN se_profilecats AS t1 ON se_profilefields.profilefield_profilecat_id=t1.profilecat_id LEFT JOIN se_profilecats AS t2 ON t1.profilecat_dependency=t2.profilecat_id WHERE profilefield_special='1'";
$resource = $database->database_query($sql);
if( $database->database_num_rows($resource) > 0 )
{
// CONSTRUCT QUERY
$birthdays_upcoming_query = "
SELECT
se_users.user_id,
se_users.user_username,
se_users.user_fname,
se_users.user_lname,
se_users.user_photo,
CASE
";
while( $birthday_field = $database->database_fetch_assoc($resource) )
{
$birthdays_upcoming_query .= " WHEN se_users.user_profilecat_id='{$birthday_field['profilecat_id']}' THEN DATE_FORMAT(CONCAT(YEAR(CURDATE()), \"-\", MONTH(se_profilevalues.`profilevalue_{$birthday_field['profilefield_id']}`), \"-\", DAY(se_profilevalues.`profilevalue_{$birthday_field['profilefield_id']}`)), '%Y-%m-%d')";
$birthdays_upcoming_where[] = "(se_users.user_profilecat_id='{$birthday_field['profilecat_id']}' AND DAY(se_profilevalues.`profilevalue_{$birthday_field['profilefield_id']}`)<>'0' AND MONTH(se_profilevalues.`profilevalue_{$birthday_field['profilefield_id']}`)<>'0' AND CURDATE() <= DATE_FORMAT(CONCAT(YEAR(CURDATE()), \"-\", MONTH(se_profilevalues.`profilevalue_{$birthday_field['profilefield_id']}`), \"-\", DAY(se_profilevalues.`profilevalue_{$birthday_field['profilefield_id']}`)), '%Y-%m-%d') AND DATE_ADD(CURDATE(), INTERVAL 7 DAY) >= DATE_FORMAT(CONCAT(YEAR(CURDATE()), \"-\", MONTH(se_profilevalues.`profilevalue_{$birthday_field['profilefield_id']}`), \"-\", DAY(se_profilevalues.`profilevalue_{$birthday_field['profilefield_id']}`)), '%Y-%m-%d'))";
}
$birthdays_upcoming_query .= " ELSE '0000-00-00' END AS birthday FROM se_friends LEFT JOIN se_users ON se_friends.friend_user_id2=se_users.user_id LEFT JOIN se_profilevalues ON se_users.user_id=se_profilevalues.profilevalue_user_id WHERE se_friends.friend_user_id1='{$user->user_info['user_id']}' AND (".implode(" OR ", $birthdays_upcoming_where).") ORDER BY birthday";
$resource = $database->database_query($birthdays_upcoming_query);
while( $birthday_info = $database->database_fetch_assoc($resource) )
{
$birthday_user = new se_user();
$birthday_user->user_info['user_id'] = $birthday_info['user_id'];
$birthday_user->user_info['user_username'] = $birthday_info['user_username'];
$birthday_user->user_info['user_fname'] = $birthday_info['user_fname'];
$birthday_user->user_info['user_lname'] = $birthday_info['user_lname'];
$birthday_user->user_info['user_photo'] = $birthday_info['user_photo'];
$birthday_user->user_displayname();
// SET BIRTHDAY
$birthday_date = mktime(0, 0, 0, substr($birthday_info['birthday'], 5, 2), substr($birthday_info['birthday'], 8, 2), 1990);
$birthdays[] = array(
'birthday_user_id' => $birthday_user->user_info['user_id'],
'birthday_user_photo' => $birthday_user->user_info['user_photo'],
'birthday_user_username' => $birthday_user->user_info['user_username'],
'birthday_user_displayname' => $birthday_user->user_displayname,
'birthday_date' => $birthday_date,
'birthday_user' => &$birthday_user
);
unset($birthday_user);
}
}
// CACHE
if( is_object($cache_object) )
{
$cache_object->store($birthdays, 'friends_birthdays_user_'.$user->user_info['user_id']);
}
}
return $birthdays;
}
// END friends_birthdays() FUNCTION
В файле user_home.tpl найти блок:
PHP:
{* SHOW UPCOMING BIRTHDAYS *}
// тут идёт сам блок
заменить на:
PHP:
{* SHOW UPCOMING BIRTHDAYS *}
<div class='header'>{lang_print id=1176}</div>
<div class='network_content'>
<table cellpadding='0' cellspacing='0' align='center' width='100%'>
<tr>
{section name=birthday_loop loop=$birthdays max=6}
<td valign="bottom" style="width: 50%;padding-top:0px" class="portal_member">
{assign var=cont value="`$cont+1`"}
<a href='{$url->url_create("profile", $birthdays[birthday_loop].birthday_user_username)}'>{$birthdays[birthday_loop].birthday_user_displayname}</a><br />
<a href='{$url->url_create("profile", $birthdays[birthday_loop].birthday_user_username)}'><img width='60' height='60' src='{$birthdays[birthday_loop].birthday_user->user_photo('./images/nophoto.gif', TRUE)}' border='0' class='photo' alt="{$birthdays[birthday_loop].birthday_user_username}"></a><br />
{$datetime->cdate("j F", $datetime->timezone($birthdays[birthday_loop].birthday_date, $global_timezone))}
{if $cont == 2}</tr>{/if}
{if $cont == 4}</tr>{/if}
{if $cont == 6}</tr>{/if}
</td>
{sectionelse}
<td>
{lang_print id=1180}
</td>
{/section}
</tr>
</table>
</div>
<div class='spacer10'></div>
Результат: