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
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Poster-Angaben für Gäste ausblenden

Beitrag von oxpus »

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 Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
skittles
Beiträge: 820
Registriert: So 04.Apr, 2004 01:07
Wohnort: Wien

Beitrag von skittles »

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
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

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 Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
skittles
Beiträge: 820
Registriert: So 04.Apr, 2004 01:07
Wohnort: Wien

Beitrag von skittles »

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
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

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 Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
skittles
Beiträge: 820
Registriert: So 04.Apr, 2004 01:07
Wohnort: Wien

Beitrag von skittles »

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 23: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
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

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 Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
helluvaguy
Beiträge: 128
Registriert: Di 06.Apr, 2004 20:22

Beitrag von helluvaguy »

Danke für dieses nette kleine Feature.
vossibaer
Beiträge: 65
Registriert: Do 13.Jan, 2005 09:40
Wohnort: Berlin

Beitrag von vossibaer »

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
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

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 Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
vossibaer
Beiträge: 65
Registriert: Do 13.Jan, 2005 09:40
Wohnort: Berlin

Beitrag von vossibaer »

Danke für die schnelle Hilfe.
Benutzeravatar
oxpus
Administrator
Beiträge: 28737
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

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