' . "\n\n";
print implode('', file($rsscache));
die;
}
// Official Main routine ...
$page_title_utf8 = mb_convert_encoding($page_title, 'UTF-8', SOURCE_ENCODING);
$self = get_script_uri();
// Creating -
$items = $rdf_li = '';
foreach (array_splice(file($recent), 0, $rss_max) as $line) {
list($time, $page) = explode("\t", rtrim($line));
$r_page = rawurlencode($page);
$title = mb_convert_encoding($page, 'UTF-8', SOURCE_ENCODING);
switch ($version) {
case '0.91': /* FALLTHROUGH */
case '2.0':
$date = get_date('D, d M Y H:i:s T', $time);
$date = ($version == '0.91') ?
' ' . $date . '' :
' ' . $date . '';
$items .= <<
$title
$self?$r_page
$date
EOD;
break;
case '1.0':
// Add - into
// $rdf_li .= ' ' . "\n";
$date = substr_replace(get_date('Y-m-d\TH:i:sO', $time), ':', -2, 0);
$trackback_ping = '';
if ($trackback) {
$tb_id = md5($r_page);
$trackback_ping = ' ' .
"$self?tb_id=$tb_id" . '';
}
if (plugin_mixirss_isValidDate(substr($page,-10)) && check_readable($page,false,false)) {
// for Calendar/MiniCalendar
$vars['page'] = $page;
$source = get_source($page);
$rdf_hx = '';
$rdf_lx = '';
$itemhx = '';
$itemlx = '';
while(!empty($source)) {
$line = array_shift($source);
if (preg_match('/^(\*{1,3})(.*)\[#([A-Za-z][\w-]+)\](.*)$/m', $line, $matches)) {
$anchortitle = strip_htmltag(convert_html($matches[2]));
$anchortitle = preg_replace("/[\r\n]/",' ',$anchortitle);
$anchortitle = '';
$sharp = '#';
$rdf_hx .= ' ' . "\n";
$itemhx .= <<
{$anchortitle}
$self?$r_page{$sharp}{$matches[3]}
$date
$self?$r_page{$sharp}{$matches[3]}
$trackback_ping
EOD;
} else if (preg_match('/^(\-{1,3})(.*)$/m', $line, $matches)) {
$anchortitle = strip_htmltag(convert_html($matches[2]));
$anchortitle = preg_replace("/[\r\n]/",' ',$anchortitle);
$anchortitle = '';
$sharp = '#';
$rdf_lx .= ' ' . "\n";
$itemlx .= <<
{$anchortitle}
$self?$r_page
$date
$self?$r_page
$trackback_ping
EOD;
}
}
if ($itemhx != '') {
$rdf_li .= $rdf_hx;
$items .= $itemhx;
} else if ($itemlx != '') {
$rdf_li .= $rdf_lx;
$items .= $itemlx;
} else {
// default
$rdf_li .= ' ' . "\n";
$items .= <<
$title
$self?$r_page
$description
$date
$self?$r_page
$trackback_ping
EOD;
}
} else if (check_readable($page,false,false)) {
//miko added
$description = strip_htmltag(convert_html(get_source($page)));
$description = mb_strimwidth(preg_replace("/[\r\n]/",' ',$description),0,MIXIRSS_DESCRIPTION_LENGTH,'...');
$description = ' ';
//miko added
$rdf_li .= ' ' . "\n";
$items .= <<
$title
$self?$r_page
$description
$date
$self?$r_page
$trackback_ping
EOD;
}
break;
}
}
// Feeding start
pkwk_common_headers();
header('Content-type: application/xml');
print '' . "\n\n";
$r_whatsnew = rawurlencode($whatsnew);
$html = '';
switch ($version) {
case '0.91':
$html .= '' . "\n";
/* FALLTHROUGH */
case '2.0':
$html .= <<
$page_title_utf8
$self?$r_whatsnew
PukiWiki RecentChanges
ja
$items
EOD;
break;
case '1.0':
$xmlns_trackback = $trackback ?
' xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"' : '';
$html .= <<
$page_title_utf8
$self?$r_whatsnew
PukiWiki RecentChanges
$rdf_li
$items
EOD;
break;
}
print $html;
// Write Cache-file
$fp = fopen($rsscache, 'w');
flock($fp, LOCK_EX);
rewind($fp);
fputs($fp, $html);
flock($fp, LOCK_UN);
fclose($fp);
exit;
}
function plugin_mixirss_isValidDate($aStr, $aSepList="-/ .")
{
if ($aSepList == "") {
return checkdate(substr($aStr,4,2),substr($aStr,6,2),substr($aStr,0,4));
}
if ( ereg("^([0-9]{2,4})[$aSepList]([0-9]{1,2})[$aSepList]([0-9]{1,2})$", $aStr, $m) ) {
return checkdate($m[2], $m[3], $m[1]);
}
return false;
}
?>