Düğüm görünümüne yerel görev sekmesi nasıl eklenir? [kapalı]


8

'Görünüm' ve 'düzenle' düğmelerine fazladan bir sekme eklemeye çalışıyorum.

Modülüm iyi etkinleştirildi ve önbelleği temizledim, ancak yeni sekmem görünmüyor. Neyi kaçırıyorum?

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

Rota çalışıyor mu? '/ Node / 1 / performance' konumuna giderseniz, "Merhaba" ifadesini geri alır mısınız?
Les Lim

İyi bir nokta. Hayır, sadece düğümü her zamanki gibi görüntüler.
pushka

4
Gönderdiğiniz kodda yanlış bir şey yok, bu yüzden normal kontrolleri gözden geçirin: yazım hatası için modül dosyanızın dosya adına bakın, temizlendiklerinden emin olmak için önbellek tablolarınıza bakın, vb.
Les Lim

1
Hey teşekkürler - kod olmadığını bilmek güven verici. Sonunda, modülü devre dışı bırakarak ve yeniden etkinleştirerek çalıştırabildim. Belki yönlendirici tablosu etkinleştirildiğinde güncellendiğinden? Her neyse ... şimdi çalışıyor.
pushka

Yanıtlar:



0

Kodunuz iyi görünüyor ancak yukarıdaki hook_menu'nuzda yapılan her değişiklikten sonra admin / config / development / performance dizinindeki Drupal önbelleklerinizi temizlemeyi unutmayın.

Akla gelen alternatif, hook_menu_local_tasks_alter kullanmak olacaktır, çünkü kullanmak istediğimiz menü öğesi zaten mevcut olabilir.

Bunu da deneyebilirim umarım size yardımcı olur:

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

Teşekkürler

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.