我一直在寻找一整天,但我似乎无法得到(任何)钩子工作,特别是这个钩子。我想使用hook_link_alter将类(colorbox)添加到预告片上的链接。我能够通过破解核心来实现它,但当然我想要一个更好的解决方案。
node.module中的相关代码是:
if ($view_mode == 'teaser') {
$node_title_stripped = strip_tags($node->title);
$links['node-readmore'] = array(
'title' => t('Read more<span class="element-invisible"> about @title</span>', array('@title' => $node_title_stripped)),
'href' => 'node/' . $node->nid,
'html' => TRUE,
'attributes' => array('rel' => 'tag', 'title' => $node_title_stripped),
);
}
我能够通过添加
来实现我想要的目标将最后一行(包含文字)替换为:'attributes'=&gt; array('class'=&gt;'colorbox''rel'=&gt;'tag','title'=&gt; $ node_title_stripped),
请帮助
答案 0 :(得分:1)
以下代码有助于:
function theme_preprocess_node(&$variables) {
// if readmore link is set
if (isset($variables['content']['links']['node']['#links']['node-readmore'])) {
// remove the old link
unset($variables['content']['links']['node']['#links']['node-readmore']);
// Create new link variable
$variables['content']['links']['node']['#links']['node-readmore-custom'] = l(t('More >'), $variables['node_url'], array('attributes' => array('class' => t('colorbox'))));
}
}
之后,您需要在适当的位置在主题下的node.tpl.php中添加此新变量。
希望这会有所帮助。
答案 1 :(得分:0)
我对钩子知之甚少,但我会使用Display Suite:http://drupal.org/project/ds
确保您还启用DS Extras,转到Structure-&gt; DS并创建CSS类“colorbox”
然后编辑内容类型,管理显示,选择“预告片”,转到底部并创建布局(一列)。
保存后,选择链接字段右侧的齿轮,并在布局下拉列表中选择“专家”,并在班级选择列表中选择“颜色框”。
点击更新并保存后,该字段应与该类一起呈现。