Avatare für bestimmte Gruppen-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.
Antworten
Benutzeravatar
Itac
Mitglied
Beiträge: 19
Registriert: 22.08.2003 16:09
Wohnort: Rostock
Kontaktdaten:

Avatare für bestimmte Gruppen-Mod

Beitrag von Itac »

Hallo,

ich hab hier:
http://www.phpbb.de/viewtopic.php?p=192280#192280

meinen ersten Mod gehackstückelt.

Er soll für bestimmte Gruppen zusätzliche eigene Avatare ermöglichen.
Wer möchte kann mal Testen, Optimierungsvorschläge sind auch willkommen. (hab gerade mit PHP is mir neu)

Ein Gruß
Itac
Benutzeravatar
Lucas1510
Mitglied
Beiträge: 823
Registriert: 04.07.2003 13:59

Beitrag von Lucas1510 »

Die Idee ist klasse :) Aber bei mir funzt es nicht :(

bekomme den Fehler

Code: Alles auswählen

Couldn't obtain user group information.

DEBUG MODE

SQL Error : 1146 Table 'meinedomain_de.PHPBB_GROUPS' doesn't exist

SELECT * FROM PHPBB_GROUPS

Line : 361
File : /is/htdocs/49513/www.meinedomain.de/includes/usercp_avatar.php
Kann bei mir aber sein, daß es daran liegt, daß ich folgenden Hack installiert habe:

Code: Alles auswählen

## Mod Title: Avatar gallery hack
## Mod Version: 1.0.0
## phpBB Version: 2.0.2
## Author: dzidzius - dzidzius@dione.ids.pl (you can find me also at forum www.ForumBest.150.pl, there send all questions)
## Description:
## Avatar from gallery after chosing it by user automatically disappear from gallery. Thanks
## to this hack two users cannot have the same avatar. If user resign from that avatar it will 
## be shown again in gallery.
## Installation Level: easy
## Installation Time: 2
## Files To Edit: 
##
##   includes\usercp_avatar.php 
Schade, aber trotzdem super-Idee, werde den Avatar-Gallery-Hack mal testweise entfernen und Deinen Mod nochmal ausprobieren :)

Viele Grüße,

Lucas
Acid
Ehrenadmin
Beiträge: 12195
Registriert: 26.04.2001 02:00
Wohnort: Berlin

Beitrag von Acid »

..ersetze in dem Code ma $sql = "SELECT * FROM ".PHPBB_GROUPS; mit $sql = "SELECT * FROM ".GROUPS_TABLE;

Ich hab das andere Thema ma geschlossen. :)
Benutzeravatar
Itac
Mitglied
Beiträge: 19
Registriert: 22.08.2003 16:09
Wohnort: Rostock
Kontaktdaten:

Beitrag von Itac »

@Acid: na hoffendlich nicht zu früh, ist ja noch beta.

Ich hab noch bemerkt wenn der GruppenAvatar Ordner an erster Stelle
liegt wird er, auch wenn der User nicht in der Grupe ist, angezeigt.
Entweder nehm ich "x_" statt "g_" oder muß nochmal coden.

@Acid: die Zeile werd ich mal umbauen, ich hab das Problem
das ich keine Übersicht der Variabel gefunden und da hab ich das
verwendet was ich mit phpMyAdmin aus der Datenbank gelesen
habe....

*Ärmel hochkrempel* :grin:
Benutzeravatar
Henne
Ehemaliges Teammitglied
Beiträge: 4520
Registriert: 04.01.2002 01:00
Wohnort: Lage (Lippe)
Kontaktdaten:

Beitrag von Henne »

Itac hat geschrieben:@Acid: die Zeile werd ich mal umbauen, ich hab das Problem das ich keine Übersicht der Variabel gefunden...
Schau mal in die constants.php
Benutzeravatar
Itac
Mitglied
Beiträge: 19
Registriert: 22.08.2003 16:09
Wohnort: Rostock
Kontaktdaten:

Beitrag von Itac »

danke Henne für den Tip.

