Drupal entendendo o hook_menu()
Para criarmos menus no drupal, o mesmo tem a função hook_menu, que pode ser implementada em nossos módulos. Seu uso é bem simples:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | function meumodulo_menu() { $items = array(); $items['admin/novo_item'] = array( 'title' => 'Titulo', //Título que vai aparecer 'description' => 'A descrição de nosso Item', //Descrição de nosso Item 'page callback' => 'minhafuncao_page', //A função que iremos chamar 'page arguments' => array('list'), //Parametros que desejamos passar para nossa função 'file' => 'meumodulo.module', //O arquivo onde está sua função 'access arguments' => array('meu modulo access'), //Definimos a permissão de acesso ao Item 'type' => MENU_NORMAL_ITEM, //Definimos que o item é normal ou seja ele ira aparecer no menu de navegação ); $items['admin/novo_item/add'] = array( 'title' => 'Add Titulo', //Título que vai aparecer 'description' => 'A descrição de nosso Item', //Descrição de nosso Item 'page callback' => 'minhafuncao_page', //A função que iremos chamar 'page arguments' => array('add'), //Parametros que desejamos passar para nossa função 'file' => 'meumodulo.module', //O arquivo onde está sua função 'access arguments' => array('meu modulo access'), //Definimos a permissão de acesso ao Item 'type' => MENU_CALLBACK, //Definimos que o item vai ser acessado apenas por URL ou seja por links na página não no menu ); $items['admin/novo_item/list'] = array( 'title' => 'Titulo', //Título que vai aparecer 'description' => 'A descrição de nosso Item', //Descrição de nosso Item 'page callback' => 'minhafuncao_page', //A função que iremos chamar 'page arguments' => array('list'), //Parâmetros que desejamos passar para nossa função 'file' => 'meumodulo.module', //O arquivo onde está sua função 'access arguments' => array('meu modulo access'), //Definimos a permissão de acesso ao Item 'type' => MENU_DEFAULT_LOCAL_TASK, //Definimos que o item é a tarefa principal com isso criamos tabs para navegação e a tab principal é essa ); $items['admin/novo_item/add'] = array( 'title' => 'Add Titulo', //Título que vai aparecer 'description' => 'A descrição de nosso Item', //Descrição de nosso Item 'page callback' => 'minhafuncao_page', //A função que iremos chamar 'page arguments' => array('list'), //Parâmetros que desejamos passar para nossa função 'file' => 'meumodulo.module', //O arquivo onde está sua função 'weight' => 1, //Definimos a posição da tab 'access arguments' => array('meu modulo access'), //Definimos a permissão de acesso ao Item 'type' => MENU_LOCAL_TASK, //Definimos que o item é a tarefa principal com isso criamos tabs para navegação e a tab principal é essa ); $items['admin/novo_item/edit'] = array( 'title' => 'Edit Titulo', //Título que vai aparecer 'description' => 'A descrição de nosso Item', //Descrição de nosso Item 'page callback' => 'minhafuncao_page', //A função que iremos chamar 'page arguments' => array('edit'), //Parâmetros que desejamos passar para nossa função 'file' => 'meumodulo.module', //O arquivo onde está sua função 'access arguments' => array('meu modulo access'), //Definimos a permissão de acesso ao Item 'type' => MENU_CALLBACK, //Definimos que o item vai ser acessado apenas por URL ou seja por links na página não no menu ); $items['admin/novo_item/delete'] = array( 'title' => 'Delete Titulo', //Título que vai aparecer 'description' => 'A descrição de nosso Item', //Descrição de nosso Item 'page callback' => 'minhafuncao_page', //A função que iremos chamar 'page arguments' => array('edit'), //Parâmetros que desejamos passar para nossa função 'file' => 'meumodulo.module', //O arquivo onde está sua função 'access arguments' => array('meu modulo access'), //Definimos a permissão de acesso ao Item 'type' => MENU_CALLBACK, //Definimos que o item vai ser acessado apenas por URL ou seja por links na página não no menu ); $items['listagem'] = array( 'title' => 'Página dos dados', 'page callback' => 'minhafuncao_frontend', 'access callback' => TRUE, //Definimos que o acesso é liberado 'type' => MENU_CALLBACK, ); return $items; } |
Com isso podemos ver que a estrutura é bem simples, o hash passado para o array é a url de acesso, e alguns parâmetros são pré-definidos, assim como constantes que definem o tipo de ação de cada item. Para mais informações acesse a documentação.