Risposte:
In Drupal 6, non è possibile utilizzare hook o modificare hook all'interno dei temi, quindi è necessario creare un modulo personalizzato per modificare i collegamenti. Una volta fatto, ti consigliamo di implementare hook_link()
(se stai creando un nuovo link) o hook_link_alter()
(se vuoi modificare un link esistente).
Aggiunta di un nuovo collegamento:
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;
}
Modifica dei collegamenti esistenti:
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;
}
In Drupal 7, questo è un po 'più semplice, poiché i temi possono implementare alter hook. L'alter hook che stai cercando è 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;
}
Puoi inserirlo direttamente nel tuo template.php
file.
'href'
in quello che desideri.
Supponendo che tu stia parlando di collegamenti che vengono resi su node.tpl.php, dovrai implementare hook_link, ad esempio guarda node_link . E se non hai familiarità con gli hook drupal, questo deve accadere in un modulo personalizzato, quindi supponiamo che il nome del tuo modulo personalizzato sia "pippo", dovrai scrivere una funzione chiamata foo_link
che dovrebbe avere gli stessi argomenti di hook_link.