drupal 6 : node.tpl.php $links variable, where to configure the content?

1.3k Views Asked by At

I need to define the order of the $links output now I have 2 modules displaying its contents on that: comments and addthis where can I define the order of the and modify it's settings for nodes... even customize a little bit the display?

1

There are 1 best solutions below

0
On

Edit: links weights can be changed using http://drupal.org/project/linkweights

I am not sure there is any kind of UI for reordering/customizing the node links. However you can accomplish this in a couple of ways:

Create a custom module that implements hook_link_alter() and perform the customizations.

/**
 * hook_link_alter() implementation
 * for more details see 
 * http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_link/6
 * http://api.drupal.org/api/drupal/developer--hooks--core.php/function/hook_link_alter/6
 */
function mymodule_link_alter(&$links, $node) {
  foreach ($links as $link => $values) {
    // do something with $link

  }
return $links;
}

You can go even further and create an administration page that will get all the links, output them in a sortable table (a la /admin/build/block) and save the order in a variable. Ah, your module needs to have the highest weight in order to catch all the other links.

--OR--

Modify your theme's template.php and add the mytheme_preprocess_node() function or edit it or phptemplate_preprocess_node() if it exists

function phptemplate_preprocess_node(&$vars) {
  $links= $vars['node']->links;
  // uncomment the next line to see the current links
  //var_dump($links);

  // add a new link
  $link_all = array(
    'title' => 'See all nodes',
    'href' => PATH,
    //'attributes' => array('class' => 'link_class', 'id' => 'link_id', 'title' => 'link title'),
  );
  $links['link_all'] = $link_all;

  //Modify an existing link. in this case the above added one
  $links['link_all']['title'] = t('This is my custom text');

  $vars['links'] = theme_links($links);
}

To reorder see http://drupal.org/node/44435#comment-861385