Размещение ссылок

1-ый способ: ссылка

Ссылка формируется через функцию l().

l('Название ссылки', 'url/to/page');

В результате сгенерируется следующий HTML-код: 

<a href="/url/to/page">Название ссылки</a>

Вывод ссылок через функцию l() позволяет выводить ссылки в зависимости от настроек сайта (например с синонимом, без синонима, ЧПУ и т.д.)

Например, следующий код:

l('Пункт меню', 'taxonomy/term/45');

Будет сгенерирован в следующий HTML-код:

<a href="/catalog/sites">Пункт меню</a>

Данная функция преобразовала исходный URL taxonomy/term/45 в синоним /catalog/sites соглано настройкам сайта.

2-ой способ: ссылка со строкой запроса

Чтобы добавить строку запроса, в третьем параметре надо добавить свойство query.

$query_string = [
    'id' => 1,
    'cat' => 'post'
];
l('Название ссылки', 'url/to/page', ['query' => $query_string]);

// <a href="/url/to/page?id=1&cat=post">Название ссылки</a>

3-ий способ: список ссылок

Списки выводятся через функцию theme() с параметром links.

$links = array(
    'Class_link1' => array(
        'title' => 'Link 1',
        'href' => 'url-1'
    ),
    'Class_link2' => array(
        'title' => 'Link 2',
        'href' => 'url-2'
    )
);

// Вывод список ссылок
echo theme('links', array('links' => $links));

В результате сгенерируется следующий HTML-код:

<ul class="links">
    <li class="Class_link1 first"><a href="/url-1">Link 1</a></li>
    <li class="Class_link2 last"><a href="/url-2">Link 2</a></li>
</ul>

Также данный способ добавит класс first к первому элементу списка, и класс last к последнему элементу списка. И добавит класс active к текущей ссылки.

4-ый способ: ссылка как картинка

Сделать картинку ссылкой можно через функцию theme() с параметром image.

$image_path = theme('image', array('path' => 'public://images/pic.jpg'));
echo l($image_path, 'node/1', array('html' => true));

При каждом построении ссылки, выполняется функция drupal_lookup_path(), код которого находится в файле includes/path.inc.