Ich habe mich entschlossen statt "g_" nehm ich "x_"
dazu sollte ein Order lieger der nicht mit "x_" anfängt,
dieser ist dann der Ordner dem man zuerst sieht.

hier nochmal der ganze Mod:

öffne usercp_avatar.php

suche

Code: Alles auswählen

while( list($key) = each($avatar_images) )
	{
		$selected = ( $key == $category ) ? ' selected="selected"' : '';
		if( count($avatar_images[$key]) )
		{
			$s_categories .= '<option value="' . $key . '"' . $selected . '>' . ucfirst($key) . '</option>';
		}
	}
	$s_categories .= '</select>';
ersetze durch

Code: Alles auswählen

global $userdata; 

//Usergruppe des Users Finden
$is_in_Group = array(); 
$zz=-1;

//hole Gruppen ID des Users
		$sql = "SELECT * FROM ".USER_GROUP_TABLE." WHERE user_id = ".$userdata['user_id'];
		if(!$result = $db->sql_query($sql))
		{
			message_die(GENERAL_ERROR, "Couldn't obtain user group information.", "", __LINE__, __FILE__, $sql);
		}
		while( $row = $db->sql_fetchrow($result))
		{
			$zz++;
			$is_in_Group[$zz] =$row['group_id'];  //merke GruppenID vom User
		}
		
//wandele GruppenID in Gruppennamen um
		if($zz>-1)
		{
			$sql = "SELECT * FROM ".GROUPS_TABLE; 		
                                                if(!$result = $db->sql_query($sql))
			{
				message_die(GENERAL_ERROR, "Couldn't obtain user group information.", "", __LINE__, __FILE__, $sql);
			}
		
			while( $row = $db->sql_fetchrow($result))
			{
			for ($i=0;$i<($zz+1);$i++)
				{
					if ($is_in_Group[$i]==$row['group_id'])
						{
						$is_in_Group[$i]=strtolower ($row['group_name']);
						}
				}
			}		
		}

//Aufbau der dropdownbox
	while( list($key) = each($avatar_images) )
	{
		$selected = ( $key == $category ) ? ' selected="selected"' : '';
		if( count($avatar_images[$key]) )
		{
			$AvatarOrdner=strtolower ($key);		  //ordnername 
			$AvatarOrdnerT= substr($AvatarOrdner, 2); //ohne die ersten beiden Zeichen
			$test=substr($AvatarOrdner, 0, 2);        //die ersten beiden Zeichen
		
			//Wenn Ordner mit "x_" anfängt gucken ob User zugriff darauf haben soll (=in Gruppe ist)
			if ($test=="x_")
				{
				for ($i=0;$i<($zz+1);$i++)
					{
					if ($is_in_Group[$i]==$AvatarOrdnerT)
							{
							$s_categories .= '<option value="' . $key . '"' . $selected . '>'. ucfirst($AvatarOrdnerT) . '</option>';
							}
					}
				}
			else
				{
				$s_categories .= '<option value="' . $key . '"' . $selected . '>'. ucfirst($key) . '</option>';
				}
		}
	}
	$s_categories .= '</select>';

speichere Datei

lege min. 2 Ordner in "images\avatars\gallery" an
einen den User auf jeden fall sehen z.B. "gallery01" und
einen zweiten für User einer Gruppe z.B. "x_anova".
lege dort in paar Bilder hinein.

melde Dich als Admin an und erzeuge eine Gruppe
z.B. "anova". Dazu einen Gruppen-Moderator und evlt.
ein paar User (die kann auch der Gruppen-Moderator eintragen)
an besten die Gruppe als geschlossen oder versteckt anlegen.

testen

Natürlich könnte man jetzt noch die erste Ausgabe so umschreiben
das per default keine "x_" Gruppe angezeigt wird.
aber man könnte :D

*edit 27.08.03. 14:45*
FritzDaCat
Mitglied
Beiträge: 48
Registriert: 06.11.2004 20:53

Beitrag von FritzDaCat »

Perfekt, das Mod hat super funktioniert! :D

getestet mit phpBB 2.0.10
Antworten

Zurück zu „phpBB 2.0: Mod Support“