Seite 1 von 2
Berechtigungen in PHP für eigene eingebundene Seite
Verfasst: 01.05.2013 17:00
von HabNurNeFrage
Hi,
beim Basteln einer Seite für Moderatoren und Admins für Schnellzugriffe auf verschiedene Funktionen...
Was fehlt hier noch, damit die Funktion erfolgreich auf acl_get zugreifen kann?
Code: Alles auswählen
<?php
if (!defined('IN_PHPBB'))
{
exit;
}
function generate_admin_content ($text)
{
global $user, $auth, $config;
if(!$auth->acl_get('a_') || (!$auth->acl_get('m_'))) //Wenn Nutzer nicht Mod oder Admin ist
{
// Für User und Gäste
}
if ($auth->acl_get('a_') || ($auth->acl_get('m_'))) // Wenn Nutzer Mod oder Admin ist
{
// Nur für Admins und Mods
}
return $text;
}
?>
Die Berechnung für Gäste funktioniert so, aber für User wird auch der "nur für Admins" Teil berechnet.
Session-Management ist in der Datei enthalten, die diese hier einbindet...
LG
Re: Berechtigungen in PHP für eigene eingebundene Seite
Verfasst: 01.05.2013 17:47
von Miriam
Das sollte dann prinzipiell so passen.
Du brauchst aber imho hier die globalen Variablen
$user
und
$config
nicht. Auch würde ich
$text
mit
false
als Standardwert vorbelegen. Zumal diese Variable in der Funktion garnicht auftritt.
Du solltest den Code aber etwas übersichtlicher schreiben. Bspw. so:
Code: Alles auswählen
function generate_admin_content($text = false)
{
global $auth;
if ($auth->acl_get('a_') || ($auth->acl_get('m_'))) // Wenn Nutzer administrative oder Moderator-Rechte hat
{
print "admin content here";
}
else
{
print "no admin content available";
}
}
Aber das ist natürlich Dir überlassen.
Du könntest das ganze auch mit Template Variablen "erschlagen"
Code: Alles auswählen
<!-- IF U_ACP or U_MCP -->
Hier steht der Text für Admins und Moderatoren
<!-- ELSEIF -->
Text für alle anderen
<!-- ENDIF -->
Re: Berechtigungen in PHP für eigene eingebundene Seite
Verfasst: 01.05.2013 20:15
von HabNurNeFrage
Hi,
erneut vielen Dank
Die Template-Variablen nutze ich auch, allerdings soll durch diese Funktion der selbe String laufen, wobei dann unterschiedliche Ergebnisse für Admins und User erzielt werden sollen. Hintergrund: Admins und Mods sollen keine Beitragsteile entfernen, sondern die zu entfernenden Teile mit einem speziellen Admin-bbCode maskieren. Hinterher sollen diese Beitragsteile dann für Mos und Admins weiterhin sichtbar bleiben, während User und Gäste nur eine Meldung "entfernt durch die Boardmoderation" angezeigt bekommen. Daher scheiden die T-Varis hier aus.
Mit den T-Varis werden die spezial Moderations-Menüs vor unbefugter Anzeige geschützt...
Allerdings ist das IF -> ELSE Konstrukt wirklich etwas aufgeräumter.
Bei den Globals war ich mir nicht sicher mit $config, $user wird weiter unten dann aber noch verwndet
$config brauche ich nur, wenn ich ACP-Einstellungen checken will?
LG
Re: Berechtigungen in PHP für eigene eingebundene Seite
Verfasst: 01.05.2013 20:23
von Miriam
Diese Variable enthält im Wesentlichen die Daten der config Tabelle. Lass sie Dir doch mal mit [php:var_dump] ausgeben.
Re: Berechtigungen in PHP für eigene eingebundene Seite
Verfasst: 01.05.2013 20:55
von HabNurNeFrage
Hi.
Coole Funktion...
LG
Re: Berechtigungen in PHP für eigene eingebundene Seite
Verfasst: 02.05.2013 22:50
von HabNurNeFrage
Hi,
so, alles läuft jetzt so, wie ich mir das vorstelle.
Aber warum lässt es sich nicht mit AutoMod intallieren?
In der XML steht es richtig, aber AutoMod performt es an einer ganz anderen Stelle
Sowohl mit Replace-with als auch mit Add before macht es Probleme.
Find ist
?>
Schon jemand so ein Problem gehabt?
LG
Re: Berechtigungen in PHP für eigene eingebundene Seite
Verfasst: 02.05.2013 22:55
von Miriam
Wie sieht denn die XML Datei aus?
Re: Berechtigungen in PHP für eigene eingebundene Seite
Verfasst: 02.05.2013 22:57
von HabNurNeFrage
Re: Berechtigungen in PHP für eigene eingebundene Seite
Verfasst: 02.05.2013 23:11
von Miriam
\includes\functions.php (2 hits)
Line 3469: '#<.*?>#s', <<<--- Da isser, der Übeltäter.
Line 4965: ?> <<<--- Aber der soll es sein.
Re: Berechtigungen in PHP für eigene eingebundene Seite
Verfasst: 02.05.2013 23:13
von HabNurNeFrage

Yippieh
Genau da hat er es auch immer hingeschmissen...
Das bekomme ich gefixed - DANKÖÖÖÖ
Nachtrag: Es funktioniert...
