buat tab dengan hook_menu () untuk modul khusus

14

sejak dua jam saya mencoba membuat tab di backend modul khusus saya.

Saya sudah mencoba beberapa saran tetapi tidak dapat membuatnya bekerja.

ini hook_menu saya saat ini ():

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

Saya hanya ingin dua tab yang disebut: 'tab1' dan 'tab2'.

Adakah yang bisa memberi saya contoh kerja? Ini seharusnya sangat sederhana, tetapi saat ini tampaknya mustahil

mhmdrupal
sumber

Jawaban:

44

Anda perlu mendefinisikan jalur 'root' yang merupakan item menu normal, dan kemudian menambahkan item lain untuk masing-masing tab. Yang pertama akan mewarisi properti dari item root, dan yang kedua akan menentukan callbacknya sendiri.

Dikombinasikan dengan konstanta MENU_LOCAL_TASKdan MENU_DEFAULT_LOCAL_TASKketik, Anda harus mendapatkan tab yang Anda harapkan:

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;
}
Clive
sumber
2
terima kasih untuk pelajaran pelajaran! Penjelasan yang bagus. Anda baru saja menyelamatkan saya beberapa jam :)
mhmdrupal