Seite 1 von 1

Problem bei meinem 1. Mod...

Verfasst: 04.12.2005 10:35
von Gast210225
Hallo,
ich bastel im Moment einen Mod, der Gruppen in verschiedenen Farben darstellt, nur nun komme ich nicht mehr weiter... Ich habe in der Tabelle "phpbb_groups" eine neue Spalte "group_color", inder die Farbe der Gruppe gespeichert wird (in RGB Codes). Um die User bei "Wer ist online" farblich darzustellen habe ich in der includes/page_header.php das

Code: Alles auswählen

$style_color = '';
if ( $row['user_level'] == ADMIN )
{
	$row['username'] = '<b>' . $row['username'] . '</b>';
	$style_color = 'style="color:#' . $theme['fontcolor3'] . '"';
}
else if ( $row['user_level'] == MOD )
{
	$row['username'] = '<b>' . $row['username'] . '</b>';
	$style_color = 'style="color:#' . $theme['fontcolor2'] . '"';
}
gelöscht und darunter das hier eingefügt

Code: Alles auswählen

$sql = "SELECT group_id FROM " . USER_GROUP_TABLE . "
	WHERE user_id = '" . $userdata['user_id'] . "'
	AND user_pending = 0
	AND group_id != 1
	AND group_id != 2
	AND group_id != 3";

if ( !($result = $db->sql_query($sql)) )
{
	message_die(CRITICAL_ERROR, 'Error');
}
				
while ( $row2 = $db->sql_fetchrow($result) )
{
	$sql = "SELECT group_color FROM " . GROUPS_TABLE . "
		WHERE  group_id = '" . $row2['group_id'] . "'";

	if ( !($result = $db->sql_query($sql)) )
	{
		message_die(CRITICAL_ERROR, 'Error');
	}

	while ( $row3 = $db->sql_fetchrow($result) )
	{
		$row['username'] = '<strong>' . $row['username'] . '</strong>';
		$style_color = ' style="color:#' . $row3['group_color'] . '"';
	}
}
Der Username wird nun Fett dargestellt, aber irgendwie nicht bunt... Wisst ihr, was ich falsch mache?


Johannes

Verfasst: 04.12.2005 22:34
von rabbit
ich möchte deinen enthusiasmus nicht bremsen, aber dazu gibt es schon drei MODs, ein eher 'ressourcen killender' (color groups von niels), einer, der nicht mehr weiter entwickelt wird, da der autor alle seine seiten schließt(advanced username color von austin), und einen, der grade voll in der entwicklung steckt, sehr mächtig ist und nahezu keine ressourcen verbraucht, wenn's um zusätzliche queries geht (advanced group color management von phantomk).

Verfasst: 04.12.2005 22:41
von fanrpg
Was ich mich gerade frage warum machst du 2. ver Abfragen?
Das geht wesentlich besser:

Code: Alles auswählen

$sql = "SELECT group_id, group_color FROM " . USER_GROUP_TABLE . " 
   WHERE user_id = '" . $userdata['user_id'] . "' 
   AND user_pending = 0 
   AND group_id != 1 
   AND group_id != 2 
   AND group_id != 3"; 

if ( !($result = $db->sql_query($sql)) ) 
{ 
   message_die(CRITICAL_ERROR, 'Could not query Group Color'); 
} 
             
while ( $row2 = $db->sql_fetchrow($result) ) 
{ 
      $row['username'] = '<strong>' . $row['username'] . '</strong>'; 
      $style_color = ' style="color:#' . $row2['group_color'] . '"'; 
}
Warum 2 Abfragen wenn es auch eine tut?
Und ich habe das selbe bei meinem Board gemacht, zwar etwas anders (über die User-Tabelle, und ohne zusätzliche Query), aber nun gut über Gruppen dürfte das so auch funktionieren.

Verfasst: 05.12.2005 15:04
von Gast210225
@rabbit: Alle Mods brauchen aber eine SQL Tablelle, und definieren "Farbgruppen" aber ich will nur den schon vorhandenen Gruppen eine Farbe zuordnen.

@fanrpg: Ich brauche 2 Abfragen, weil bei der 1. frage ich ab, in welchen Gruppen ein User ist (in der phpbb_user_group) und in der 2. frage ich ab, welche Farben diese Gruppen haben (in der phpbb_groups)...


Johannes

Verfasst: 05.12.2005 18:25
von fanrpg

Code: Alles auswählen

$sql = "SELECT ugt.group_id, gt.group_color, gt.group_id AS group_id2 FROM " . USER_GROUP_TABLE . " ugt, " . GROUPS_TABLE gt
   WHERE ugt.user_id = '" . $userdata['user_id'] . "' 
   AND ugt.user_pending = 0 
   AND ugt.group_id != 1 
   AND ugt.group_id != 2 
   AND ugt.group_id != 3
   AND ugt.group_id == gt.group_id"; 

if ( !($result = $db->sql_query($sql)) ) 
{ 
   message_die(CRITICAL_ERROR, 'Could not query Group Color'); 
} 
              
while ( $row2 = $db->sql_fetchrow($result) ) 
{ 
      $row['username'] = '<strong>' . $row['username'] . '</strong>'; 
      $style_color = ' style="color:#' . $row2['group_color'] . '"'; 
}
Kommt man trotzdem mit einer Abfrage hin...

Verfasst: 05.12.2005 19:32
von Gast210225
Danke!
Es waren zwar noch 2 Fehler (einer von mir, einer von dir) drinnen, aber nun gehts!

Verfasst: 06.12.2005 01:24
von rabbit
JG hat geschrieben:@rabbit: Alle Mods brauchen aber eine SQL Tablelle, und definieren "Farbgruppen" aber ich will nur den schon vorhandenen Gruppen eine Farbe zuordnen.
nun, der AGCM fügt keine neue tabelle hinzu, sondern nutzt auch die gruppen tabelle bzw. die users tabelle. der MOD fügt gruppen eine separate farbe hinzu und für den fall, dass ein user in mehr als einer gruppe ist, kann dieser im profil auswählen, welche gruppenfarbe er für sich angezeigt haben will. :)

zu sehen hier (*click*) gemeinsam mit dem categories hierarchy MOD v2.1.4...

Verfasst: 06.12.2005 13:42
von Gast210225
Hmm.. Wo gibts den Mod zum Downloaden?

Verfasst: 06.12.2005 14:07
von Dr.Death