我需要定义 $links 输出的顺序,现在我有 2 个模块在上面显示其内容:comments 和 addthis 我在哪里可以定义节点的顺序并修改它的设置...甚至自定义一点显示?
问问题
1276 次
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);
}
于 2011-02-22T18:55:51.397 回答