Wie lautet der Code für wenn User inaktiv?

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Tim
Mitglied
Beiträge: 613
Registriert: 13.03.2009 21:33

Wie lautet der Code für wenn User inaktiv?

Beitrag von Tim »

Hallo Forum, ich habe mir eine MOD schreiben lassen, mit der User selbst ihr Profil inaktiv schalten können, als Alternative zum Profil löschen. Nun würde ich gerne das Profil so umbauen, dass, wenn ein User inaktiv ist, keine Informationen mehr im Profil sichtbar sind. Dazu brauche ich einen Code, der prüft, ob der User inaktiv ist. IF_user_not_inactive zum Beispiel :D Irgendwie so in der Art wird der Code wohl sein, ich komme aber leider nicht drauf, hoffe hier kann mir jemand weiterhelfen, vielen Dank :) LG Tim
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Wie lautet der Code für wenn User inaktiv?

Beitrag von oxpus »

Hallo,

wenn ein Benutzer inaktiv ist, kann das Profil erst gar nicht angezeigt werden.
Das unterbindet das phpBB 3 bereits.
Also wäre es auch nicht nötig, Informationen nicht darzustellen.

Ansonsten wird in den betreffenden Userdaten bei inaktiven Usern der Wert für "user_type" auf "USER_INACTIVE" (= "1") gesetzt, was man an den gewünschten Stellen abfragen kann.
Das wird so z. B. zur Profilansicht in der memberlist.php geprüft:

Code: Alles auswählen

		if (!$auth->acl_get('a_user') && $user->data['user_type'] != USER_FOUNDER)
		{
			if ($member['user_type'] == USER_IGNORE)
			{
				trigger_error('NO_USER');
			}
			else if ($member['user_type'] == USER_INACTIVE && $member['user_inactive_reason'] != INACTIVE_PROFILE)
			{
				trigger_error('NO_USER');
			}
		}
Damit werden Profile aller ignorierten oder deaktivierten User nicht dargestellt und mit der (sinngemässen) Meldung "Benutzer nicht gefunden" quittiert.
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Tim
Mitglied
Beiträge: 613
Registriert: 13.03.2009 21:33

Re: Wie lautet der Code für wenn User inaktiv?

Beitrag von Tim »

Hallo Karsten,

danke für deine Antwort.
Bei der MOD wird der Wert aber nicht auf 1 sondern auf 2 gesetzt, somit ist der User zwar nicht mehr über die Suchfunktion zu finden, aber wenn man bei einem Beitrag von ihm auf die Profilverlinkung klickt kommt man so auch auf das Profil.
LG Tim
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Wie lautet der Code für wenn User inaktiv?

Beitrag von oxpus »

Ah ja. Also ignorierte User!!
Dann füge vor dem Block von mir einfach dieses ein:

Code: Alles auswählen

if ($member['user_type'] <> USER_IGNORE)
{
$template->assign_var('S_SHOW_PROFILE', true);
}
Damit hättest Du in der memberlist_view.html den Switch

Code: Alles auswählen

<!-- IF S_SHOW_PROFILE -->

<!-- ENDIF -->
zur Verfügung, der die gewünschten Inhalte im Profil bei den aktiven Usern einbindet, bei den ignorierten dann folglich nicht.
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Tim
Mitglied
Beiträge: 613
Registriert: 13.03.2009 21:33

Re: Wie lautet der Code für wenn User inaktiv?

Beitrag von Tim »

Funktioniert leider nicht. Profil wird noch genau so angezeigt wie vorher. Cache und Template habe ich natürlich aktualisiert/geleert.
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Wie lautet der Code für wenn User inaktiv?

Beitrag von oxpus »

Und Du hast den Switch in der Template-Datei auch um den Bereich herum"gelegt", der nur bei nicht ignorierten Usern angezeigt werden soll?
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Tim
Mitglied
Beiträge: 613
Registriert: 13.03.2009 21:33

Re: Wie lautet der Code für wenn User inaktiv?

Beitrag von Tim »

Ich habe den Switch in der memberlist_view am Anfang und am Ende des Quellcodes gesetzt.
Benutzeravatar
oxpus
Ehemaliges Teammitglied
Beiträge: 5394
Registriert: 03.02.2003 12:33
Wohnort: Bad Wildungen
Kontaktdaten:

Re: Wie lautet der Code für wenn User inaktiv?

Beitrag von oxpus »

Dann müsste die Seite bei ignorierten Usern komplett leer sein. Also zumindest der Teil des Profils.
Versuchs doch mal so:

Code: Alles auswählen

if ($member['user_type'] <> 2)
{
$template->assign_var('S_SHOW_PROFILE', true);
}
Obwohl das eigentlich gleich sein müsste, sofern die Konstante in der includes/constants.php nicht geändert wurde.
Grüße
OXPUS
Kein Support bei unaufgeforderten PNs, E-Mails oder auf anderem Weg!!
Tim
Mitglied
Beiträge: 613
Registriert: 13.03.2009 21:33

Re: Wie lautet der Code für wenn User inaktiv?

Beitrag von Tim »

Hallo Karsten,

in der Datei memberlist_profile_view.html habe ich dies gesehen:

Code: Alles auswählen

{L_USER_IS_INACTIVE}
Kann man das nicht einfach vor die einzelnen Felder setzen? Oder funktioniert das nicht? LG Tim :geek:
Benutzeravatar
Dr.Death
Moderator
Moderator
Beiträge: 17473
Registriert: 23.04.2003 08:22
Wohnort: Xanten
Kontaktdaten:

Re: Wie lautet der Code für wenn User inaktiv?

Beitrag von Dr.Death »

Variablen mit einem L_ am Anfang sind "Sprach Variablen" und beinhalten nur die "Übersetzung", aber niemals den Status.
Antworten

Zurück zu „[3.0.x] Mod Bastelstube“