Hauptmenüpunkte für Gäste ausblenden

Bitte in den Beiträgen keine externe Bilder einbinden, sondern nur die Dateianhänge verwenden.
Vielen dank.
  • Manchmal möchte man den Hauptmenüpunkten eine Berechtigung vergeben, wo der Menüpunkt für Gäste nicht Angezeigt werden soll. Leider bietet das WCF dazu keine Möglichkeit.

    Dazu öffnen wir phpMyAdmin und gehen in die Tabelle wcf1_page_menu_item

    Dort muss in der Spalte permissions eine Berechtigung rein, die für Gäste nicht erlaubt ist.

    Beispielsweise die Option das Gäste die Mitgliederliste nicht sehen dürfen (Gruppe Jeder beachten), dann könnte man in der Tabelle beim jeweiligen Menüpunkt in der Spalte permissions die Option/Berechtigung WCF2.0 user.membersList.canView / WCF2.1: user.profile.canViewMembersList einfügen.

    Danach wieder im ACP - System - Wartung - Cache den Cache leeren.

    Liebe Grüße
    Tino

    wbb-elite.png

    Telefonieren zwei Informatiker. Fragt der eine: „Und, wie ist das Wetter bei euch?“ „Caps Lock.“ „Häh?“ „Na, shift ohne Ende…“

  • Dies geht nicht über diese Tabelle dafür müsste eine passender Controller geschrieben werden der prüft ob der User eingeloggt ist.

    Der müsste dann in etwa so aussehen.
    Wenn das für den Benutzer ausgeblendet werden soll

    Wenn das für den Gast ausgeblendet werden soll


    Der Pfad muss dann jeweils in die Spalte className eingetragen werden z.b. so wcf\system\menu\page\UserMainPageMenuItemProvider oder für den Gast wcf\system\menu\page\GastMainPageMenuItemProvider

  • Klar ist es Okay hier auch Fragen zu stellen.

    Klar, geht das auch für Registrierte Benutzer. Aber nur für die Menüpunkte.

    Allerdings muss es ein Recht sein, welches Gäste haben, aber Registrierte nicht. Lass Dir mal irgendwas einfallen, welches Benutzergruppenrecht und ich suche dir dann den Eintrag heraus, der bei permissions eingetragen werden muss.

    Aber @Cyperghost hat ja die passende Lösung geschrieben :)

    Liebe Grüße
    Tino

    wbb-elite.png

    Telefonieren zwei Informatiker. Fragt der eine: „Und, wie ist das Wetter bei euch?“ „Caps Lock.“ „Häh?“ „Na, shift ohne Ende…“

  • Erst mal Danke Euch beiden. Wie darf ich das jetzt verstehen, geht es oder geht es nicht? Ihr widersprecht Euch da ein wenig :D

    Ich verstehe das jetzt so, dass es zwar möglich wäre - sofern ein Gast ein Recht hat was ein User nicht hat. Da fällt mir keines ein, denn User haben bei uns prinzipiell mehr Rechte als Gäste.

    @Cyperghost Deine Codes per Template Hinzufügen im ACP anlegen, richtig? Das mit dem Pfad habe ich noch nicht ganz verstanden. Es geht also nicht um das was in der Browserzeile steht sondern um die Struktur im FTP richtig?

  • Also es geht schon, jedoch nicht so einfach.
    Den Code musst du in eine PHP Datei rein "packen" und dann in das passenden verzeichnis hochladen.
    Der Namespace wcf\system\menu\page steht für das Verzeichnis wcf/lib/system/menu/page

    Und das mit den Benutzergruppen rechte wäre die andre Möglichkeit welche aber aus meiner Sicht sehr sehr selten bis garnicht eintreten :)

  • Danke. Nun aber für mein Verständnis. Das mit der PHP-Datei verstehe ich, mit dem Verzeichnis nicht.

    Woher weiß das System denn welchen Punkt er ausblenden soll und welchen nicht?

    Wenn ich also deinen Code kopiere und in wfc/lib/system/menu/page ablege im FTP woher weiß die Forensoftware dann was sie tun soll?

  • Jetzt hab ich es erst verstanden. className hat sich auf die DB bezogen... ich Dummerchen. Sorry!

    Edit: Hmm klappt nicht. Kann es daran liegen dass die Seite vom CMS kommt und ich den Pfad dort nutzen muss? Hab das jetzt so gemacht wie beschrieben. Im eingeloggten Zustand bekomme ich die Startseite aber weiterhin angezeigt.

  • Hab deine beiden Codes in php und ins entsprechende Verzeichnis geladen. In der DB dann der CMS Page den Gast-Controller zugewiesen unter className. Verzeichnispfad habe ich von deinem Beispiel übernommen.

    Kann es sein, dass ich irgendwo noch die Ausblendung des Menüpunktes einstellen muss? Oder ist das in dem Controller schon hinterlegt?

  • Das macht der Controller.
    Sofern die userID == 0 ist, das heißt wenn der Aktuelle Benutzer ein Gast ist, wird der Punkt angezeigt, ansonsten nicht.
    Bei dem User Controller ist es genau anders herum, sofern userID != 0, das heißt der Benutzer eingeloggt ist wird der Controller angezeigt, ansonsten nicht.

  • Ich habe deinen Controller mal auf die Mitgliederliste angewendet. Dort funktioniert es. Also muss es am Fireball CMS liegen. Ich probiere mal weiter rum und berichte.

    Edit: Wenn ich den Pfad von wcf/....... auf cms/....... umstelle bei dem className bekomme ich anschließend einen Error, wenn ich im ACP den Cache leere. Website ist dann nicht mehr aufrufbar und das ACP hängt sich auch weg. Erst wenn ich die DB wieder ändere und aufm FTP den Cache manuell leere funktioniert es wieder.

  • Auch das funktioniert nicht :thumbup: Hab jetzt alle Benutzergruppen nachgesehen, ob irgendwo das Recht noch vergeben war. Bis auf Gäste ist der Haken raus, angezeigt wird es trotzdem. Aber ich bin auch einfach zu doof... Das CMS hat ja n eigene Berechtigung, wo man es einstellen kann wer was sieht....

    Mal n Grundsatzfrage: Wenn ich Gäste/Jeder/ Registrierte Nutzer einstelle, muss ich eigentlich noch die selbst erstellten Gruppen auch mit einstellen?