php demo - ¿Cómo obtener la URL completa de una página de Drupal?




download modules (9)

Este método es todo el método antiguo, en drupal 7 podemos hacerlo de manera muy simple

    current_path()

y otra función con una pequeña diferencia

request_path()

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:// .


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

Me parece usar tokens bastante limpio. Está integrado en el núcleo en Drupal 7.

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

El siguiente es más Drupal-ish :

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

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()


Pruebe lo siguiente:

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

Para Drupal 8 puedes hacer esto:

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

También puedes hacerlo de esta manera:

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

Es un poco más rápido.


Solo estaba en un proyecto que usaba un meta-lenguaje que compilaba tanto en Java como en C. Utilizaba una sintaxis similar a Java y simulaba la funcionalidad de clase en C (y la parte C dependía mucho de las macros para "Convertir" algunos del código).

Fue horrible. Al recibir esta pila para mantener, simplemente la dividimos en dos bases de código y partimos de allí. Sé que la compañía inicial tenía algunas personas excelentes, pero es algo demasiado difícil de hacer (especialmente porque ambos estaban compilando en plataformas integradas).





php drupal content-management-system