Übersicht des Menüsystems
In hook_menu() definierst Du ein Menü-Array, dass ein assoziatives Array ist. Die Schlüssel sind Pfade von Drupal (mit einer Besonderheit; siehe wildcards) und die Werte sind die Menüpunkte. Ein Menüpunkt ist dabei wiederum ein assoziatives Array. Ein typischer Eintrag sieht folgendermassen aus:
<?php
$items['node/%node'] = array(
'title' => 'View',
'page callback' => 'node_page_view',
'page arguments' => array(1),
'access callback' => 'node_access',
'access arguments' => array('view', 1),
'type' => MENU_CALLBACK,
);
?>
Der "Menu builder" sammelt diese, wendet die Vererbungsregeln darauf an und speichert jeden einzelnen Eintrag als Zeile in der Menütabelle.
Wenn nun eine Seite aufgerufen wird, erzeugt das Menüsystem den übergeordneten Eintrag des gegebenen Pfades und sucht in der Datenbank nach dem Menüeintrag, der am besten zu dem Pfad passt. Daraufhin ruft es denn entsprechenden access callback auf, um die Berechtigungen auf diesen Eintrag zu ermitteln. Wenn das alles ermittelt wurde, wird die Verarbeitung an den "page callback" weitergereicht.
Das System stellt fest, dass ein Pfad nicht gefunden werden kann, wenn kein zugehöriger Eintrag in der Datenbank gefunden oder die node nicht geladen werden kann (siehe see Ersetzung dynamischer Argumente). Der Status "Zugriff verweigert" wird ausschliesslich durch die access callback bzw. Argumente ermittelt.
Die "page callback" Funktion muss einen Wert ungleich NULL
zurückgeben, wenn irgendeine Ausgabe im Browser unter einer gegebenen URL angezeigt werden soll. Wenn die Funktion keinen Wert oder NULL
zurückgibt, rendert Drupal nur den Inhalt, der durch die Funktion drupal_page_footer
erzeugt wurde (was wiederum der erstellte Ihnalt der hook_exit Implementierung aller Module ist).
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 16 Stunden 6 Sekunden
vor 16 Stunden 9 Minuten
vor 16 Stunden 23 Minuten
vor 1 Tag 36 Minuten
vor 1 Tag 58 Minuten
vor 1 Tag 1 Stunde
vor 1 Tag 3 Stunden
vor 1 Tag 3 Stunden
vor 2 Tagen 2 Stunden
vor 2 Tagen 3 Stunden