it-swarm.com.de

Erstellen Sie Registerkarten mit hook_menu () für ein benutzerdefiniertes Modul

seit zwei stunden versuche ich tabs in meinem benutzerdefinierten modul backend zu erstellen.

Ich habe mehrere Vorschläge ausprobiert, konnte aber keinen davon zum Laufen bringen.

das ist mein aktuelles hook_menu ():

    function social_links_menu() {
  $items['admin/config/system/social_links'] = array(
    'title' => 'social_links',
    'description' => 'Configure to fit clients needs',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('social_links_settings'),
    'access arguments' => array('administer site configuration'),
    'file' => 'social_links.admin.inc',
  );

  return $items;
}

Ich möchte einfach zwei Registerkarten mit dem Namen "tab1" und "tab2".

Kann mir jemand ein funktionierendes Beispiel geben? Das sollte wirklich einfach sein, aber im Moment scheint es unmöglich

14
mhmdrupal

Sie müssen einen 'root'-Pfad definieren, der ein normaler Menüpunkt ist, und dann für jede der Registerkarten einen weiteren Punkt hinzufügen. Die erste davon erbt die Eigenschaften des Stammelements und die zweite definiert ihre eigenen Rückrufe.

Kombiniert mit dem MENU_LOCAL_TASK und MENU_DEFAULT_LOCAL_TASK Typkonstanten, Sie sollten die erwarteten Registerkarten erhalten:

function social_links_menu() {
  $items['admin/config/system/social_links'] = array(
    'title' => 'social_links',
    'description' => 'Configure to fit clients needs',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('social_links_settings'),
    'access arguments' => array('administer site configuration'),
    'file' => 'social_links.admin.inc',
  );

  $items['admin/config/system/social_links/tab1'] = array(
    'title' => 'Tab 1',
    'type' => MENU_DEFAULT_LOCAL_TASK,
    'weight' => -10
  );

  $items['admin/config/system/social_links/tab2'] = array(
    'title' => 'Tab 2',
    'type' => MENU_LOCAL_TASK,
    'page callback' => 'some_callback',
    'access arguments' => array('some permission')
  );

  return $items;
}
44
Clive