MyBB.de Forum

Normale Version: Seite für Gäste sperren.
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
In dem Beitrag wird aber im Grunde genau beschrieben, wie eine Abfrage nach mehreren Usergruppen erstellt wird....

Zitat:Nun benötigen wir noch eine Bedingung (if-Abfrage), die überprüft, ob der Betrachter der Seite einer berechtigten Usergruppe angehört.
Nehmen wir an, wie oben beschrieben, dass sowohl Gäste als auch gebannte User diesen Link nicht sehen sollen.
Diese Usergruppen sind unter der ID 1 und 7 zu finden.

Für diese Usergruppe werden wir der Einfachheit halber ein Array erstellen. Das hat den Vorteil, dass ihr nötigenfalls schnell weitere Gruppen hinzufügen oder entfernen könnt). Danach fragen wir das Array ab und je nach Ergebnis wird der Top-Link im header geladen oder auch nicht.

Vor die bereits oben angesprochene Zeile

Code:
eval("\$header = \"".$templates->get("header")."\";");

fügen wir folgenden Code-Abschnitt ein:

PHP-Code:
$checkMyUsergroup = array(1,7);
if(!
in_array($mybb->usergroup['gid'], $checkMyUsergroup)){
  ............



Nachtrag:
eine Abfrage, die so aussieht
PHP-Code:
if ($mybb->user['usergroup'] = "was auch immer"
müsste korrekterweise so aussehen
PHP-Code:
if ($mybb->user['usergroup'] == "was auch immer"
Okay, ich teste das ganze morgen, wenn es geht sage ich schon mal danke!
(16.04.2014, 22:55)Jockl schrieb: [ -> ]Nachtrag:
eine Abfrage, die so aussieht
PHP-Code:
if ($mybb->user['usergroup'] = "was auch immer"
müsste korrekterweise so aussehen
PHP-Code:
if ($mybb->user['usergroup'] == "was auch immer"

Da lag der erste Fehler, aber er sperrt immer nur die erst angegebene Gruppe.

bei
PHP-Code:
if ($mybb->user['usergroup'] == "1, 5"

Sperrt er nur Gruppe 1

Bei bei
PHP-Code:
if ($mybb->user['usergroup'] == "5, 1"
sperrt er nur die Gruppe 5.

Ich versuch jetzt mal das oben genannte.
Das funktioniert ja auch so nicht! Wink

Du musst das so machen, wie schon oben geschrieben:
(16.04.2014, 22:55)Jockl schrieb: [ -> ]
PHP-Code:
$checkMyUsergroup = array(1,7);
if(!
in_array($mybb->usergroup['gid'], $checkMyUsergroup)){
  ............

Ich bin jetzt offiziel überfordert.

Wenn ich in der global.php

vor
PHP-Code:
eval("\$header = \"".$templates->get("header")."\";"); 

PHP-Code:
$checkMyUsergroup = array(1,5,7);
if(!
in_array($mybb->usergroup['gid'], $checkMyUsergroup)){
  <
li><a href="{$mybb->settings['bburl']}/serverhosting.php">Server-Hosting</a></li

tue sieht es im ganzen so aus:
PHP-Code:
}

// Set up some of the default templates
eval("\$headerinclude = \"".$templates->get("headerinclude")."\";");
eval(
"\$gobutton = \"".$templates->get("gobutton")."\";");
eval(
"\$htmldoctype = \"".$templates->get("htmldoctype"10)."\";");

$checkMyUsergroup = array(1,5,7);
if(!
in_array($mybb->usergroup['gid'], $checkMyUsergroup)){
  <
li><a href="{$mybb->settings['bburl']}/serverhosting.php">Server-Hosting</a></li>
eval(
"\$header = \"".$templates->get("header")."\";"); 

Das Template schaut so aus:
Code:
.
.
.
.
             <li><a  href="ts3server://85.214.231.102?port=5544">TeamSpeak</a></li>
<li><a href="{$mybb->settings['bburl']}/misc.php?action=help">{$lang->toplinks_help}</a></li>
{$meineSeite}
                        </ul>

Bekomme ich nen Error:

Parse error: syntax error, unexpected '}' in /var/customers/webs/ragent/global.php on line 530 Call Stack: 0.0009 831256 1. {main}() /var/customers/webs/ragent/index.php:0
Danke für den Hinweis, denn mir ist aufgefallen, dass der oben genannte Blog-Eintrag leider einen Fehler aufweist. Blush
Habe ihn aber nun korrigiert.

Kurz gesagt, so würde es funktionieren
PHP-Code:
$checkMyUsergroup = array(1,5,7);
if(!
in_array($mybb->usergroup['gid'], $checkMyUsergroup)){
  
$meineSeite "<li><a href=\"{$mybb->settings['bburl']}/serverhosting.php\">Server-Hosting</a></li>";
}
eval(
"\$header = \"".$templates->get("header")."\";"); 
In das Template header setzt Du nun {$meineSeite} an der entsprechende Stelle der Toplinks ein.

Achtung: solltest Du auch mit sek. Usergruppen arbeiten, dann müsste die Abfrage noch ein wenig angepasst werden. Die Abfrage oben, bezieht sich nämlich nur auf die primären Usergruppen.
(17.04.2014, 11:23)Jockl schrieb: [ -> ]Danke für den Hinweis, denn mir ist aufgefallen, dass der oben genannte Blog-Eintrag leider einen Fehler aufweist. Blush
Habe ihn aber nun korrigiert.

Kurz gesagt, so würde es funktionieren
PHP-Code:
$checkMyUsergroup = array(1,5,7);
if(!
in_array($mybb->usergroup['gid'], $checkMyUsergroup)){
  [
code][code]$meineSeite[/code][/code] = "<li><a href=\"{$mybb->settings['bburl']}/serverhosting.php\">Server-Hosting</a></li>";
}
eval(
"\$header = \"".$templates->get("header")."\";"); 
In das Template header setzt Du nun {$meineSeite} an der entsprechende Stelle der Toplinks ein.

Achtung: solltest Du auch mit sek. Usergruppen arbeiten, dann müsste die Abfrage noch ein wenig angepasst werden. Die Abfrage oben, bezieht sich nämlich nur auf die primären Usergruppen.

Das bringt mich schon mal weiter Smile

Habe jetzt hier
PHP-Code:
$meineSeite 
das eingetragen.
PHP-Code:
$serverhosting 

Nun {$serverhosting}
In's header Template gesetzt.
Doch erscheint der Punkt jetzt nicht o.O

So siehts in der global.php aus:

PHP-Code:
$checkMyUsergroup = array(1,5,7);
if(!
in_array($mybb->usergroup['gid'], $checkMyUsergroup)){
  
$serverhosting "<li><a href=\"{$mybb->settings['bburl']}/serverhosting.php\">Server-Hosting</a></li>";
}
eval(
"\$header = \"".$templates->get("header")."\";"); 
Benutzt evtl. ein anderes Thema als Default? Wenn ja, hast Du auch das richtige Template geändert?
Ich benutze Apart-1 und da habe ich das Template geändert, andere änderungen funktionieren auch Smile

hier mal das Template:

Code:
                        <ul class="menu top_links">
                        <li><a href="{$mybb->settings['bburl']}/index.php">Forum</a></li>
                                
                <li><a href="{$mybb->settings['bburl']}/portal.php">Portal</a></li>
  <li><a href="[color=#0000ff;]hello.php[/color]" id="[color=#ff0000;]example_menu[/color]">Server-Hosting</a></li>
<div id="[color=#ff0000;]example_menu[/color]_popup" class="popup_menu" style="display: none;">
<div class="popup_item_container"><a href="{$mybb->settings['bburl']}/serverinfo.php" class="popup_item">Server INFO</a></div>
<div class="popup_item_container"><a href="{$mybb->settings['bburl']}/serverhosting.php" class="popup_item">Server Bestellen</a></div>
<div class="popup_item_container"><a href="{$mybb->settings['bburl']}/serverstatus.php" class="popup_item">Server Status</a></div>

</div>
<script type="text/javascript">
// <!--
if(use_xmlhttprequest == "1")
{
new PopupMenu("[color=#ff0000;]example_menu[/color]");
}
// -->
</script>

<li><a href="[color=#0000ff;]hello.php[/color]" id="[color=#ff0000;]egal[/color]">Mitglieder</a></li>
<div id="[color=#ff0000;]egal[/color]_popup" class="popup_menu" style="display: none;">
<div class="popup_item_container"><a href="{$mybb->settings['bburl']}/memberlist.php" class="popup_item">Mitgliederliste</a></div>
<div class="popup_item_container"><a href="{$mybb->settings['bburl']}/showteam.php" class="popup_item">Foren-Team</a></div>
<div class="popup_item_container"><a href="{$mybb->settings['bburl']}/online.php" class="popup_item">Wer ist online?</a></div>
<div class="popup_item_container"><a href="{$mybb->settings['bburl']}/online.php?action=today" class="popup_item">Wer war heute alles online?</a></div>
</div>
<script type="text/javascript">
// <!--
if(use_xmlhttprequest == "1")
{
new PopupMenu("[color=#ff0000;]egal[/color]");
}
// -->
</script>
            
                
                                 <li><a  href="ts3server://85.214.231.102?port=5544">TeamSpeak</a></li>
<li><a href="{$mybb->settings['bburl']}/misc.php?action=help">{$lang->toplinks_help}</a></li>
{$serverhosting} // Wird nicht angezeigt!
                        </ul>
Die Struktur des Templates sieht ja irgendwie verheerend aus. Undecided Hast Du mal einen Link zu Deiner Seite?
Seiten: 1 2 3