Seite 1 von 1
Welches Profil wird betrachtet Snippet
Verfasst: 01.10.2011 15:13
von Emma
Hallo,
ich wollte gerade mal dieses "kleine" Snippet testen:
viewtopic.php?f=85&t=199638
Hier steht aber als Warnung bei gut besuchten Foren kann das hoch belasten. 2 kleine Fragen: Kann man es so anpassen, dass nur Administratoren/innen sehen können welches Profil betrachtet wird und die "normalen" Nutzer den normalen Text sehen.
2. Wenn 1. geht ich bin die einzige Administratorin, belastet das dann auch sehr stark die Datenbank, wenn nur ich das sehe?
Danke im Voraus.
Re: Welches Profil wird betrachtet Snippet
Verfasst: 01.10.2011 16:31
von Charlie_M
Ich nehme an du hast die 1. Variante verwendet:
Suche:
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;
Ersetze mit:
Code: Alles auswählen
case 'memberlist':
if ($auth->acl_get('a_'))
{
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;
Wenn 1. geht ich bin die einzige Administratorin, belastet das dann auch sehr stark die Datenbank, wenn nur ich das sehe?
Wennst nicht nachschaust nicht.
Es wird in der DB entsprechend der User_ID der zugehörige Nick des betrachteten Users auszulesen.
Je mehr User zu dem Zeitpunkt gerade Profile anschauen desto mehr Abfragen werden erzeugt.
Re: Welches Profil wird betrachtet Snippet
Verfasst: 01.10.2011 16:47
von Mahony
Hallo
Du könntest auch den
Profile Views List MOD installieren.
Der MOD speichert die Profile-Ansichten.
Grüße: Mahony
Re: Welches Profil wird betrachtet Snippet
Verfasst: 01.10.2011 17:31
von Emma
Ich habe erstmal den MOD probiert, zum Snippet komme ich später. Beim Mod gibt es bei der Installation leider einen Error:
Code: Alles auswählen
Index name 'phpbb_profile_views_profile_user_id' on table 'phpbb_profile_views' is too long. The maximum is 24 characters.
Was kann das sein. Irgendetwas ist zu lang, da muss man wie ich das interpretiere irgendwo ein Limit hochsetzen für die Installation.
===============================================================================
Snippet: In welcher Datei muss ich die Änderungen vornehmen? Viewonline? Da scheint es den Text nicht zu geben.

Re: Welches Profil wird betrachtet Snippet
Verfasst: 01.10.2011 17:44
von Charlie_M
Ich bin davon ausgegangen du hast den Mopd schon installiert:
Ö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;
ersetzen mit (nur für Admin):
Code: Alles auswählen
case 'memberlist':
if ($auth->acl_get('a_'))
{
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;
==================================================================================================
Zum Fehler des Mods =>
http://www.phpbb.com/customise/db/mod/p ... or-t_93423
Re: Welches Profil wird betrachtet Snippet
Verfasst: 01.10.2011 17:54
von Emma
Wunderbar ich danke dir. Beides funktioniert. Beim ersten Mod kann ich auf der Onlineliste nun alles sehen und andere Nutzer nicht.

Der Mod funktioniert auch wunderbar, der Hinweiß auf phpBB.com hat funktioniert. So eine Meldung hatte ich schon oft und ich wusste nicht warum danke jetzt weiß ich das in Zukunft auch.

Re: Welches Profil wird betrachtet Snippet
Verfasst: 02.10.2011 15:58
von Mahony
Hallo
Für die deutschen Sprachdateien zum Profile Views MOD schau mal hier
http://www.chalong.de/viewtopic.php?f=6&t=309
Grüße: Mahony
Re: Welches Profil wird betrachtet Snippet
Verfasst: 02.10.2011 16:12
von Emma
Oh ja danke ich hatte meinen Beitrag gerade eben sogar gelöscht, weil ich selbst fündig geworden bin sogar dort und noch woanders. Anfangs hatte ich nix gefunden. Ich danke dir für deine Hilfe.
