Drupal. Obtenez alias de chemin de arguments url en cours sans dossier de l'installation

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

  •  24-10-2019
  •  | 
  •  

Question

Je voudrais récupérer l'alias en cours de chemin de page sans arguments de dossier de l'installation. J'utilise:

drupal_get_path_alias(request_uri())

Mais cette installation de retour / whatever / chemin / réelle et je veux récupérer le chemin / réel ne peu importe ce que Installation / whatever est.

Merci à l'avance:)

Était-ce utile?

La solution

trouvé. Il était en fait un mélange des deux suggestions:

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

Merci bien.


Mise à jour: la solution précédente ne fonctionne pas toujours

Quelqu'un a suggéré d'utiliser une autre méthode:

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

Mais, est-il possible de faire la même sans utiliser le str_replace un peu cher?

Merci

Autres conseils

Le chemin du nœud que vous êtes?

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);
}

Ce code feu sur les pages de nœud et vous dire l'alias de la page.

Pour plus d'informations, vous pouvez vider $ _GET et regardez la valeur de chaîne de requête « q ».

Peut-être que vous pouvez utiliser base_path () et str_replace comme ceci:

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

Le base_path est enregistré dans la base de données.

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

fonctionne aussi

Avez-vous essayé $_GET['q']?

Je tends à repulper l'URL complète au lieu d'éviter les problèmes qui se posent lorsque base_path () est non seulement « /'.

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

ou encore plus simplement:

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

Solution la plus rapide.

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

Pour passer en argument

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top