用户登录

Drupal资源链接

http://zhupou.cn
drupal布道者,改成了"老葛的Drupal培训班",专心于培训事业
http://drupal.org
官方网站
http://drupalchina.org
中文的官方网站
http://acquia.com/
本站就是用这个版本构建的

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

网站上加了个最新评论的区块,用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)) .'<br />'. 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的成果吧。

 

 

评论

这个方法不错啊

这个方法不错啊,比我新建一个views的方法还简单一些呢

原来在joomla中都是这么改

这是原来玩joomla时留下的后遗症。

怎移掉by blank - 2008-11-30 09:34

想詢問版主要怎移掉by blank - 2008-11-30 09:34這種格式呢?
謝謝 >w<…

那里移掉?

如果在评论中移掉的话,就用上面的方法