' . "\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; } ?>