menublock link drupal

link - Drupal: crear un enlace de anclaje solo con l()



menublock drupal (3)

Me gustaría dar salida a esto

<a href=''#namedanchor''>link</a>

usando la función l (), para que el enlace salte a un ancla en la página actual.

Esperaba que esto funcionara

l(''link'', '''', array(''fragment'' => ''namedanchor''));

pero crea un enlace absoluto a www.example.com/#namedanchor lugar de www.example.com/currentpage#namedanchor


Aquí está la documentación para l

No parece que usará de forma predeterminada la página actual cuando no se define ninguna ruta. Entonces deberías llamarlo así:

l(''link'', ''currentpage'', array(''fragment'' => ''namedanchor''));


Si desea crear un enlace con solo el fragmento, necesita "engañar" un poco la función url. Como agregará el camino base a todas las direcciones URL internas, '''' se convertirá en http://example.com .

Lo que debe hacer es establecer la opción externa en verdadero:

l(''link'', '''', array(''fragment'' => ''namedanchor'', ''external'' => TRUE));

Esto dará el deseado

<a href=''#namedanchor''>link</a>

Alternativa podría dar la url completa como sugiere Jeremy.


Para crear un ancla usando l ():

$path = isset($_GET[''q'']) ? $_GET[''q''] : ''<front>''; l(t(''link text''), $path, array(''attributes'' => array(''name'' => ''name-of-anchor'')));

Esto dará como resultado:

<a href="/path/to/currentpage" name="name-of-anchor">link text</a>

Luego, para vincular a esto usando l ():

$path = isset($_GET[''q'']) ? $_GET[''q''] : ''<front>''; l(t(''link to anchor''), $path, array(''fragment'' => ''name-of-anchor''));

Esto dará como resultado:

<a href="/path/to/currentpage#name-of-anchor">link to anchor</a>