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>