Drupal文档教程翻译 - 为节点添加'最后更新时间'
本站原创编译,转载请给面子,尊重劳动果实,欢迎交流指正。
早,一如既往的Druapl文档翻译时间,不知还能有空做多久这事情。之前一篇中,我们了解了怎样为菜单项添加特定id或class,今天的话题是怎样为节点内容添加“最后更新”的日期信息,仍是蛮实际的需求;Joomla原生输出这东西,Drupal里面需要捣鼓一下才行。
每个节点中,Drupal都会默认输出一段提交信息,大致形式如“Submitted by fabio on Mon, 2009-07-06 17:05”,也就是该节点的创建者及创建时间;这玩意由node.tpl.php模板文件中调用的$submitted变量负责。
有时候对于一些频繁更新的内容,比起创建时间,我们更需要输出“最后更新时间”。将下面的代码添加到当前主题的template.php文件中:
<?php
function phptemplate_node_submitted($node) {
$time_unit = 86400; // number of seconds in 1 day => 24 hours * 60 minutes * 60 seconds
$threshold = 1;
if ($node->changed && (round(($node->changed - $node->created) / $time_unit) > $threshold)){ // difference between created and changed times > than threshold
return t('Last updated on @changed. Originally submitted by !username on @created.', array(
'@changed' => format_date($node->changed, 'medium'),
'!username' => theme('username', $node),
'@created' => format_date($node->created, 'small'),
));
}
else{
return t('Submitted by !username on @datetime',
array(
'!username' => theme('username', $node),
'@datetime' => format_date($node->created),
));
}
}
?>
清空缓存后,原来的$submitted变量就会在原来信息的基础上输出最后更新时间了。
上面的代码中,$node->changed 和 $node->created分别用于输出更新时间和创建时间,另外我们加了个“阀”,以一天的时间为标准(24小时*60分钟*60秒),如果更新时间距离创建时间超过了1天,则输出最后更新时间,否则没有必要输出。
除此之外,我们还可以使用Submited By Module来实现类似的需求。
译者:Viiiix7210
如需转载,请注明官方英文文档及本人译文的出处,谢谢。查看英文原文: Adding "last updated" node informations to the $submitted variable in node.tpl.php (and variations)
| < Prev | Next > |
|---|
