Welches Profil wird gerade betrachtet?

In diesem moderierten Forum werden Code-Schnipsel, die zu klein sind, um richtige Mods zu sein, abgelegt.
Snippets können über unser Kontaktformular eingereicht werden (bitte als vollständiger, Copy&Paste fähiger Beitrag).
Bei Fragen oder Problemen benutze bitte das Forum [3.0.x] Mod Support.
Antworten
Benutzeravatar
Metzle
Ehemaliges Teammitglied
Beiträge: 10435
Registriert: 08.03.2008 02:50
Wohnort: Waiblingen-Neustadt
Kontaktdaten:

Welches Profil wird gerade betrachtet?

Beitrag von Metzle » 01.12.2009 17:38

Welches Profil wird gerade betrachtet? ( viewonline.php )

Dieses Snippet wurde uns von djchrisnet zur Verfügung gestellt:

Achtung: Dieses Snippet kann in gut besuchten Foren die Datenbank sehr hoch belasten!

Mit diesem Snippet ist es möglich zu sehen, welches Profil gerade betrachtet wird.
  • Anzeige des betrachteten Benutzernamens
  • Link zum betrachteten Profil
Öffne viewonline.php
Suche:

Code: Alles auswählen

case 'memberlist':
            $location = (strpos($row['session_page'], 'mode=viewprofile') !== false) ? $user->lang['VIEWING_MEMBER_PROFILE'] : $user->lang['VIEWING_MEMBERS'];
            $location_url = append_sid("{$phpbb_root_path}memberlist.$phpEx");
        break; 
Ersetze gegen:

Code: Alles auswählen

case 'memberlist':
           parse_str($row['session_page'], $sess_get);
                     
           if (array_key_exists('u', $sess_get) && strpos($row['session_page'], 'mode=viewprofile'))
           {
                $msql = 'SELECT username
                    FROM ' . USERS_TABLE . '
                    WHERE user_id = ' . (int) $sess_get['u'];
                $mresult = $db->sql_query($msql);
                $viewed_username = $db->sql_fetchfield('username');
                $db->sql_freeresult($mresult);
                
                $location = $user->lang['VIEWING_MEMBER_PROFILE'] . ' (' . $viewed_username . ')';
                $location_url = append_sid("{$phpbb_root_path}memberlist.$phpEx" , 'mode=viewprofile&u=' . $sess_get['u']);
           }
           else
           {
                   $location = (strpos($row['session_page'], 'mode=viewprofile') !== false) ? $user->lang['VIEWING_MEMBER_PROFILE'] : $user->lang['VIEWING_MEMBERS'];
                $location_url = append_sid("{$phpbb_root_path}memberlist.$phpEx");
            }
        break; 
Metzle
phpBB.de-Support-Team
Allround-phpBB.de

Benutzeravatar
Metzle
Ehemaliges Teammitglied
Beiträge: 10435
Registriert: 08.03.2008 02:50
Wohnort: Waiblingen-Neustadt
Kontaktdaten:

Re: Welches Profil wird gerade betrachtet?

Beitrag von Metzle » 01.12.2009 17:47

Eine andere Variante, um die Anzeige zu ermöglichen, zeigt dieses Snippet:

Achtung: Dieses Snippet kann in gut besuchten Foren die Datenbank sehr hoch belasten!

Mit diesem Snippet ist es möglich zu sehen, welches Profil gerade betrachtet wird in Viewonline.

- Anzeige des betrachteten Benutzernamens
- Link zum betrachteten Profil

Öffne: viewonline.php

Finde:

Code: Alles auswählen

            case 'memberlist':
                $location = (strpos($row['session_page'], 'mode=viewprofile') !== false) ? $user->lang['VIEWING_MEMBER_PROFILE'] : $user->lang['VIEWING_MEMBERS'];
                $location_url = append_sid("{$phpbb_root_path}memberlist.$phpEx");
            break;  
Ersetze mit:

Code: Alles auswählen

case 'memberlist':

         preg_match('#u=([0-9]+)#', $row['session_page'], $user_id);
         $user_id = (sizeof($user_id)) ? (int) $user_id[1] : 0;

         $sql = 'SELECT user_type, username, user_colour
            FROM ' . USERS_TABLE . '
            WHERE user_id = ' . $user_id;
         $results = $db->sql_query($sql);
         $rows = $db->sql_fetchrow($results);

         $username = ($rows['user_type'] != USER_IGNORE) ? get_username_string('no_profile', $user_id, $rows['username'], $rows['user_colour']) : '<span' . $user_colour . '>' . $rows['username'] . '</span>';

         $location = (strpos($row['session_page'], 'mode=viewprofile') !== false) ? sprintf($user->lang['VIEWING_MEMBER_PROFILE'], $username) : $user->lang['VIEWING_MEMBERS'];
         $location_url = ($rows['user_type'] != USER_IGNORE) ? get_username_string('profile', $user_id, '') : '';

         $db->sql_freeresult($results);
      break;  
Öffne: language/de/common.php

Finde:

Code: Alles auswählen

'VIEWING_MEMBER_PROFILE'    => 'Betrachtet das Profil eines Mitglieds', 
Ersetze mit:

Code: Alles auswählen

'VIEWING_MEMBER_PROFILE'   => 'Betrachtet das Profil von %s', 
danach Cache leeren etc.

Bitte hierbei beachten: KB:utf8bom
Metzle
phpBB.de-Support-Team
Allround-phpBB.de

Antworten

Zurück zu „[3.0.x] Snippets“