Menu's
Menusysteem
Principe
Het menusysteem baseert op een XML-bestand, waarin de structuur van de menu's is vastgelegd. Om te garanderen, dat het XML-bestand
correct is, heb ik een XML-schema gedefinieerd, waarmee het XML bestand gevalideerd kan worden,
bijvoorbeeld met Eclipse.
Elk hoofd- en submenu heeft de volgende structuur:
<MainMenuEntry> / <SubMenuEntry>
<LinkName>my_data</LinkName>
<PageTitle>edit_my_data</PageTitle>
<URI>main.php</URI>
<UserRight>edit_own_values</UserRight>
</MainMenuEntry> / </SubMenuEntry>
Element |
Betekenis |
LinkName |
Link tekst in het menu |
PageTitle |
Titel van de pagina die met de link opgeroepen wordt |
URI |
Link naar de te openen pagina |
UserRight |
Gebruikerrecht dat nodig is zodat deze menutekst zichtbaar te maken |
Database-menu's
Naast vast gedefinieerde menu's kunnen ook menu's uit de inhoud van database-tabellen gegenereerd worden. Hiermee wordt het bijvoorbeeld
mogelijk om menu's voor elke commissie of voor elke status te genereren.
<DatabaseEntry>
<DatabaseTable>committee</DatabaseTable>
<DatabaseField>name</DatabaseField>
<URI>view_persons.php</URI>
<UserRight>committee.*</UserRight>
</DatabaseEntry>
Element |
Betekenis |
DatabaseTable |
Naam van de databasetabel |
DatabaseField |
Naam van het database veld, waarvan de elementen als menuëlementen getoond worden |
URI |
Link naar de te openen pagina. Deze pagina wordt opgeroepen met de tabel- en veldnaam en de veldinhoud als
parameter. In dit geval zou bijvoorbeeld de link link view_persons.php?committee.name=board getoond
worden. |
UserRight |
Er zijn twee mogelijkheden, hier de rechten voor deze menu's te definiëren. De eerste mogelijkheid is net zoals
bij alle andere menu's: het recht om alle uit deze databasetabel gegenereerde menuvelden te zien, wordt hier
ingevuld. Het is echter ook mogelijk, per menuveld een recht te definiëren. Hiervoor moet hier
DatabaseTable.DatabaseField.*, dus in dit geval committee.name.* ingevuld worden. Dan wordt
gekeken, of het recht DatabaseTable.DatabaseField.Value voorhanden is, in dit geval bijvoorbeeld
committee.name.board. Alleen dan wordt dit menu getoond. |
Om de navigate te vereenvoudigen, wordt niet altijd de complete menustructuur getoond. Te zien zijn alle hoofdmenu's, maar alleen die
ondermenu's van de afdeling waar de gebruiker actueel is.
Menustructuur
Actueel zijn de volgende hoofdmenu's gedefinieerd:
- Startpagina
- Mijn gegevens
- Personen bekijken
- Verenigingsinformatie
- Beheer
Startpagina
Op deze pagina is direct te zien, welke rechten de gebruiker heeft.
Mijn gegevens
Hier kan de gebruiker zijn informatie inzien en ook direct veranderen.
Personen bekijken
Hier befinden zich alle lijsten met leden, niet-leden en andere personen, gesorteerd naar functie, status, enz.
Verenigingsinformatie
Twee pagina's met informatie voor leden en informatie voor bestuursleden.
Beheer
In dit menu kunnen alle instellingen van Vereniging 2.0 bekeken en veranderd worden.
|