Rutas de menú

grone2013's picture

Saludos amigos del Grupo.

Creando un item de menú con el hook_menu, a la hora de establecer la ruta quiero saber la diferencia entre "%node" y "node/%"

Gracias

Comments

juankvillegas's picture

Digamos que usted crea el siguiente item en el hook_menu:

<?php
  $items
['ejemplo/%'] = array(
   
'title' => 'Ejemplo 1',
   
'page callback' => 'ejemplo_contenido',
   
'page arguments' => array(1),
   
'access callback' => TRUE,
   
'type' => MENU_CALLBACK,
  );
?>

Y en otra parte tiene una función como:
<?php
 
function ejemplo_contenido($nid) {
   
$node = node_load($nid);
   
// Esta función recibe el id del nodo tal cual está en la URL.
 
}
?>

Entonces con page callback está diciendo que cuando llamen a la página ejemplo/8 se debe llamar la función ejemplo_conenido con el argumento 8

Ahora, si tiene este otro elemento en el hook_menu:

<?php
  $items
['otro_ejemplo/%node'] = array(
   
'title' => 'Ejemplo 2',
   
'page callback' => 'ejemplo_contenido_2',
   
'page arguments' => array(1),
   
'access callback' => TRUE,
   
'type' => MENU_CALLBACK,
  );
?>

Y en otra parte tiene una función como:
<?php
 
function ejemplo_contenido_2($node) {
   
// Esta función ya recibe el $node, ya el argumento pasó por node_load().
 
}
?>

Entonces cuando llamen a la página otro_ejemplo/8 se debe llamar la función ejemplo_contenido_2 pero el argumento pasa antes por la función node_load() de tal forma que usted ya recibe el objeto nodo completo.

Gracias

grone2013's picture

Saludos Juan.

Gracias por la explicación. Me quedó muy claro.

De nuevo gracias.

Latin America

Group categories

Latin America

Group events

Add to calendar

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week