Gepostet am:13.05.2009 18:47
#1
Permissions vs. xoopsModuleConfig
13.05.2009 18:47 So schön und nützlich die Berechtigungsverwaltung bei XOOPS auch ist, ressourcenschonend ist sie auf keinen Fall.
Meine xoops_version.php ist mittlerweile ziemlich kompliziert geworden durch unterschiedliche Berechtigungen die regeln was als Submenü im Hauptmenü angezeigt werden soll. Dadurch dass die Berechtigungen abgefragt werden, wird auch jedes Mal eine Datenbankabfrage erzeugt.
Weit weniger (11 in meinem Fall) Datenbankabfragen wird durch die Nutzung des Arrays xoopsModuleConfig gebraucht. Bei jedem Aufruf einer Modulseite wird dieses Array eh eingelesen. Einzig negativer Punkt ist, dass man in der xoops_version.php group_multi benutzen kann, ich aber group_multi nicht sagen, dass Gäste auch mit einbezogen werden sollen.
Lange Rede kurzer Sinn: Gibt es eine bessere Methode der Nutzung der Permissions-Tabelle?
Noch ne Frage: Für meine Zwecke wäre es sinnvoll gewesen, dass hasMain nicht in der Tabelle präfix_modules abgelegt wäre (denn den Wert kann ich zur Laufzeit nicht beeinflussen), sondern auch eine Modulkonfiguration wäre. In meinem speziellen Fall muss ich eine Möglichkeit vorsehen für Gäste den Eintrag im Hauptmenü auszublenden OBWOHL Gäste Modulzugriff haben. Das hängt mit einem Bug in einer Third-Party-Software (Flash-Browser-Plugin) zusammen. Sollte ein Gast Modulseiten per URL anspringen, kann ich ihn dann immer noch zurückschicken. Es sind also allein optische Gründe für folgende Frage: Kann ich auf irgendeine Weise den Menüeintrag ausblenden? Ärks, nein kann ich nicht, da der Menüeintrag auch in anderen Modulen eingeblendet würde. Müssen sich die Nutzer meines Moduls halt mit smarty behelfen. seufz
edit: bzgl. group_multi ist mir noch etwas aufgefallen. Wenn man die Einstellungen für das Modul ändern will ist op = showmod, möchte man die Systemeinstellungen ändern ist op = mod. So weit so einleuchtend, was ich aber nicht verstehe ist warum case group_multi in beiden Fällen voneinander abweicht.
Für Modulpräferenzen gilt folgender Code:
$ele = new XoopsFormSelectGroup($title, $config[$i]->getVar('conf_name'), false, $config[$i]->getConfValueForOutput(), 5, true);
Der dritte Wert bestimmt, ob Gäste in dieser Liste mit aufgenommen werden sollen. In diesem Fall: NEIN. Wieso ist das hier anders geregelt als bei den Systemeinstellungen? Versteh einer die Entwickler...
... is gone with the wind ...