Відповіді:
У Drupal 6 ви не можете використовувати гачки або змінювати гачки всередині тем, тому вам потрібно буде створити спеціальний модуль для зміни посилань. Після завершення вам потрібно буде впровадити hook_link()
(якщо ви створюєте нове посилання) або hook_link_alter()
(якщо ви хочете змінити існуюче посилання).
Додавання нового посилання:
example_link($type, $object, $teaser = FALSE) {
$links = array();
// Add a custom link to nodes
if ($type == 'node') {
$links['example_mylink'] = array(
'title' => t('Test link'),
'href' => 'foo',
'attributes' => array(
'title' => 'Test link',
),
);
}
return $links;
}
Змінення існуючих посилань:
example_link_alter(&$links, $node, $comment = NULL) {
// Remove the read more link
unset($links['node']['node_read_more']);
// Change the title of the read more link
$links['node']['node_read_more']['title'] = t('More information');
// Move read more link to first slot
$link_read_more = $links['node']['node_read_more'];
unset($links['node']['node_read_more']);
$links = $links['node'];
$links['node'] = array(
'node_read_more' => $link_read_more,
) + $links;
// Move link to the last slot
$link_read_more = $links['node']['node_read_more'];
unset($links['node']['node_read_more']);
$links['node']['node_read_more'] = $link_read_more;
}
У Drupal 7 це трохи простіше, оскільки теми можуть реалізовувати змінити гачки. Ви шукаєте гачок для зміни hook_node_view_alter()
:
function example_node_view_alter(&$build) {
// Remove the read more link
unset($build['links']['node']['#links']['node-readmore']);
// Add your own custom link
$build['links']['node']['#links']['example-mylink'] = array(
'title' => t('Test link'),
'href' => 'foo',
'html' => TRUE,
'attributes' => array(
'title' => 'Test link',
),
);
// Move read more link to first slot
$link_read_more = $build['links']['node']['#links']['node_read_more'];
unset($build['links']['node']['#links']['node_read_more']);
$links = $build['links']['node']['#links'];
$build['links']['node']['#links'] = array(
'node_read_more' => $link_read_more,
) + $links;
// Move link to the last slot
$link_read_more = $build['links']['node']['#links']['node_read_more'];
unset($build['links']['node']['#links']['node_read_more']);
$build['links']['node']['#links']['node_read_more'] = $link_read_more;
}
Ви можете розмістити це безпосередньо у своєму template.php
файлі.
'href'
на те, що ви хочете.
Якщо припустити, що ви говорите про посилання, які відображаються на node.tpl.php, вам потрібно буде реалізувати прив'язку_підключення, наприклад, подивіться на node_link . А якщо ви новачок у гачках для друпалів, то це має відбуватися у спеціальному модулі, тому скажімо, що назва вашого модуля "foo", вам потрібно буде написати функцію, foo_link
яка називається, яка повинна мати ті ж аргументи, що і прив'язка_посилання.