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.