用模板去除最新评论的时间

来源:http://joom.net.ru/content/yong-mo-ban-qu-chu-zui-xin-ping-lun-de-shi-jian
使用手记 drupal 星期五, 2008-11-28 16:16blank
网站上加了个最新评论的区块,用drupal自带的那个,但评论的人实在是太少了,那个时间出来的有点难看,就想把这个时间给去了,刚刚看到pro 2nd的模板系统,现学现用,就用模板功能把评论的时间给去了.

01方法1、使用theme函数来去除时间

先找到评论模块的位置,应该在这样的一个位置/modules/comment/,打开comment.module文件,去找comment_block的模板函数

function theme_comment_block() {
$items = array();
foreach (comment_get_recent() as $comment) {
$items[] = l($comment->subject, 'node/'. $comment->nid, array('fragment' => 'comment-'. $comment->cid)) .''. t('@time ago', array('@time' => format_interval(time() - $comment->timestamp)));
}
if ($items) {
return theme('item_list', $items);
}
}

红色部分就是用来显示时间的,当然把这个去了就行了

千万不要这么做,不能修改drupal的核心文件

把这部分复制出来,找到你模板中的template.php,在最后加上上面的内容,函数名改成你模板的名称

function 模板的名称_comment_block() {
$items = array();
foreach (comment_get_recent() as $comment) {
$items[] = l($comment->subject, 'node/'. $comment->nid, array('fragment' => 'comment-'. $comment->cid)));
}
if ($items) {
return theme('item_list', $items);
}
}

记住清除缓存,看一下,是不是你要求的东东出来了。

02方法2、使用模板文件来去除时间

在模板目录下block.tpl.php复制一个改名为block-comment.tpl.php文件

找开这个文件之后应该的下面这个语句

<?php print $block->content ?>

用上面这个函数替代

$items = array();
foreach (comment_get_recent() as $comment) {
$items[] = l($comment->subject, 'node/'. $comment->nid, array('fragment' => 'comment-'. $comment->cid)));
}
if ($items) {
print theme('item_list', $items);//这里要改成print
}

ok,试试看,是不是也成功了。

一定要记住,清除缓存,否则可能你看不到效果

blank提示这2种方法应该都是可行的,应该说第一种方法利用hook_theme函数,比较简便,效率较高,第2种方法是利用模板文件,比较方便。据官方的说法是第一种方法的效率比第二种方法要好。(好象是快 四倍左右,具体忘记了)。

这个也算是这几天来看pro 2nd的成果吧。

评论

http://www.janezone.com

http://www.janezone.com

this is bofei