crie guias com hook_menu () para o módulo personalizado

14

há duas horas estou tentando criar guias nos meus módulos personalizados de back-end.

Tentei várias sugestões, mas não consegui fazê-las funcionar.

este é o meu hook_menu atual ():

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

Eu simplesmente quero duas guias chamadas: 'tab1' e 'tab2'.

Alguém pode me dar um exemplo de trabalho? Isso deve ser muito simples, mas agora parece impossível

mhmdrupal
fonte

Respostas:

44

Você precisa definir um caminho 'raiz', que é um item de menu normal e, em seguida, adicionar outro item para cada uma das guias. O primeiro deles herdará as propriedades do item raiz e o segundo definirá seus próprios retornos de chamada.

Combinado com as constantes tipo MENU_LOCAL_TASKe MENU_DEFAULT_LOCAL_TASK, você deve obter as guias que espera:

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
fonte
2
obrigado pela lição clive! Boa explicação. Você acabou de salvar-me algumas horas :)
mhmdrupal