Frontend 2

Uitleg D (menu besturing vanuit PHP)

Opbouw menu vanuit PHP array met rechten (op menuitems)

Wanneer bepaalde menu-items alleen getoond mogen worden als er ingelogd is, moeten er een paar dingen gebeuren:
  1. Gebruik jouw dialog-box om in te kunnen loggen
  2. Voeg een item rechten toe aan de menu-array
  3. controleer bij opbouw van je menu of er ingelogd en of je dat menu-item moet tonen of niet


PHP voor verwerken van inlog boven inde index.php


In de eerste regel wordt gekeken of er op de knop "btn_inloggen" is gedrukt, zo ja, dan wordt het bestand "wwCheck.php" ge-include.
In de regel daaronder wordt de functie "checkWW" in die fil opgestart die de inlognaam met het wachtwword controleert. Deze zet de sessie variable $_SESSION["ingelogd"] op true of false wordt gezet.
Daaronde wordt op "btn_uitloggen" gecontroleerd en dan de functie "uitloggen()" aangeroepen.

Rechten per menu-item toevoegen


De pagina's pagC, pagD, pagE en hoofdmenuitem admin krijgen de eigenschap "inlog"=>true mee

In de function fillMenu() wordt het menu-item (afhankelijk van inlog) aangemaakt


In de tweede regel wordt gechecked dat als de eigenschap "inlog"=>true bestaat én er is ingelogd, dan wordt de li aangemaakt.

Verschil in rechten

Wanneer je niet zoals hierboven alleen rekening wilt houden of er ingelogd is, maar ook met wat voor rol (bijv. "admin", "user" of "all", dan kan je in je menu-array bij elk item aangeven wat de rechten zijn:


Function fillMenu() wordt bij verschil in rechten iets anders

Voorwaarde voor deze optie is dat bij de inlog niet alleen $_SESSION["ingelogd"] geset wordt, maar ook wordt (voor onderstaand voorbeeld) $_SESSION["recht"] geset = het recht van de ingelogde, bijvoorbeeld "admin" of "user" of als er niet ingelogd is "all".
Nu wordt in de tweede regel met in_array gekeken of $_SESSION["recht"] (bijv. "admin") voorkomt in de array met rechten van dat menu-item.
Log je niet in, dan zie je alleen hoofdmenu 1 met items, log je als "user" in, dan zien de eerste 2 en als "admin" zie je alle hoofdmenu's met hun submenu's.