creare schede con hook_menu () per il modulo personalizzato


14

da due ore sto cercando di creare schede nel mio backend di moduli personalizzati.

Ho provato i suggerimenti dei vari ma non sono riuscito a farli funzionare.

questo è il mio hook_menu attuale ():

    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;
}

Voglio semplicemente chiamare due schede: 'tab1' e 'tab2'.

Qualcuno può darmi un esempio funzionante? Questo dovrebbe essere davvero semplice, ma in questo momento sembra impossibile

Risposte:


44

È necessario definire un percorso 'root' che sia una normale voce di menu, quindi aggiungere un altro elemento per ciascuna delle schede. Il primo erediterà le proprietà dell'elemento radice e il secondo definirà i propri callback.

Combinato con le costanti di tipo MENU_LOCAL_TASKe MENU_DEFAULT_LOCAL_TASK, dovresti ottenere le schede che ti aspetti:

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;
}

2
grazie per la lezione Clive! Buona spiegazione Mi hai appena salvato un paio d'ore :)
mhmdrupal,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.