2 // PukiWiki - Yet another WikiWikiWeb clone.
3 // $Id: new.inc.php,v 1.6 2004/12/25 05:56:50 henoheno Exp $
7 define('PLUGIN_NEW_FORMAT', '<span class="comment_date">%s</span>');
9 function plugin_new_init()
11 // Elapsed time => New! message with CSS
12 $messages['_plugin_new_elapses'] = array(
13 60 * 60 * 24 * 1 => ' <span class="new1" title="%s">New!</span>', // 1day
14 60 * 60 * 24 * 5 => ' <span class="new5" title="%s">New</span>'); // 5days
15 set_plugin_messages($messages);
18 function plugin_new_inline()
20 global $vars, $_plugin_new_elapses;
23 $args = func_get_args();
24 $date = array_pop($args); // {date} always exists
27 $usage = '&new([nodate]){date};';
28 if (func_num_args() > 2) return $usage;
29 $timestamp = strtotime($date);
31 $usage = '&new(pagename[,nolink]);';
32 if (func_num_args() > 3) return $usage;
35 if (isset($timestamp) && $timestamp !== -1) {
36 // &new([nodate]){date};
37 $timestamp -= ZONETIME;
38 $nodate = in_array('nodate', $args);
39 $retval = $nodate ? '' : htmlspecialchars($date);
41 // &new(pagename[,nolink]);
43 $name = strip_bracket(! empty($args) ? array_shift($args) : $vars['page']);
44 $page = get_fullname($name, $vars['page']);
45 $nolink = in_array('nolink', $args);
46 if (substr($page, -1) == '/') {
47 foreach (preg_grep('/^' . preg_quote($page, '/') . '/',
48 get_existpages()) as $page) {
49 $_timestamp = get_filetime($page);
50 if ($timestamp < $_timestamp) {
51 // Show the latest page
52 $retval = $nolink ? '' : make_pagelink($page);
53 $timestamp = $_timestamp;
56 } else if (is_page($page)) {
57 $retval = $nolink ? '' : make_pagelink($page, $name);
58 $timestamp = get_filetime($page);
60 if ($timestamp == 0) return '';
63 $erapse = UTIME - $timestamp;
64 foreach ($_plugin_new_elapses as $limit=>$tag) {
65 if ($erapse <= $limit) {
66 $retval .= sprintf($tag, get_passage($timestamp));
70 return sprintf(PLUGIN_NEW_FORMAT, $retval);