php - site - modules in drupal 8
¿Cómo obtener la URL completa de una página de Drupal? (9)
El siguiente es más Drupal-ish :
url(current_path(), array(''absolute'' => true));
Necesito tomar la URL de la página actual en un sitio de Drupal. No importa qué tipo de contenido sea, puede ser cualquier tipo de nodo.
No estoy buscando el camino al tema, ni la url base, ni el get_destination de Drupal. Estoy buscando una función o variable que me dé el siguiente completo:
http://example.com/node/number
Ya sea con o sin (más probable) el http://
.
Este método es todo el método antiguo, en drupal 7 podemos hacerlo de manera muy simple
current_path()
- http://example.com/node/306 devuelve "node / 306".
- http://example.com/drupalfolder/node/306 devuelve "node / 306" mientras que base_path () devuelve "/ drupalfolder /".
- http://example.com/path/alias (que es un alias de ruta para el nodo / 306) devuelve "node / 306" en oposición al alias de ruta.
y otra función con una pequeña diferencia
request_path()
- http://example.com/node/306 devuelve "node / 306".
- http://example.com/drupalfolder/node/306 devuelve "node / 306" mientras que base_path () devuelve "/ drupalfolder /".
- http://example.com/path/alias (que es un alias de ruta para el nodo / 306) devuelve "ruta / alias" en lugar de la ruta interna.
- http://example.com/index.php devuelve una cadena vacía (es decir, página principal).
- http://example.com/index.php?page=1 devuelve una cadena vacía.
Esto es lo que encontré útil
global $base_root;
$base_root . request_uri();
Devuelve cadenas de consulta y es lo que se utiliza en el núcleo: page_set_cache()
Me parece usar tokens bastante limpio. Está integrado en el núcleo en Drupal 7.
<?php print token_replace(''[current-page:url]''); ?>
Pruebe lo siguiente:
url($_GET[''q''], array(''absolute'' => true));
Tal vez lo que quieres es simplemente viejas variables predefinidas.
Considera intentarlo
$_SERVER[''REQUEST_URI'''']
O lee más here .
También puedes hacerlo de esta manera:
$current_url = ''http://'' .$_SERVER[''HTTP_HOST''] . $_SERVER[''REQUEST_URI''];
Es un poco más rápido.
drupal_get_destination() tiene un código interno que apunta al lugar correcto para obtener la ruta interna actual. Para traducir esa ruta en una URL absoluta, la función url() debería funcionar. Si se pasa la opción ''absoluta'', generará la URL completa, no solo la ruta interna. También intercambiará los alias de ruta para la ruta actual también.
$path = isset($_GET[''q'']) ? $_GET[''q''] : ''<front>'';
$link = url($path, array(''absolute'' => TRUE));
Para Drupal 8 puedes hacer esto:
$url = ''YOUR_URL'';
$url = /Drupal/Core/Url::fromUserInput(''/'' . $url, array(''absolute'' => ''true''))->toString();