답변:
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에서는 테마가 변경 후크를 구현할 수 있으므로 좀 더 간단합니다. 찾고있는 alter hook은 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에 렌더링 얻을 링크에 대해 얘기 가정하면, 구현해야합니다 hook_link 의 예를 들어보기를위한 node_link을 . 그리고 drupal hooks를 처음 사용한다면 이것은 커스텀 모듈에서 발생해야하므로 커스텀 모듈 이름이 "foo"라고 foo_link
말하면 hook_link와 같은 인수를 가져야 하는 함수를 작성해야합니다 .