Anatomie von hook_menu
Eingetragen von stBorchert (6003) am 16.01.2009 - 14:10 Uhr in
Dies ist eine Übersetzung der Seite Anatomy of hook_menu auf drupal.org.
<?php
$items['mypath/%object'] = array(
'title' => 'Page title',
'title arguments' => array(),
'title callback' => 't',
'description' => 'Your description goes here.',
'access callback' => 'object_check_access',
'access arguments' => array(1),
'page arguments' => array(1),
'page callback' => 'object_display',
'block callback' => '',
'menu_name' => NULL,
'tab_parent' => NULL,
'tab_root' => NULL,
'file' => 'name_of_file.inc',
'file path' => drupal_get_path('module', 'name_of_module_goes_here'),
'weight' => 0,
'type' => MENU_NORMAL_ITEM,
);
function
object_load() {}
function object_to_arg() {}
?>
Beispiel:
<?php
$items['admin/settings/admin'] = array(
'title' => 'Administration theme',
'description' => 'Settings for how your administrative pages should look.',
'position' => 'left',
'page callback' => 'drupal_get_form',
'page arguments' => array('system_admin_theme_settings'),
'access arguments' => array('administer site configuration'),
'block callback' => 'system_admin_theme_settings',
'file' => 'system.admin.inc',
);
?>
- Anmelden oder Registrieren um Kommentare zu schreiben
Zusammenhang verdeutlichen
am 16.01.2009 - 18:31 Uhr
Es wäre gut, den Zusammenhang zu verdeutlichen, in den die Anweisungen gesetzt werden sollen. Grade wenn man neu in die Modulentwicklung mit Drupal (und teilweise deshalb auch in PHP) einsteigt, ist es nicht ersichtlich, das
<?php
function example_menu() {
$items['mypath/%object'] = array(
// ...
);
function object_load() {}
function object_to_arg() {}
}
?>
keinen Sinn macht. Besser finde ich z.B.:
<?php
/**
* Implementiert hook_menu().
*/
function example_menu() {
$items['mypath/%foo'] = array(
// ...
);
return $items;
}
/**
* Ladet ein Objekt vom Typ foo anhand seiner ID.
*
* @param int $id Die ID des zu ladenden Objektes
* @return stdClass Das geladene Objekt
*/
function foo_load($id) {
// TODO: $foo aus der Datenbank auslesen
return $foo;
}
?>
--
Hallo Zusammen ich habe mal
am 30.08.2010 - 10:56 Uhr
Hallo Zusammen
ich habe mal ein kleines Tutorial geschrieben wie man einen einfachen Menüeintrag erzeugt.
Vielleicht hilft er dem einen oder anderen weiter ;-)
hook_menu() Teil1 - Einen einfachen Menüeintrag erstellen
Greetz Mike