[erledigt] Profil, email und pn-Button bei inaktiven ...

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
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.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Benutzeravatar
Joe1220
Mitglied
Beiträge: 38
Registriert: 20.12.2006 09:21
Wohnort: Lübeck

[erledigt] Profil, email und pn-Button bei inaktiven ...

Beitrag von Joe1220 »

Moin,

ich würde gern in allen Ansichten (Topics, Profil usw.) bei inaktiven Usern die Buttons für Profil, email und pn ausblenden.

Hintergrund:

Bei einem kleinen Forum mit ca. 40 Usern und 5000 Beiträgen ist es sehr ärgerlich, alle Beiträge eines ausgeschiedenen Users zu löschen, das zerreist zu viele Threads (Löschen nur der User ist auch nicht wirklich so schön, da dann keine Zuordnung zum Postenden mehr möglich ist). Also habe ich die betreffenden User einfach inaktiv gesetzt und dafür gesorgt, dass sie nicht mehr in der Memberliste usw. auftauchen (Gab dafür hier ja nette Code-Schnipsel) ... Auch deren Profil habe ich bereinigt und alles entfernt, was ging. Nun haben diese User den Spezial-Rang "inaktiv". Die Beiträge sind noch da, aber eben leider auch die Möglichkeit, über die PN und Email-Buttons die User zu kontaktieren... Blendet man diese bei Usern im Status "inaktiv" aus, ist diese Lösung für mich perfekt, finde ich.

Hat jemand eine Idee?

Danke und Gruß

Joe


Die drei Knöpfe da unten will ich bei inaktiven Usern nicht sehen:
[ externes Bild ]
Zuletzt geändert von Joe1220 am 07.01.2007 22:30, insgesamt 1-mal geändert.
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Die Standardvorgehensweise sollte die sein, den User zu löschen. Dann wird der Name des nunmehr ehemaligen Users beim Posting direkt eingetragen und es steht der Name des Users dort. Probiere es mit einem Testuser.
Falls es Dir nicht gefällt, können wir es immer noch umbauen. :P
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Joe1220
Mitglied
Beiträge: 38
Registriert: 20.12.2006 09:21
Wohnort: Lübeck

Beitrag von Joe1220 »

Miriam hat geschrieben:Dann wird der Name des nunmehr ehemaligen Users beim Posting direkt eingetragen und es steht der Name des Users dort.
Ah, ich habe das mal mit nem Testuser ausprobiert. Der Name bleibt ja so wie es aussieht tatsächlich erhalten - ohne, dass ich etwas tun muss ...
War das schon immer so?? Hab das anders in Erinnerung, daher die Anfrage ...

Egal, damit hat sich dann meine Anfrage natürlich erledigt, danke Miriam ...
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

Ich glaub ich hab hier genau das richtige für dich gefunden:
schau mal rein

gefunden mit:
gast user löschen
kein Support per PN
Benutzeravatar
Skeita
Mitglied
Beiträge: 377
Registriert: 13.10.2005 12:43
Wohnort: Bonn
Kontaktdaten:

Beitrag von Skeita »

Joe1220 hat geschrieben:War das schon immer so?? Hab das anders in Erinnerung, daher die Anfrage ...

Egal, damit hat sich dann meine Anfrage natürlich erledigt, danke Miriam ...
Ich weiß nicht, seit welcher phpBB Version das so gelöst wird, aber ich bin mir sicher, dass es diese 'Funktion' schon mindestens seit phpBB 2.0.17 gibt. ;)
Mit freundlichen Grüßen, Erik Holz

PimpMyForum .de- Wir MODden dein Forum gratis!
Benutzeravatar
Joe1220
Mitglied
Beiträge: 38
Registriert: 20.12.2006 09:21
Wohnort: Lübeck

Beitrag von Joe1220 »

Ich bin mit 2.0.21 gestartet, habe mich vorher aber sehr häufig in einem Forum 2.0.6 rumgetrieben, zumindest da war das anders (nur "Gast", kein Nick) ....

Danke nochmal an alle für die nette Hilfestellung.

(Nur mal so am Rande: Wäre ein Umbau wie ursprünglich angedacht sehr umständlich? Denn es hätte ja den zusätzlichen Charme, dass ein User reaktiviert werden könnte, sollte er es sich anders überlegen. Ist er gelöscht, ließen sich seine früheren Posts ja nur durch diesen reassign-MOD wieder zuweisen. Möchte aber ehrlich gesagt so wenig MODs wie möglich einbauen bzw. später so wenig administrativen Aufwand wie möglich haben.)
Benutzeravatar
Miriam
Mitglied
Beiträge: 12310
Registriert: 13.10.2004 07:18
Kontaktdaten:

