Seite 1 von 2

Mitgliederliste/Profil nur für eingeloggte User sichtbar

Verfasst: 03.05.2014 15:36
von Elektron
Hallo,

ich such ein Mod bzw. Snippet wo die Links in die Userprofile für Gäste nicht vorhanden sind.
Für Gäste sind die Userprofile gesperrt und es macht daher auch keinen Sinn, dass die Username verlinkt sind und auf die Login-Seite führen.
Im phpBB2 gab es das Snippet viewtopic.php?t=47560
Nun suche es für phpBB3.

Danke für Eure Hilfe!

Gruß Elektron

Re: Mitgliederliste/Profil nur für eingeloggte User sichtbar

Verfasst: 03.05.2014 16:54
von Miriam
Du könntest es so probieren:
In der includes\functions_content.php
finde:

Code: Alles auswählen

    // This switch makes sure we only run code required for the mode 
füge ein davor:

Code: Alles auswählen

    if (!in_array($user->data['user_type'], array(USER_NORMAL, USER_FOUNDER)))  
    {
        $mode = 'no_profile';
    } 

Re: Mitgliederliste/Profil nur für eingeloggte User sichtbar

Verfasst: 03.05.2014 17:00
von Elektron
Hallo Miriam,

danke Dir ganz herzlich!
Scheint zu funktionieren und ist dazu noch nur wenige Code-Zeilen!

Gruß Elektron

*edit*

Hallo,

die Avatar-Bilder in den Postings erhalten nun durch die Änderung einen geänderten Link mit dem Username:

Code: Alles auswählen

http://domain.tld/Username    
Wie kann man das noch unterbinden, dass die Avatar-Bilder keine Verlinkungen mehr erhalten für Gäste?

Danke!

:D :roll: :D

Re: Mitgliederliste/Profil nur für eingeloggte User sichtbar

Verfasst: 03.05.2014 19:36
von Kirk
Elektron hat geschrieben:Wie kann man das noch unterbinden, dass die Avatar-Bilder keine Verlinkungen mehr erhalten für Gäste?
Mach mal die Änderung von Miram rückgängig und probier folgendes:
Öffne: root/styles/stylename/template/viewtopic_body.html
Finde:

Code: Alles auswählen

<!-- IF postrow.U_POST_AUTHOR -->
Ersetzen mit:

Code: Alles auswählen

<!-- IF postrow.U_POST_AUTHOR and S_USER_LOGGED_IN -->

Re: Mitgliederliste/Profil nur für eingeloggte User sichtbar

Verfasst: 03.05.2014 19:49
von Elektron
Hallo,

diese Änderung würde sich ja nur auf die viewtopic auswirken?
Auf der Portal-Seite oder andere Seiten, würden dann die User-Links immer noch für Gäste sichtbar sein.
Es geht hier im SEO-Optimierungen und wir möchten Google nicht ständig über die Links auf die Login-Seite in die Irre führen.

Die Lösung von Miriam finde ich schon klasse! Es brächte wohl noch eine Erweiterung für die verlinkten Avatarbilder....
Gruß Elektron

Re: Mitgliederliste/Profil nur für eingeloggte User sichtbar

Verfasst: 03.05.2014 20:39
von Miriam
Also gut... nochmal alles auf Null und dann:
In der includes/functions_content.php
finde

Code: Alles auswählen

    // This switch makes sure we only run code required for the mode  
füge ein davor

Code: Alles auswählen

    if (!in_array($user->data['user_type'], array(USER_NORMAL, USER_FOUNDER)))  
    {
        $no_link = true;
    }
finde

Code: Alles auswählen

            // For anonymous the link leads to a login page.  
füge ein danach

Code: Alles auswählen

            if ($no_link) 
            {
                $profile_url = '';
            }
            else
Jetzt muß ich mich aber ran halten: DSDS geht los. :lol:

Re: Mitgliederliste/Profil nur für eingeloggte User sichtbar

Verfasst: 03.05.2014 20:54
von Elektron
Danke!

Genial, klappt prima!

Viel Spaß bei DSDS

Gruß Elektron

Re: Mitgliederliste/Profil nur für eingeloggte User sichtbar

Verfasst: 04.05.2014 10:02
von Kirk
@Miriam,
Man bekommt aber folgende Fehlermeldung:
[phpBB Debug] PHP Notice: in file [ROOT]/includes/functions_content.php on line 1242: Undefined variable: no_link
Man müsste das:

Code: Alles auswählen

global $user, $auth;
durch das ersetzen:

Code: Alles auswählen

global $user, $auth, $no_link;

Re: Mitgliederliste/Profil nur für eingeloggte User sichtbar

Verfasst: 04.05.2014 13:54
von Miriam
Die Fehlermeldung kommt, wenn der Debug Modus aktiviert ist, da hast Du recht.

Die Fehlerbehebung kann so erfolgen:
finde im Code ->

Code: Alles auswählen

    if (!in_array($user->data['user_type'], array(USER_NORMAL, USER_FOUNDER))) 

füge davor ein:

Code: Alles auswählen

    $no_link = false; 
Dein Ansatz funktioniert nicht, weil es auch keine globale Variable $no_link gibt.

Danke für den Hinweis.

Re: Mitgliederliste/Profil nur für eingeloggte User sichtbar

Verfasst: 04.05.2014 15:00
von Kirk
Miriam hat geschrieben:Dein Ansatz funktioniert nicht, weil es auch keine globale Variable $no_link gibt.
Ob es eine globale Variable dafür gibt, kann ich nicht sagen, aber funktioniert hatte es. (Ungemoddtetes Forum)
Kenn zwar nicht so gut aus mit php aber deines scheint codetechnisch besser.