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 17 Stunden 32 Minuten
vor 14 Stunden 27 Minuten
vor 2 Tagen 3 Stunden
vor 17 Stunden 43 Minuten
vor 2 Tagen 4 Stunden
vor 2 Tagen 12 Stunden
vor 2 Tagen 12 Stunden
vor 2 Tagen 13 Stunden
vor 2 Tagen 15 Stunden
vor 2 Tagen 15 Stunden