web-dev-qa-db-fra.com

Comment obtenir l'URL complète d'une page Drupal?

Je dois récupérer l'URL de la page actuelle sur un site Drupal. Peu importe le type de contenu, il peut s'agir de n'importe quel type de nœud.

Je ne cherche PAS le chemin d'accès au thème, ni l'URL de base, ni la get_destination de Drupal. Je cherche une fonction ou une variable qui me donnera les informations suivantes:

http://example.com/node/number

Avec ou sans (plus probablement) le http://.

45
Kumiko-chan

drupal_get_destination () a un code interne qui pointe au bon endroit pour obtenir le chemin interne actuel. Pour traduire ce chemin en une URL absolue, la fonction url () devrait faire l'affaire. Si l'option 'absolute' est passée, cela générera l'URL complète, pas seulement le chemin interne. Il utilisera également tous les alias de chemin pour le chemin actuel.

$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$link = url($path, array('absolute' => TRUE));
53
Eaton

C'est ce que j'ai trouvé utile

global $base_root;
$base_root . request_uri();

Renvoie les chaînes de requête et c'est ce qui est utilisé dans core: page_set_cache ()

37
mikeytown2

Vous pouvez aussi le faire de cette façon:

$current_url = 'http://' .$_SERVER['HTTP_Host'] . $_SERVER['REQUEST_URI'];

C'est un peu plus rapide.

19
ThomasR

Essayez ce qui suit:

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

Cette méthode est ancienne, nous pouvons l’obtenir très simplement dans Drupal 7

    current_path()

et une autre fonction avec une petite différence

request_path()
12
Yusef Mohamadi

Je trouve l'utilisation de jetons plutôt propre. Il est intégré au noyau de Drupal 7.

<?php print token_replace('[current-page:url]'); ?>
4
Yo-L

Ce qui suit est plus Drupal-ish :

url(current_path(), array('absolute' => true)); 
3
kenorb

Pour Drupal 8 vous pouvez le faire: 

$url = 'YOUR_URL';
$url = \Drupal\Core\Url::fromUserInput('/' . $url,  array('absolute' => 'true'))->toString();
0
Jitendra Mittal