刚刚升级完毕,一切都乱糟糟的:)
对Trackback模块最新版本的追求充分体现了“时髦”的代价。Drupal4.5.0推出的时候,Trackback 推出了与之匹配的v1.14,这个版本的问题多多,譬如把trackback和评论混同起来,在每篇blog文章里凭空添加一个多余的"trackback" tab等等,在被多人诟病之后,作者作出了升级,但是这次升级并未作为Drupal 4.5.0的正式版本,正式版本仍然是v 1.14,升级版只是可以从CVS那里下载到,这次升级的最大变动就是数据库结构的更改,因为作者没有把这次升级作为最终升级版,所以并没有提供升级数据库的脚本。当时我为了紧追潮流,立刻升级为CVS,但是由于前后两个数据库的差别非常之大,我就放弃了手动升级数据库(表),而是删除了旧的,直接使用新的,好在当时没有几条Trackback,所以也不是一个问题。
Drupal升级到4.6之后,不知道什么缘故,原来的分类区块被省略掉了,没有了这个区块,多少会让人觉得不方便,所以自己写了一个分类区块,如下:
if (user_access('access content')) {
$result = db_query("SELECT d.tid, d.name, MAX(n.created) AS updated, COUNT(*) AS count FROM {term_data} d INNER JOIN {term_node} USING (tid) INNER JOIN {node} n USING (nid) WHERE n.status = 1 GROUP BY d.tid, d.name ORDER BY updated DESC, d.name");
//读取分类关键词,最新文章创建的时间,降序排列
$items = array();
while ($category = db_fetch_object($result)) {
$items[] = l($category->name .' ('. $category->count .')', 'taxonomy/term/'. $category->tid) .'
'. t('%time ago', array('%time' => format_interval(time() - $category->updated)));
}
//按照以前的格式显示分类区块,包括最后一片帖子的发布时间。
return theme('item_list', $items);
}
?>
我的blog的左侧有一个例子,如果你不需要显示“最近更新时间”,代码可以简化许多,hoho,其实没必要用PHP了,用HTML做个静态链接就行了:)
呵呵,等不及作者的升级了,我自己先土土的写一个block吧。再次说明一下,因为我没有钻研过Drupal的函数手册,所以这些block可能不是很in,不过咱们就实用主义吧,能用就行:)下面是代码,右边有一个范例,就是那个叫做“最新引用(trackback)”的区块,我还没有来得及用CSS美化那个list,所以没有缩进,看起来不是很美观,慢慢来,先实现了功能再说。另外,这是针对cvs版的trackback写的(ver 1.25),如果你使用的是4.5.x的trackback模块,需要根据数据库的结构作些调整。
$result = db_query_range('SELECT * FROM {trackback_received} ORDER BY created DESC', 0, 10);
//将trackback_received表格按时间降序排列,选举最新的10条。你可以按需要更改数目。
while ($trackback = db_fetch_object($result)) {
echo "
";
//这段土,不过没有办法啊,呵呵。
}?>
呵呵,这样就可以,其实挺简单的:)
昨天有人问的,研究了一下,因为对Drupal本身的函数结构不是很熟悉,所以到Drupal函数手册那里去钻研了一下,可惜里面的东西太复杂,所以就用了一种比较土的方式解决了,如下。呵呵,同时还想试一下新安装的编码过滤器,因为昨天发现没有这个过滤器的时候,所有的php代码的前提示符都会被滤掉。
$n_of_comments= db_result(db_query('SELECT count(*) FROM comments'));
$n_of_posts=db_result(db_query('SELECT count(*) FROM node'));
$n_of_blogs=db_result(db_query("select count(*) from node where type='blog'"));
print "本站共有blog $n_of_blogs 篇";
print "本站共有文章 $n_of_posts 篇";
print "本站共有评论 $n_of_comments 篇"; ?>
当然,如果你嫌这个显示出来的效果比较土,还可以加style,譬如输出时
print "本站共有blog $n_of_blogs 篇";
我的站点的右下角有一个没有加修饰的例子。
其他的数据可以列出,譬如一共有多少论坛话题,一共有多少tag,一共有多少用户,只需要稍微修改一下上面这段代码就可以了:)
Recent comments
11 hours 48 min ago
4 days 11 hours ago
5 days 11 hours ago
5 days 11 hours ago
1 week 2 days ago
2 weeks 19 hours ago
2 weeks 2 days ago
2 weeks 2 days ago
2 weeks 2 days ago
3 weeks 1 hour ago