W kursie tworzenia modułów przedstawiam jak poprawnie zaimplementować hook_menu(), aby dodawać odpowiednie ścieżki do Drupala 7. W przypadku standardowych ścieżek jest to bardzo proste, nieco bardziej specyficzne, jeśli na stronach administracyjnych chcemy dodać nową podsekcję menu. Poniżej przykład dla standardowych elementów w admin/config


Dwa standardowe elementy zaznaczone na czerwono: People i System
/**
 * Implements hook_menu().
 */
function myblog_menu() {
  $items = array();

  $items['admin/config/myblog'] = array(
      'title' => 'Myblog section',
      'access arguments' => array('administer site configuration'),
      'type' => MENU_NORMAL_ITEM,
  );
  $items['admin/config/myblog/settings'] = array(
      'title' => 'Myblog settings',
      'description' => 'Settings form main my blog module.',
      'page callback' => 'myblog_section_page',
      'access arguments' => array('administer site configuration'),
      'type' => MENU_NORMAL_ITEM,
  );
 
  return $items;
}

/**
 * Helper function preventing fatal error.
 */
function myblog_section_page() {
  return;
}

W elemencie, który definiuje naszą sekcję muszą znaleźć się jedynie trzy elementy:

  • title - będący oczywiście tytułem sekcji
  • access arguments - określający kto w ogóle może mieć do sekcji dostęp; przyznane uprawnienie będzie automatycznie dziedziczone we wszystkich elementach, które zostaną dodane do konkretnej sekcji, chyba że w którymś z elementów wartość access_argument zostanie nadpisana
  • type - typ elementu; jest to faktycznie zwykły wpis do menu, dlatego na przykładzie użyta jest stała MENU_NORMAL_ITEM

Dodana nowa sekcja myblog section z jednym elementem




Dodaj komentarz