%s');
function plugin_new_init()
{
// Elapsed time => New! message with CSS
$messages['_plugin_new_elapses'] = array(
60 * 60 * 24 * 1 => ' New!', // 1day
60 * 60 * 24 * 5 => ' New'); // 5days
set_plugin_messages($messages);
}
function plugin_new_inline()
{
global $vars, $_plugin_new_elapses;
$retval = '';
$args = func_get_args();
$date = array_pop($args); // {date} always exists
if($date !== '') {
$usage = '&new([nodate]){date};';
if (func_num_args() > 2) return $usage;
$timestamp = strtotime($date);
} else {
$usage = '&new(pagename[,nolink]);';
if (func_num_args() > 3) return $usage;
}
if (isset($timestamp) && $timestamp !== -1) {
// &new([nodate]){date};
$timestamp -= ZONETIME;
$nodate = in_array('nodate', $args);
$retval = $nodate ? '' : htmlspecialchars($date);
} else {
// &new(pagename[,nolink]);
$timestamp = 0;
$name = strip_bracket(! empty($args) ? array_shift($args) : $vars['page']);
$page = get_fullname($name, $vars['page']);
$nolink = in_array('nolink', $args);
if (substr($page, -1) == '/') {
foreach (preg_grep('/^' . preg_quote($page, '/') . '/',
get_existpages()) as $page) {
$_timestamp = get_filetime($page);
if ($timestamp < $_timestamp) {
// Show the latest page
$retval = $nolink ? '' : make_pagelink($page);
$timestamp = $_timestamp;
}
}
} else if (is_page($page)) {
$retval = $nolink ? '' : make_pagelink($page, $name);
$timestamp = get_filetime($page);
}
if ($timestamp == 0) return '';
}
$erapse = UTIME - $timestamp;
foreach ($_plugin_new_elapses as $limit=>$tag) {
if ($erapse <= $limit) {
$retval .= sprintf($tag, get_passage($timestamp));
break;
}
}
return sprintf(PLUGIN_NEW_FORMAT, $retval);
}
?>