Aquí está una más robusta manera de conseguir el ID del nodo:
<?php
// Check that the current URL is for a specific node:
if(arg(0) == 'node' && is_numeric(arg(1))) {
return arg(1); // Return the NID
}
else { // Whatever it is we're looking at, it's not a node
return NULL; // Return an invalid NID
}
?>
Este método funciona incluso si tiene una ruta personalizada para el nodo w con los módulos path
y/o pathauto
.
Sólo como referencia, si no lo hace a su vez en el módulo path
, las direcciones URL por defecto que genera Drupal son llamados "rutas del sistema" en la documentación. Si do activa el módulo path
, puede establecer rutas personalizadas que se denominan "alias" en la documentación.
Como siempre tengo encendido el módulo path
, una cosa que me confundió al principio fue si alguna vez fue posible para la función arg
devolver parte de un alias en lugar de parte de la ruta del sistema.
Como resultado, la función arg
siempre devolverá una ruta del sistema porque the arg
function is based on $_GET['q']
... Después de un poco de investigación, parece que $_GET['q']
siempre devolverá una ruta del sistema.
Si desea obtener la ruta desde la solicitud de página real, necesita usar $_REQUEST['q']
. Si el módulo path
está habilitado, $_REQUEST['q']
puede devolver un alias o una ruta del sistema.
Estoy un poco confundido con respecto a lo que quiere decir con 'ver' aquí. ¿Quiere decir vistas desde el módulo de vistas? Si es así, ¿por qué solo tienen una ID de nodo? (La mayoría de las vistas son colecciones de nodos, pero tal vez tengas un escenario de uso especial) –
Hola, tienes razón, estoy usando el módulo de vistas para buscar nodos y luego formatearlos correctamente. Sin embargo, toda la información sobre estas vistas se refiere a un nodo, solo necesito obtener ese NID. – MrFidge