Poster-Angaben für Gäste ausblenden

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29111
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Poster-Angaben für Gäste ausblenden

Beitrag von oxpus » So 08.Aug, 2004 17:10

Code: Alles auswählen

#
#-----[ OPEN ]-----
#
viewtopic.php

#
#-----[ FIND ]-----
#
	$template->assign_block_vars('postrow', array(

#
#-----[ BEFOR, ADD ]-----
#
	if ( $userdata['user_id'] == ANONYMOUS )
	{
		$poster_joined = '';
		$poster_posts = '';
		$poster_from = '';
		$user_sig = '';
		$l_edited_by = '';
		$profile_img = '';
		$profile = '';
		$search_img = '';
		$search = '';
		$pm_img = '';
		$pm = '';
		$email_img = '';
		$email = '';
		$www_img = '';
		$www = '';
		$icq_status_img = '';
		$icq_img = '';
		$icq = '';
		$aim_img = '';
		$aim = '';
		$msn_img = '';
		$msn = '';
		$yim_img = '';
		$yim = '';
	}


#
#-----[ SAVE/CLOSE ALL FILES ]-----
#
# EoM
Damit werden alle Userangaben bei einem Post keinem Gast angezeigt.
Wenn weitere Angaben durch Mods hinzugekommen sind, einfach in die o.g. if-Bedingung mit einbauen.
Alle anderen User sehen weiterhin die Poster-Infos, auch in öffentlichen Foren.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
skittles
User
User
Beiträge: 907
Registriert: So 04.Apr, 2004 00:07
Wohnort: Wien

Beitrag von skittles » Sa 16.Apr, 2005 21:30

Also das Snippet finde ich echt gelungen!
Eine kleine Frage bezüglich einer Ergänzung habe ich aber noch!
Wie kann ich noch sowas einbauen?

Also ein zwischending praktisch?

Code: Alles auswählen

 if ( $userdata['group_id'] != 3 )
    {
       $info1 = '';
       $info2 = '';
}
so in etwa!
Also ich würde gerne eine Gruppe erstellen, und nur diese Gruppe darf private Infos angezeigt bekommen.

Wie könnte man sowas realisieren, ohne die andere if Abfrage zu umgehen?
[center]Populanten von transparenten Domizilen sollten
mit fester Materie keine transzendenten Bewegungen durchf?hren.
[/center]


Bild

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29111
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Sa 16.Apr, 2005 21:43

Zunächst müsstest Du per SQL-Abfrage feststellen, ob der User in der Gruppe X vorhanden ist!
Und dann kannst Du natürlich mit einer Bedingung meine ergänzen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
skittles
User
User
Beiträge: 907
Registriert: So 04.Apr, 2004 00:07
Wohnort: Wien

Beitrag von skittles » Sa 16.Apr, 2005 21:56

hää?
ich versteh nur Bahnhof!
Das mach ich doch eh mit dem if userdata ist NICHT gruppe 3 oder?
[center]Populanten von transparenten Domizilen sollten
mit fester Materie keine transzendenten Bewegungen durchf?hren.
[/center]


Bild

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29111
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Sa 16.Apr, 2005 22:10

So einfach gehts eben nicht, da in den Userdaten selber nicht festgehalten wird, in welcher Gruppe sich ein User befindet, wenn überhaupt.
Nur folgende Abfrage kann das klären:

Code: Alles auswählen

$user_id = $userdata['user_id']; // Hier die User-ID oder entsprechende Variable einstellen, wenn nicht $userdata['user_id']!

$sql = "SELECT g.group_id FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
	WHERE g.group_id = ug.group_id
		AND g.group_single_user <> " . TRUE . "
		AND ug.user_pending <> ".TRUE . "
		AND ug.user_id = $user_id";
if(!$result = $db->sql_query($sql))
{
	message_die(GENERAL_ERROR, "Error getting group information", "", __LINE__, __FILE__, $sql);
}

$user_in_group = $db->sql_numrows($result);
$db->sql_freeresult($result);

if ($user_in_group != 0)
{
	// Hier käme dann der Code rein, wenn der User in der Gruppe vorhanden ist
}
else
{
	// Den Teil kann man auch weglassen oder Code einfügen, wenn der User NICHT in der Gruppe ist
}
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Benutzeravatar
skittles
User
User
Beiträge: 907
Registriert: So 04.Apr, 2004 00:07
Wohnort: Wien

Beitrag von skittles » Sa 16.Apr, 2005 22:14

also müßte ich aus
$user_id = $userdata['user_id'];
dann also
$user_id = $userdata['group_id'];
machen?
Oder wie meinste das mit Variabel einstellen und so?


Würde es auch gehen dass Besucher nichts sehen, "normale" benutzer die Hälfte und User aus einer ganz bestimmten Gruppe alles sehen?
Zuletzt geändert von skittles am Sa 16.Apr, 2005 22:14, insgesamt 1-mal geändert.
[center]Populanten von transparenten Domizilen sollten
mit fester Materie keine transzendenten Bewegungen durchf?hren.
[/center]


Bild

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29111
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Sa 16.Apr, 2005 22:39

Nochmal: $userdata['group_id'] GIBT ES NICHT!

$userdata['user_id'] ist hier verwendet, um die User-ID des aktuellen Users in die Abfrage einzusetzen. Wenn das okay ist, dann lass es so stehen.

Dann zur weiteren Vorgehensweise:
Das Script müsste nun in Gänze so aussehen, damit es genau das macht, was Du vorhast (theoretisch):

Code: Alles auswählen

#
#-----[ OPEN ]-----
#
viewtopic.php

#
#-----[ FIND ]-----
#
//
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...
//

#
#-----[ BEFORE, ADD ]-----
#
$group_id = 3; // Hier die Gruppen-ID eintragen, deren Mitglieder alle Angaben des Posters sehen dürfen!

$sql = "SELECT g.group_id FROM " . GROUPS_TABLE . " g, " . USER_GROUP_TABLE . " ug
	WHERE g.group_id = ug.group_id
		AND g.group_id = $group_id
		AND g.group_single_user <> " . TRUE . "
		AND ug.user_pending <> ".TRUE . "
		AND ug.user_id = " . $userdata['user_id'];
if(!$result = $db->sql_query($sql))
{
	message_die(GENERAL_ERROR, "Error getting group information", "", __LINE__, __FILE__, $sql);
}

$user_in_group = $db->sql_numrows($result);
$db->sql_freeresult($result);

#
#-----[ FIND ]-----
#
	$template->assign_block_vars('postrow', array(

#
#-----[ BEFORE, ADD ]-----
#
	// Anstelle "== USER" kann "!= ANONYMOUS" verwendet werden, wenn die Angaben für alle registrierten
	// Benutzer ausgeblendet werden sollen, also auch für Moderatoren und Admins!
	if ($user_in_group == 0 && $userdata['user_id'] == USER)
	{
		// Hier kämen alle "Ausklammerungen" rein, die reg. Benutzer nicht sehen sollen (analog unten)
	}
	else if ($userdata['user_id'] == ANONYMOUS)
	{
		$poster_joined = '';
		$poster_posts = '';
		$poster_from = '';
		$user_sig = '';
		$l_edited_by = '';
		$profile_img = '';
		$profile = '';
		$search_img = '';
		$search = '';
		$pm_img = '';
		$pm = '';
		$email_img = '';
		$email = '';
		$www_img = '';
		$www = '';
		$icq_status_img = '';
		$icq_img = '';
		$icq = '';
		$aim_img = '';
		$aim = '';
		$msn_img = '';
		$msn = '';
		$yim_img = '';
		$yim = '';
	}
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

helluvaguy
User
User
Beiträge: 132
Registriert: Di 06.Apr, 2004 19:22

Beitrag von helluvaguy » Fr 22.Apr, 2005 13:35

Danke für dieses nette kleine Feature.

vossibaer
User
User
Beiträge: 65
Registriert: Do 13.Jan, 2005 09:40
Wohnort: Berlin

Beitrag von vossibaer » Di 02.Aug, 2005 13:36

Habe einen Link zum persönlichen album in der viewtopic.php drinne.

Code: Alles auswählen

'PHOTO_GALLERY' => '<a href="'.append_sid("album.$phpEx?user_id" . "=$poster_id").'"><img src="' . $images['icon_gallery'] . '" alt="' . $lang['Personal_gallery'] . '" border="0" /></a>',
Wie kann ich diesen für Gäste verstecken?

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29111
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Di 02.Aug, 2005 14:18

So:

Code: Alles auswählen

'PHOTO_GALLERY' => ($userdata['user_id'] == ANONYMOUS) ? '' :  '<a href="'.append_sid("album.$phpEx?user_id" . "=$poster_id").'"><img src="' . $images['icon_gallery'] . '" alt="' . $lang['Personal_gallery'] . '" border="0" /></a>',
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

vossibaer
User
User
Beiträge: 65
Registriert: Do 13.Jan, 2005 09:40
Wohnort: Berlin

Beitrag von vossibaer » Di 02.Aug, 2005 17:44

Danke für die schnelle Hilfe.

Benutzeravatar
oxpus
Administrator
Administrator
Beiträge: 29111
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus » Di 02.Aug, 2005 17:58

Keine Ursache.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per ICQ, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per ICQ, Email or PM. Each unasked message will be ignored!

Antworten