Seite 1 von 3
birthday mod
Verfasst: 01.11.2003 20:27
von Wila
warum wird der Anonymous mit der ID -1 aus der phpbb_users im birthday mod mit angezeigt? (Heute haben Geburts.....)
Wenn ich ihn aus der Datenbank entferne, werden bei mir im Board keine Gäste angezeigt.
Verfasst: 01.11.2003 20:59
von Henne
Was für ein Geburtstag ist denn bei dem in der DB eingetragen?
Verfasst: 01.11.2003 21:02
von Leuchte
bei dem anonymous steht als jahr 33 dahinter. wenn man zurückrechnet kommt man auf den 1.11 1970 ... der timestamp beginnt am 1.1.1970. gibts da einen zusammenhang? eigentlich nicht, beim birthday mod schon. ich habs letztens auch bei mir auf dem board entdeckt, das der BD mod november und januar zusammenhaut.
den beitrag zu diesem problem gibts
hier. die lösung ist einfach:
index.php suchen
davor steht bereits ein code des birthday mod
Code: Alles auswählen
//
// Birthday Mod, Show users with birthday
....
....
....
if (isset($result))
{
$db->sql_freeresult($result);
}
der damit ersetzt werden muss
Code: Alles auswählen
//
// Birthday Mod, Show users with birthday
$time_now = time();
$date_now = create_date('md', $time_now, $board_config['board_timezone']);
$date_forward = create_date('md', $time_now+($board_config['birthday_check_day']*86400), $board_config['board_timezone']);
$sql = ($board_config['birthday_check_day']) ? "SELECT user_id, username, user_birthday, user_level FROM ".USERS_TABLE." WHERE user_birthday<>999999 AND
(user_birthday<0 OR DATE_FORMAT(FROM_DAYS(user_birthday),'%m%d') BETWEEN ".(($date_now<$date_forward) ? "'($date_now+0)' AND '$date_forward'" : "'($date_now+0)' AND '1231' OR DATE_FORMAT(FROM_DAYS(user_birthday),'%m%d') BETWEEN '0101' AND '$date_forward'") .") ORDER BY username" : "SELECT 1";
if(!$result = $db->sql_query($sql))
{
message_die(GENERAL_ERROR, "Could not fetch birthday for users.", "", __LINE__, __FILE__, $sql);
} else
{
$birthdayrows = array();
$birthdayrows = $db->sql_fetchrowset($result);
}
if (!empty($birthdayrows))
{
$this_year = create_date('Y', $time_now, $board_config['board_timezone']);
$date_today = $this_year.$date_now;
$date_forward = $this_year.$date_forward;
while (list($user_number, $birthdayrow) = each($birthdayrows))
{
$user_birthday2 = $this_year.($user_birthday = realdate("md",$birthdayrow['user_birthday'] ));
// give user a year more, if he alread have had birthday
if ( $user_birthday2 < $date_today ) $user_birthday2 += 10000;
if ( $user_birthday2 == $date_today )
{
//user have birthday today
$user_age = $this_year - realdate ( 'Y',$birthdayrow['user_birthday'] );
switch ($birthdayrow['user_level'])
{
case ADMIN :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"'; break;
case MOD :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"'; break;
default: $style_color = '';
}
$birthday_today_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
} else if ( $user_birthday2 > $date_today && $user_birthday2 <= $date_forward )
{
// user are having birthday within the next days
$user_age = ( $this_year.$user_birthday < $date_today ) ? $this_year - realdate ('Y',$birthdayrow['user_birthday'])+1 : $this_year- realdate ('Y',$birthdayrow['user_birthday']);
switch ($birthdayrow['user_level'])
{
case ADMIN :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';break;
case MOD :
$birthdayrow['username'] = '<b>' . $birthdayrow['username'] . '</b>';
$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';break;
default: $style_color = '';
}
$birthday_week_list .= ' <a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
}
}
if ($birthday_today_list) $birthday_today_list[ strlen( $birthday_today_list)-1] = ' ';
if ($birthday_week_list) $birthday_week_list[ strlen( $birthday_week_list)-1] = ' ';
}
if (isset($result))
{
$db->sql_freeresult($result);
}
Verfasst: 01.11.2003 21:15
von Henne
Sollte beim Anonymous nicht diese 9er Folge eingetragen sein?
Verfasst: 01.11.2003 21:27
von Leuchte
eigentlich schon... 5x9
vielleicht auch ein anderer fehler (vielleicht beim einbau)
Verfasst: 01.11.2003 21:30
von Wila
Also ich habe das obige Script mal eingebaut, und der Anonymous ist jetzt verschwunden und die Gäaste werden auch noch angezeigt. Mal abwarten was in 6 Tagen ist da hat der nächste User Geburtstag, er wird jetzt schon als nächster Geburtstag in den nächsten sieben tagen angezeigt.
Verfasst: 01.11.2003 23:46
von Leuchte
was sollte dann sein?
hast du vielleicht auch fehler beim einbau gemacht? wie Henne schon schrieb, sollte der Anonymous eigentlich gar kein Geburtstag haben
Verfasst: 01.11.2003 23:59
von Acid
Zwischenfrage: Den Anonymous-Eintrag hast du wieder in die "users" Tabelle eingefügt oder ?
Verfasst: 02.11.2003 10:11
von Wila
ja, hatte ihn erst enfernt und da ich dann die gäste nicht sehen konnte die online sind habe ich ihn wieder eingetragen und das abgeänderte script in die index.php eingefügt.
Verfasst: 02.11.2003 16:00
von Wila
Henne hat geschrieben:Sollte beim Anonymous nicht diese 9er Folge eingetragen sein?
Also das eine Problem ist gelöst, nur werden jetzt die Besucher (Gäste) nicht mehr richtig gezählt.
Und was genau ist mit der 9 Serie gemeint? Ich habe bei der phpbb_users (Anonymous) unter user_birthday und user_next_birthday_greeting 5x die 9 eingetragen.