Bessere Intergration des Color Groups Mod

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
Orange
Mitglied
Beiträge: 76
Registriert: 27.07.2003 14:45
Wohnort: Düsseldorf

Bessere Intergration des Color Groups Mod

Beitrag 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??
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag 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.
Benutzeravatar
Orange
Mitglied
Beiträge: 76
Registriert: 27.07.2003 14:45
Wohnort: Düsseldorf

Beitrag 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!
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag 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 ..
Benutzeravatar
Orange
Mitglied
Beiträge: 76
Registriert: 27.07.2003 14:45
Wohnort: Düsseldorf

Beitrag 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????
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag 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']);
Benutzeravatar
Orange
Mitglied
Beiträge: 76
Registriert: 27.07.2003 14:45
Wohnort: Düsseldorf

Beitrag 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!
Benutzeravatar
Firestarter
Mitglied
Beiträge: 1162
Registriert: 09.06.2003 15:21

Beitrag 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);
}
Benutzeravatar
Orange
Mitglied
Beiträge: 76
Registriert: 27.07.2003 14:45
Wohnort: Düsseldorf

Beitrag 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??
Benutzeravatar
Firestarter
Mitglied
Beiträge: 1162
Registriert: 09.06.2003 15:21

Beitrag von Firestarter »

vorhanden, aktueller Stand :

Doppelauflistung der Namen => einmal in Gruppencolorfarbe und und einmal in Systemfarbe. => Grund die bereits angeführte Zeile.
Antworten

Zurück zu „phpBB 2.0: Mod Support“