Argument de page générique dans hook_menu() ne fonctionne pas


0

J'essaie de créer un élément de menu de type pagination qui permettrait à l'utilisateur de voir le contenu plus ancien/plus récent. Le caractère générique représenterait le multiplicateur qui définirait la plage à partir de laquelle le contenu est récupéré. Ceci est le tableau créé dans mon hook_menu() mise en œuvre:

$items['cars/%'] = array(
    'title' => 'cars', 
    'page callback' => 'cars_car_view', 
    'page arguments' => 'page', 
    'access callback' => TRUE, 
); 

et ceci est ma page fonction de rappel:

function cars_car_view($page) { 
    print $page; 

    // Code 
} 

Mais lorsque j'imprime la variable $ page, que "voitures" est imprimé, plutôt que le nombre. J'ai lu la documentation sur hook_menu, mais je n'arrive pas à comprendre ce que je fais de mal ou ce que je devrais faire à la place. De l'aide?

3

Vous devez utiliser array dans les arguments de page. array(0) fait référence aux voitures array(1) fait référence au caractère générique

$items['cars/%'] = array(
    'title' => 'cars', 
    'page callback' => 'cars_car_view', 
    'page arguments' => array(1), 
    'access callback' => TRUE, 
); 
  0

j'avais utilisé le tableau() dans les arguments de la page, mais il ne fonctionnait pas non plus. J'ai finalement réalisé que le problème était que j'utilisais la même fonction de rappel de page qu'une autre page qui n'acceptait pas les arguments. L'un devait être une page d'atterrissage (égale essentiellement à des voitures/0). Le problème a été résolu en créant deux fonctions identiques, mais une qui accepte les arguments et une autre qui n'en accepte pas. J'adorerais une solution plus élégante si elle existe. 16 févr.. 152015-02-16 16:19:43


0

Si vous voulez obtenir l'argument depuis l'url, vous pouvez utiliser la fonction arg() ou drupal_get_query_parameters().