Seite 1 von 2
Bessere Intergration des Color Groups Mod
Verfasst: 28.10.2003 09:08
von Orange
Hallo, ich hab bei mir den Color Groups Mod installiert, und würde ihn gerne etwas besser integrieren!!!
Zum einen wird in der index.php im Who is online-Teil der neueste registrierte User nie einer Farbe angezeigt, auch wenn er einer Color Group zugewiesen ist. Außerdem hab ich noch den Birthday Mod installiert und würde gerne, dass auf der index.php im Birthday Feld (also "heute haben user1 und user3 geburtstag" und so weiter) die user auch in der richtigen farbe angezeigt werden! Ich hab schon bei nivisec und im birthday mod forum gesucht und nix gefunden! Kann mir jemand helfen??
Verfasst: 28.10.2003 12:08
von Acid
http://www.phpbb.de/viewtopic.php?t=37329
Hier hat jemand den "user of day" Hack diesbezüglich angepasst, vielleicht hilft´s dir. Ähnliche Vorgehensweise muss auch bei "Birthday" und "neuester User" gemacht werden.
Verfasst: 28.10.2003 14:56
von Orange
ich hab ja ausführlich gesucht aber leider überhaupt nix passendes gefunden
wo kann sowas denn stehen?? ich hab die page_header.php und die index.php durchsucht, aber nirgendwo gabs was passendes!
Verfasst: 28.10.2003 15:28
von Acid
"birthday" steht in der page_header.php (müsste ähnlich wie bei obigen Link geändert werden) und "newest user" steht in der index.php ..
Verfasst: 28.10.2003 15:45
von Orange
den thread hab ich ja gelesen, aber so richtig hilft mir das nicht weiter:
das einzige was weiterhelfen könnte ist ein teil des birthday mods in der index.php
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" : "";
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);
}
//End of Birthday Mod
da steht ja zweimal so ne anweisung drin:
Code: Alles auswählen
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 = '';
aber sie ist nicht gleich mit der anweisung vom users of the day mod!!!! kann ich den teil irgendwie "umformulieren"???
zum "newest user" hab ich noch gar nichts gefunden, aber ich denke das liegt daran, dass er nie eine farbe hat (auch nicht im komplett ungemoddeten phpbb)! kann ich da nachträglich eine unterstützung zufügen????
Verfasst: 28.10.2003 15:51
von Acid
Code: Alles auswählen
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 = '';
}
..ersetze das mal testweise mit (das obere Vorkommen)..
Code: Alles auswählen
$birthday_today_list = color_group_colorize_name($birthdayrow['user_id']);
..das zweite Vorkommen mit..
Code: Alles auswählen
$birthday_week_list = color_group_colorize_name($birthdayrow['user_id']);
Verfasst: 28.10.2003 16:01
von Orange
ok hab ich gemacht!! dann ist der name allerdings zweimal in der liste aufgetaucht!!!! einmal in der richtigen farbe (grün), und dann nochmal in der standardfarbe für normale benutzernamen (blau) dafür dann mit dem Alter in Klammern (also "UserXY (24)"). Normalerweise erscheint der User da mit Alter in Klammern in gelb!!
Ich denk aber, dass das schon der richtige Ansatz war, man muss nur irgendwie die zweite ausgabe verhindern und das alter in die erste mit reinbringen!
Verfasst: 18.11.2003 08:18
von Firestarter
diese Zeile müsste noch eingebunden werden :
Code: Alles auswählen
POST_USERS_URL . "=" . $birthdayrow['user_id']) . '"' . $style_color .'>' . $birthdayrow['username'] . ' ('.$user_age.')</a>,';
Problem ist bei der aktuellen Version ( 1.5.2 )vorhanden, hier der neue Auszug des Einbaus in index.php :
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: 18.11.2003 16:20
von Orange
Firestarter hat geschrieben:diese Zeile müsste noch eingebunden werden :
Problem ist bei der aktuellen Version ( 1.5.2 )vorhanden, hier der neue Auszug des Einbaus in index.php :
vorhanden oder nicht mehr vorhanden??
Verfasst: 19.11.2003 08:39
von Firestarter
vorhanden, aktueller Stand :
Doppelauflistung der Namen => einmal in Gruppencolorfarbe und und einmal in Systemfarbe. => Grund die bereits angeführte Zeile.