Posted by grone2013 on June 27, 2016 at 7:50pm
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
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
La diferencia está en cómo su función recibe el argumento
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áginaejemplo/8
se debe llamar la funciónejemplo_conenido
con el argumento8
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ónejemplo_contenido_2
pero el argumento pasa antes por la funciónnode_load()
de tal forma que usted ya recibe el objeto nodo completo.Juan Villegas
micoworker
Diseño y Desarrollo Web
Gracias
Saludos Juan.
Gracias por la explicación. Me quedó muy claro.
De nuevo gracias.