0

我需要定义 $links 输出的顺序,现在我有 2 个模块在上面显示其内容:comments 和 addthis 我在哪里可以定义节点的顺序并修改它的设置...甚至自定义一点显示?

4

1 回答 1

0

编辑:可以使用http://drupal.org/project/linkweights更改链接权重

我不确定是否有任何类型的 UI重新排序/自定义节点链接。但是,您可以通过以下几种方式完成此操作:

创建一个实现hook_link_alter()和执行自定义的自定义模块。

/**
 * 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;
}

您可以更进一步,创建一个管理页面,该页面将获取所有链接,将它们输出到可排序的表中(例如 /admin/build/block)并将顺序保存在变量中。啊,您的模块需要具有最高权重才能捕获所有其他链接。

- 或者 -

修改主题的 template.php 并添加 mytheme_preprocess_node() 函数或编辑它或 phptemplate_preprocess_node() 如果它存在

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);
}

要重新排序,请参阅http://drupal.org/node/44435#comment-861385

于 2011-02-22T18:55:51.397 回答