Mehrere Seiten unter einem dynamischen Pfad
Wenn verschiedene 'access callbacks' oder 'page callbacks' auf dem gleichen dynamischen Pfad aufgerufen werden sollen - beispielsweise node/123 oder node/123/foo je nach Nodetyp - stösst man auf das Problem, dass das Menüsystem nur einen Eintrag für node/%/foo enthalten kann. Beispielsweise soll ein Pfad, der auf article und story Typen reagieren soll, registriert werden. In diesem Fall wird node/%mymodule_article_story registriert.
<?php
function mymodule_article_story_load($arg) {
if (!is_numeric($arg)) {
return FALSE;
}
if ($node = node_load($arg)) {
if ($node->type == 'article' || $node->type == 'story') {
return $node;
}
}
return FALSE;
}
?>Danach sollen die 'page callbacks' aufgerufen werden, so dass wir einen kleinen Dispatcher schreiben:
<?php
function mymodule_page($node) {
// $node->type kann nur 'node' oder 'article' sein.
return $node->type == 'article' ? mymodule_page_article($node) : mymodule_page_story($node);
}
?>Nun fehlt nur noch die Definition des Menüeintrags:
<?php
$items['node/%mymodule_article_story/foo'] = array(
'title callback' => 'mymodule_title_callback';
'title arguments' => array(1),
'page callback' => 'mymodule_page',
'page arguments' => array(1),
'access callback' => 'node_access',
'access arguments' => array(1),
);
?>- Anmelden oder Registrieren um Kommentare zu schreiben

Neue Kommentare
vor 1 Tag 4 Stunden
vor 1 Tag 23 Stunden
vor 2 Tagen 17 Stunden
vor 1 Woche 3 Stunden
vor 1 Woche 6 Stunden
vor 1 Woche 4 Tagen
vor 1 Woche 4 Tagen
vor 1 Woche 4 Tagen
vor 4 Wochen 1 Tag
vor 4 Wochen 1 Tag