Làm thế nào để thêm một tab tác vụ cục bộ vào chế độ xem nút? [đóng cửa]


8

Tôi đang cố gắng thêm một tab bổ sung vào các nút 'xem' và 'chỉnh sửa' của nút.

Mô-đun của tôi được kích hoạt tốt và tôi đã xóa bộ nhớ cache, nhưng tab mới của tôi không xuất hiện. Tôi đang thiếu gì?

/**
* Implements hook_menu().
*/
function add_performance_menu() {
  $items = array();

  $items['node/%node/performance'] = array(
    'title' => 'Add a performance',
    'page callback' => 'add_performance_action',
    'access callback' => TRUE,
    'type' => MENU_LOCAL_TASK,
  );

  return $items;
}

/**
* Page callback.
*/
function add_performance_action() {
  return t('Hello');
}

Tuyến có hoạt động không? Nếu bạn đi đến '/ nút / 1 / hiệu suất', bạn có nhận được "Xin chào" không?
Les Lim

Điểm tốt. Không, nó chỉ hiển thị nút như bình thường.
Pushka

4
Không có gì sai với mã bạn đã đăng, vì vậy hãy xem qua các kiểm tra thông thường: xem tên tệp của tệp mô-đun của bạn để tìm lỗi chính tả, thực sự nhìn vào bảng bộ nhớ cache của bạn để đảm bảo chúng đang xóa, v.v.
Les Lim

1
Xin cảm ơn - yên tâm khi biết đó không phải là mã. Cuối cùng, tôi đã làm cho nó hoạt động bằng cách vô hiệu hóa và kích hoạt lại mô-đun. Có lẽ bởi vì bảng bộ định tuyến được cập nhật khi bật? Dù sao ... nó hoạt động bây giờ.
Pushka

Câu trả lời:



0

Mã của bạn có vẻ tốt nhưng Hãy nhớ xóa bộ nhớ cache Drupal của bạn tại admin / config / Development / Performance sau mỗi thay đổi đối với hook_menu của bạn ở trên.

Cách thay thế xuất hiện trong đầu, sẽ là sử dụng hook_menu_local_t Nhiệm_alter, vì mục menu chúng tôi muốn sử dụng có thể đã tồn tại.

Bạn cũng có thể thử điều này tôi hy vọng nó sẽ giúp bạn:

/**
* Implements hook_menu().
*/
function add_performance_menu() {
  $items = array();
  $items['node/%node/performance'] = array(
    'title' => 'Add a performance',
    'access callback' => 'your_module_access_check',
    'access arguments' => array(1),
    'type' => MENU_LOCAL_TASK,
  );
  return $items;
}
function your_module_access_check($node) {
  if ($node->type == 'page') {
    return TRUE;
  }
  return FALSE;
}

Cảm ơn

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.