Beitrag von Miriam »

Deine Wortwahl ist ja sehr charmant :D

Probier das ->

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
includes/usercp_viewprofile.php
#
#-----[ FIND ]------------------------------------------
#
if ( $profiledata['user_rank'] )
{
	for($i = 0; $i < count($ranksrow); $i++)
	{
		if ( $profiledata['user_rank'] == $ranksrow[$i]['rank_id'] && $ranksrow[$i]['rank_special'] )
		{
			$poster_rank = $ranksrow[$i]['rank_title'];
			$rank_image = ( $ranksrow[$i]['rank_image'] ) ? '<img src="' . $ranksrow[$i]['rank_image'] . '" alt="' . $poster_rank . '" title="' . $poster_rank . '" border="0" /><br />' : '';
#
#-----[ AFTER, ADD ]------------------------------------------
#
                         if ( ($poster_rank == 'inaktiv') && ($userdata['user_level'] != ADMIN) )
                         {
                         	message_die(GENERAL_MESSAGE,"Userprofil nicht verf&uuml;gbar");
                         }
#
#-----[ OPEN ]------------------------------------------
#
viewtopic.php
#
#-----[ FIND ]------------------------------------------
#
		'PROFILE_IMG' => $profile_img,
		'PROFILE' => $profile,
#
#-----[ REPLACE WITH ]------------------------------------------
#
		'PROFILE_IMG' => $profile_img = ($poster_rank == 'inaktiv') ? '' : $profile_img,
		'PROFILE' => $profile = (poster_rank ==  'inaktiv') ? '' : $profile,
#
#-----[ FIND ]------------------------------------------
#
		'PM_IMG' => $pm_img,
		'PM' => $pm,

#
#-----[ REPLACE WITH ]------------------------------------------
#
		'PM_IMG' => $pm_img = ($poster_rank == 'inaktiv') ? '' : $pm_img,
		'PM' => $pm = ($poster_rank == 'inaktiv') ? '' : $pm,
#
#-----[ OPEN ]------------------------------------------
#
memberlist.php
#
#-----[ FIND ]------------------------------------------
#
$sql = "SELECT user_id, username, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar,
	FROM " . USERS_TABLE . "
	WHERE user_id <> " . ANONYMOUS . "
	ORDER BY $order_by";
#
#-----[ REPLACE WITH ]------------------------------------------
#
$sql = "SELECT user_id, username, user_viewemail, user_posts, user_regdate, user_from, user_website, user_email, user_icq, user_aim, user_yim, user_msnm, user_avatar, user_avatar_type, user_allowavatar, user_rank, rank_title
	FROM " . USERS_TABLE . "
	LEFT JOIN " . RANKS_TABLE ." ON rank_id = user_rank
	WHERE user_id <> " . ANONYMOUS . "
	ORDER BY $order_by";
#
#-----[ FIND ]------------------------------------------
#
if ( $row = $db->sql_fetchrow($result) )
{
	$i = 0;
	do
	{
		$username = $row['username'];
		$user_id = $row['user_id'];
#
#-----[ AFTER, ADD ]------------------------------------------
#
                 $user_rank = $row['rank_title'];
#
#-----[ FIND ]------------------------------------------
#
			'PROFILE_IMG' => $profile_img,
			'PROFILE' => $profile,
#
#-----[ REPLACE WITH ]------------------------------------------
#
			'PROFILE_IMG' => $profile_img = ($user_rank == 'inaktiv') ? '' : $profile_img,
			'PROFILE' => $profile = (user_rank ==  'inaktiv') ? '' : $profile,
#
#-----[ FIND ]------------------------------------------
#
			'PM_IMG' => $pm_img,
			'PM' => $pm,
#
#-----[ REPLACE WITH ]------------------------------------------
#
			'PM_IMG' => $pm_img = ($user_rank == 'inaktiv') ? '' : $pm_img,
			'PM' => $pm = ($user_rank == 'inaktiv') ? '' : $pm,
#
#-----[ OPEN ]------------------------------------------
#
privmsg.php
#
#-----[ FIND ]------------------------------------------
#
		if ( !empty($HTTP_POST_VARS['username']) )
		{
			$to_username = phpbb_clean_username($HTTP_POST_VARS['username']);

			$sql = "SELECT user_id, user_notify_pm, user_email, user_lang, user_active,
				FROM " . USERS_TABLE . "
				WHERE username = '" . str_replace("\'", "''", $to_username) . "'
				AND user_id <> " . ANONYMOUS;
#
#-----[ REPLACE WITH ]------------------------------------------
#
		if ( !empty($HTTP_POST_VARS['username']) )
		{
			$to_username = phpbb_clean_username($HTTP_POST_VARS['username']);

			$sql = "SELECT user_id, user_notify_pm, user_email, user_lang, user_active, user_rank, rank_title
				FROM " . USERS_TABLE . "
				LEFT JOIN " . RANKS_TABLE ." ON rank_id = user_rank
				WHERE username = '" . str_replace("\'", "''", $to_username) . "'
				AND user_id <> " . ANONYMOUS;
#
#-----[ FIND ]------------------------------------------
#
			if (!($to_userdata = $db->sql_fetchrow($result)))
			{
				$error = TRUE;
				$error_msg = $lang['No_such_user'];
			}
#
#-----[ AFTER, ADD ]------------------------------------------
#
                         else
                         {
                         	$to_user_rank = $to_userdata['rank_title'];
                         	$error = ($to_user_rank == 'inaktiv') ? TRUE : 0;
                                 if (error)
                                 {
                                 	$error_msg = "Dieser User kann keine PN erhalten!";
                                 }
                         }
#
#-----[ SAVE/CLOSE ALL FILES ]------------------------------------------
#
# EoM
Der Spezialrang MUSS inaktiv heissen!
Nur Admins können das Profil anschauen.
Es kann keine PN mehr geschickt werden.
Es gibt keine PN und Profil Buttons mehr.
Die Daten können auch nicht über die URL aufgerufen werden.

Den e-mail Button kannst Du auch über das Profil des betreffenden Users deaktivieren, darum habe ich mich jetzt nicht gekümmert.
Zuletzt geändert von Miriam am 07.01.2007 15:01, insgesamt 1-mal geändert.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Benutzeravatar
Joe1220
Mitglied
Beiträge: 38
Registriert: 20.12.2006 09:21
Wohnort: Lübeck

Beitrag von Joe1220 »

Hallo Miriam,

wow, genau das wollte ich erreichen... :)

Danke, danke, danke, danke ... :grin:

Du gestattest, dass ich Dich noch auf einen kleinen Fehler hinweise?

In Zeile 4 Deines Snippets muß es "usercp_viewprofile.php" heissen ...
Miriam hat geschrieben:

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
includes/usercp_viewprofile.php
#

...

Aber es hat prima funktioniert :)
Miriam hat geschrieben:Den e-mail Button kannst Du auch über das Profil des betreffenden Users deaktivieren, darum habe ich mich jetzt nicht gekümmert.
?? Ich kann im ACP e-mail nicht deaktivieren?? Ist aber egal, habe einfach das da ...

Code: Alles auswählen

      'EMAIL_IMG' => $email_img = ($poster_rank == 'inaktiv') ? '' : $email_img,
      'EMAIL' => $email = ($poster_rank == 'inaktiv') ? '' : $email,
... eingebaut (sinngemäß abgewandelt aus Deinem Code), dann wars perfekt :)

Lieben Dank und Gruß

Joe
MasterofFlames
Mitglied
Beiträge: 85
Registriert: 09.06.2003 23:06

Beitrag von MasterofFlames »

Um übers acp die Emailoption abzuschalten musst du doch nur den User aufrufen und dann in seinen Einstellungen E-Mail abschalten.
Benutzeravatar
nickvergessen
Ehrenadmin
Beiträge: 11559
Registriert: 09.10.2006 21:56
Wohnort: Stuttgart, Germany
Kontaktdaten:

Beitrag von nickvergessen »

MasterofFlames hat geschrieben:Um übers acp die Emailoption abzuschalten musst du doch nur den User aufrufen und dann in seinen Einstellungen E-Mail abschalten.
wobei die Lösung von ihm, viel besser ist, um den User zureaktivieren:
Joe1220 hat geschrieben:

Code: Alles auswählen

      'EMAIL_IMG' => $email_img = ($poster_rank == 'inaktiv') ? '' : $email_img,
      'EMAIL' => $email = ($poster_rank == 'inaktiv') ? '' : $email,
kein Support per PN
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“