it-swarm-es.com

Forzar que todos los enlaces sean absolutos

Tengo un módulo personalizado, estoy enviando el contenido del nodo y las vistas por correo electrónico. El módulo primero renderiza el nodo/vista y envuelve los resultados alrededor de una plantilla común.

Pero cuando se crean mis vistas y el contenido del nodo, contienen enlaces que son parientes. Estoy buscando una forma de forzar que estos enlaces sean absolutos (es decir, con dominio y protocolo).

Las funciones url () y l() se pueden usar para generar enlaces absolutos, pero no veo una forma de forzar este comportamiento en todos los enlaces. Estoy planeando procesar el contenido como una cadena HTML para extraer todos los enlaces y completar la URL cuando sea necesario, pero esto no parece muy eficaz.

¿Existe otra forma de garantizar una URL absoluta?

Aquí está el código utilizado para representar el contenido de los nodos y las vistas:

//For nodes
$node = node_build_content($node, FALSE, FALSE);
$node->body = drupal_render($node->content);
unset($node->teaser);
node_invoke_nodeapi($node, 'alter', FALSE, FALSE);
$content = $node->body;

//For views
$content = $view->preview($display_id, $arguments);
3
Pierre Buyle

Eche un vistazo a este módulo: Patológico

Patológico es un filtro de entrada que puede corregir rutas en enlaces e imágenes en su contenido Drupal en situaciones que de otra manera causarían que se "rompan"; por ejemplo, si la URL del sitio cambia, o el contenido se movió a un servidor diferente. Pathologic también puede resolver el problema de las imágenes faltantes y los enlaces rotos en los canales RSS de su sitio. Ver más ejemplos de casos de uso en la página de documentación.

3
Berdir

¿Qué tal si agrega la etiqueta BASE a su page.tpl.php?

<base href="http://www.yourooturlhere.com/" />

Ver: http://www.w3schools.com/tags/tag_base.asp

0
Camsoft