utwórz tabulatory za pomocą hook_menu () dla niestandardowego modułu

14

od dwóch godzin próbuję utworzyć zakładki w moim niestandardowym module zaplecza.

Wypróbowałem sugestie dotyczące odcinków, ale nie udało mi się uzyskać żadnej z nich.

to jest mój obecny 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;
}

Chcę po prostu dwie karty o nazwie: „tab1” i „tab2”.

Czy ktoś może dać mi działający przykład? To powinno być naprawdę proste, ale w tej chwili wydaje się niemożliwe

mhmdrupal
źródło

Odpowiedzi:

44

Musisz zdefiniować ścieżkę „root”, która jest normalnym elementem menu, a następnie dodać kolejny element dla każdej karty. Pierwszy z nich odziedziczy właściwości elementu głównego, a drugi określi własne wywołania zwrotne.

W połączeniu ze stałymi typu MENU_LOCAL_TASKi MENU_DEFAULT_LOCAL_TASKpowinny pojawić się zakładki, których oczekujesz:

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
źródło
2
dzięki za clive lekcji! Dobre wytłumaczenie. Właśnie zaoszczędziłeś mi kilka godzin :)
mhmdrupal,