Drupal. Obtenga alias de ruta de la URL actual sin los argumentos de la carpeta de la instalación

StackOverflow https://stackoverflow.com/questions/2998295

  •  24-10-2019
  •  | 
  •  

Pregunta

Me gustaría recuperar el alias de ruta de página actual sin los argumentos de la carpeta de la instalación. Estoy usando:

drupal_get_path_alias(request_uri())

Pero esto devuelve la instalación/lo que sea/ruta real/ y quiero recuperar el ruta real/ Solo que pase lo que pase instalación/lo que sea es.

Gracias por adelantado :)

¿Fue útil?

Solución

Lo encontré. En realidad fue una mezcla de ambas sugerencias:

$current_path = drupal_get_path_alias($_GET["q"]);

Gracias.


Actualización: la solución anterior no siempre funciona

Alguien sugirió usar un método alternativo:

str_replace(base_path(), '', drupal_get_path_alias(request_uri(), 1));

Pero, ¿hay alguna forma de hacer lo mismo sin usar el str_replace ligeramente caro?

Gracias

Otros consejos

¿El camino del nodo en el que estás?

http://api.drupal.org/api/function/drupal_get_path_alias/6

if ($node || (arg(0) == 'node' && arg(2) != 'edit')) {
   $system_path = 'node/'.arg(1);
   $current_path = drupal_get_path_alias($system_path);
}

Ese código disparará en las páginas de nodos y le dirá el alias de la página.

Para obtener más información, puede descargar $ _get y mirar el valor de cadena de consulta 'Q'.

Tal vez puedas usar base_path () y str_replace así:

str_replace (base_path(), '', drupal_get_path_alias(request_uri()), 1);

El Base_Path se guarda en la base de datos.

$current_page_url = drupal_get_path_alias( implode( '/', arg() ) );

También funciona

Has probado $_GET['q']?

Tiendo a rellenar la URL completa para evitar cualquier problema que surja cuando base_path () no es solo '/'.

$url = (($_SERVER['HTTPS'])?"https://":"http://")  .  $_SERVER['HTTP_HOST'] . url($_GET['q']);

o incluso más simplemente:

$url = url($_GET['q'], array('absolute'=>true));

Solución más rápida.

substr(drupal_get_path_alias(request_uri(), 1), strlen(base_path()));

Para pasarlo a una discusión

$arg = explode('/', substr(drupal_get_path_alias(request_uri(), 1), strlen(base_path())));

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top