tạo các tab với hook_menu () cho mô-đun tùy chỉnh


14

kể từ hai giờ tôi đang cố gắng tạo các tab trong phần phụ trợ mô-đun tùy chỉnh của tôi.

Tôi đã thử các đề xuất của Severals nhưng không thể khiến bất kỳ ai trong số họ làm việc.

đây là hook_menu () hiện tại của tôi:

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

Tôi chỉ đơn giản muốn hai tab được gọi là: 'tab1' và 'tab2'.

Ai đó có thể cho tôi một ví dụ làm việc? Điều này thực sự đơn giản, nhưng ngay bây giờ có vẻ như không thể

Câu trả lời:


44

Bạn cần xác định đường dẫn 'root' là một mục menu bình thường, sau đó thêm một mục khác cho mỗi tab. Cái đầu tiên trong số này sẽ kế thừa các thuộc tính của mục gốc và cái thứ hai sẽ xác định các cuộc gọi lại của chính nó.

Kết hợp với các hằng số MENU_LOCAL_TASKMENU_DEFAULT_LOCAL_TASKloại, bạn sẽ nhận được các tab bạn mong đợi:

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
cảm ơn vì bài học clive! Lời giải thích hay. Bạn vừa cứu tôi được vài giờ :)
mhmdrupal
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.