Beiträge: 35
Themen: 6
Registriert seit: 21.02.2010
Hallo,
nach einigen rumfummeln an der index.php bin ich leider nicht zu den gewünschten Ergebnis bekommen. Ich habe vor die auf der Startseite befindlichen zur Zeit online User in der whoisonline Liste Gästen zu verbergen. Im Template wird das Feld durch {$onlinemembers} definiert.
Das gleiche habe ich auch mit den Zusatzinfos vor, die wie folgt lauten:
X Benutzer aktiv in den letzten 15 Minuten: X Mitglied(er), X davon unsichtbar und X Gäste
Im Template ist das die Variable {$lang->online_note}
Wo muss ich in welcher Datei, was verändern, damit die Gäste das nicht sehen können bzw. einen Alternativtext zu sehen ist. Für Mitglieder soll das natürlich sichtbar sein.
Danke schon mal.
yomifrog
Beiträge: 25.762
Themen: 269
Registriert seit: 20.09.2005
Schau mal in der inc/languages/*Sprache*/index.lang.php.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
Solltest Du generell den Gästen die Boardstats auf der Startseite nicht zeigen wollen, dann kannst Du ggf. auch folgendes machen.
Suche in der index.php
PHP-Code:
// Show the board statistics table only if one or more index statistics are enabled.
if($mybb->settings['showwol'] != 0 || $mybb->settings['showindexstats'] != 0 || ($mybb->settings['showbirthdays'] != 0 && $bdaycount > 0))
{
if(!is_array($stats))
{
// Load the stats cache.
$stats = $cache->read("stats");
}
eval("\$boardstats = \"".$templates->get("index_boardstats")."\";");
}
und ändere das in
PHP-Code:
// Show the board statistics table only if one or more index statistics are enabled.
if($mybb->settings['showwol'] != 0 || $mybb->settings['showindexstats'] != 0 || ($mybb->settings['showbirthdays'] != 0 && $bdaycount > 0))
{
if(!is_array($stats))
{
// Load the stats cache.
$stats = $cache->read("stats");
}
// Do not load boardstats for guests
if ($mybb->usergroup['gid'] != "1"){
eval("\$boardstats = \"".$templates->get("index_boardstats")."\";");
}
}
Das lässt sich auch auf Deine Wünsche anpassen. Du musst nur nach den entsprechenden Variablen und dem jeweiligen eval-Code suchen.
Beiträge: 35
Themen: 6
Registriert seit: 21.02.2010
Danke Jockl, das war sehr hilfreich, allerdings musste ich aus:
PHP-Code:
// Do not load boardstats for guests
if ($mybb->usergroup['gid'] != "1"){
eval("\$boardstats = \"".$templates->get("index_boardstats")."\";");
}
Das machen, weil es irgendwie nicht funzte:
PHP-Code:
// Do not load boardstats for guests
if ($mybb->user['usergroup'] != "1"){
eval("\$boardstats = \"".$templates->get("index_boardstats")."\";");
}
Eine unwichtige Frage habe ich noch nebenbei, gibt es irgendwo eine Auflistung der Usergroup ID's? Zudem würde mich noch interessieren, wie das dann mit eigenen (selbst erstellten) Benutzergruppen aussieht.
yomifrog
Beiträge: 9.560
Themen: 197
Registriert seit: 27.12.2007
MyBB-Version: 1.8
(13.06.2010, 18:24)yomifrog schrieb: ...gibt es irgendwo eine Auflistung der Usergroup ID's?
Ja, im ACP unter Tools&Verwaltung->Chache Manager -> usergroups.
(13.06.2010, 18:24)yomifrog schrieb: Zudem würde mich noch interessieren, wie das dann mit eigenen (selbst erstellten) Benutzergruppen aussieht.
Eigentlich genauso.
Beiträge: 35
Themen: 6
Registriert seit: 21.02.2010
Ah ok, danke sehr.^^
yomifrog
Beiträge: 1.450
Themen: 155
Registriert seit: 18.03.2006
Wichtig ist nur,
ist nur die primäre Benutzergruppe. Andere Benutzergruppen sind als kommagetrennter String in der Variablen
PHP-Code:
$mybb->user['additionalgroups']
Du musst daher hier auch diese prüfen, da Gäste ja nur in einer Gruppe, der primären sind, ist das da nicht notwendig, für eigene Benutzergruppen aber schon. Folgender Code hilft dir dabei vielleicht. Das ganze ist in einer Funktion verpackt, kann aber auch direkt benutzt werden. Es sollte funktionieren, kann es aber leider nicht garantieren.
PHP-Code:
/**
* checks if the user is in one of the allowed usergroups
* @param $P_allowed the allowed usergroups; seperated with ","(COMMA) e.g.: "4,10,2"
* @return boolean true if user is in one of the allowed usergroups
*/
function check_user($allowed = false)
{
// $mybb exist in the global content
global $mybb;
// explode the allowed usergroups to an array
$allowed_usergroups = explode(',', $allowed);
// explode the additional usergroups of the user to an array
$usergroups = explode(',', $mybb->user['additionalgroups']);
// Add the primary usergroup of the user the the usergroups
$usergroups[] = $mybb->user['usergroup'];
// is the user logged in
if ($mybb->user['uid'] != '0')
{
// check if allowed usergroups are set
if ($allowed!=false)
{
// check the permission for each usergroup of the user
foreach ($usergroups as $usergroup)
{
// check if the usergroup is one of the allowed usergroups
if(in_array($usergroup,$allowed_usergroups))
{
return true;
}
}
}
}
return false;
}