Drupal 7: Node einen neuen Tab hinzufügen

Um eine Aktion im Kontext einer Node auszuführen, bietet es sich an, dieser Node einen neuen Tab hinzuzufügen. Dieser erscheint dann neben den vorhandenen Tabs »Bearbeiten« und »Ansicht«. Für Besucher der Seite ohne Bearbeitungsrechte erscheint dann nur der neue Tab.

Am besten erstellt man ein seitenspezifisches Modul und verwendet hook_menu:

function MODULNAME_menu() {
    $items['node/%node/custom_action'] = array(
        'title' => 'Custom Action',  
        'page callback' => 'MODULNAME_order',
        'access arguments' => array('access content'),
        'type' => MENU_LOCAL_TASK
    );
    return $items;
}

function MODULNAME_order() {
    return 'Works';
}

Nachdem man den Cache geleert hat, erscheint der Tab bei allen Nodes. Über ein access-callback könnte man es noch für bestimmte Node-Typen einschränken.