Ich muss die URL der aktuellen Seite in einer Drupal-Site nutzen. Es ist egal, um welchen Inhaltstyp es sich handelt - es kann sich um einen beliebigen Knotentyp handeln.
Ich suche NICHT nach dem Pfad zum Thema oder nach der Basis-URL oder nach Drupal's get_destination. Ich bin auf der Suche nach einer Funktion oder Variable, die mir folgende Informationen liefert:
http://example.com/node/number
Entweder mit oder ohne (wahrscheinlicher) dem http://
.
drupal_get_destination () hat einen internen Code, der an die richtige Stelle zeigt, um den aktuellen internen Pfad abzurufen. Um diesen Pfad in eine absolute URL zu übersetzen, sollte die Funktion url () den Trick ausführen. Wenn die Option 'absolute' übergeben wird, wird die vollständige URL generiert, nicht nur der interne Pfad. Es werden auch beliebige Pfad-Aliasnamen für den aktuellen Pfad ausgetauscht.
$path = isset($_GET['q']) ? $_GET['q'] : '<front>';
$link = url($path, array('absolute' => TRUE));
Das fand ich nützlich
global $base_root;
$base_root . request_uri();
Gibt Abfragezeichenfolgen zurück, die im Kern verwendet werden: page_set_cache ()
Sie können es auch so machen:
$current_url = 'http://' .$_SERVER['HTTP_Host'] . $_SERVER['REQUEST_URI'];
Es ist ein bisschen schneller.
Versuche Folgendes:
url($_GET['q'], array('absolute' => true));
Diese Methode ist alles alte Methode, in Drupal 7 können wir es sehr einfach bekommen
current_path()
und eine andere Funktion mit kleinem Unterschied
request_path()
Ich finde die Verwendung von Tokens ziemlich sauber. Es ist in Drupal 7 in den Kern integriert.
<?php print token_replace('[current-page:url]'); ?>
Folgendes ist mehr Drupal-ish :
url(current_path(), array('absolute' => true));
Für Drupal 8 kannst du folgendes tun:
$url = 'YOUR_URL';
$url = \Drupal\Core\Url::fromUserInput('/' . $url, array('absolute' => 'true'))->toString();