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

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

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.