Bagaimana cara menambahkan tab tugas lokal ke tampilan simpul? [Tutup]

8

Saya mencoba menambahkan tab tambahan ke simpul 'tampilan' dan 'edit'.

Modul saya diaktifkan dengan baik dan saya telah membersihkan cache, tetapi tab baru saya tidak muncul. Apa yang saya lewatkan?

/**
* 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');
}
pushka
sumber
Apakah rutenya berfungsi? Jika Anda pergi ke '/ simpul / 1 / kinerja', apakah Anda mendapatkan "Halo" kembali?
Les Lim
Poin yang bagus. Tidak itu hanya menampilkan simpul seperti biasa.
pushka
4
Tidak ada yang salah dengan kode yang Anda poskan, jadi periksa melalui cek biasa: lihat nama file file modul Anda untuk kesalahan ketik, sebenarnya lihat tabel cache Anda untuk memastikan mereka membersihkan, dll.
Les Lim
1
Hai terima kasih - meyakinkan untuk mengetahui bahwa itu bukan kode. Pada akhirnya, saya membuatnya berfungsi dengan menonaktifkan dan mengaktifkan kembali modul. Mungkin karena tabel router diperbarui untuk mengaktifkan? Bagaimanapun ... itu berfungsi sekarang.
pushka

Jawaban:

0

Ketika Anda mengubah hook_menu Anda tidak perlu 'menghapus cache' tetapi ' membangun kembali menu '.

Petrroll
sumber
membangun kembali menu sudah cukup, tetapi menghapus cache termasuk membangun kembali menu.
sanzante
0

Kode Anda terlihat bagus tetapi Ingatlah untuk menghapus cache Drupal Anda di admin / config / development / performance setelah setiap perubahan pada hook_menu Anda di atas.

Alternatif yang muncul di pikiran, akan menggunakan hook_menu_local_tasks_alter, karena item menu yang ingin kita gunakan mungkin sudah ada.

Anda juga dapat mencoba ini, saya harap ini akan membantu Anda:

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

Terima kasih

Kumar Rahul Sankrit
sumber