function plugin_weblog_rss_action()
{
    global $rss_max, $page_title, $WikiName, $BracketName, $script, $whatsnew, $trackback, $use_static_url, $anon_writable;
    global $vars;
    global $options, $_weblog_msgs;
    //コンフィグの読み込み(指定weblog固有)
    $conf_name = $vars['config'];
    $options = weblog_get_options($conf_name, $options);
    $page = strip_bracket($options['PREFIX']);
    $with_content = $vars['content'];
    $list_count = $vars['count'];
    if ($list_count == 0) {
        $list_count = $rss_max;
    }
    $lines = get_existpages(false, $page, $list_count, " ORDER BY editedtime DESC", true);
    header("Content-type: application/xml");
    if (is_page($page)) {
        $linkpage = $page;
    } else {
        if (strrchr($page, "/")) {
            $_p = substr($page, 0, -strlen(strrchr($page, "/")));
            if (is_page($_p)) {
                $linkpage = $_p;
            }
        } else {
            $linkpage = $whatsnew;
        }
    }
    if ($use_static_url) {
        $linkpage_url = XOOPS_WIKI_URL . "/" . get_pgid_by_name($linkpage) . ".html";
    } else {
        $linkpage_url = $script . "?" . rawurlencode($linkpage);
    }
    $page_title_utf8 = $page_title;
    if (function_exists("mb_convert_encoding")) {
        $page_title_utf8 = mb_convert_encoding($page_title_utf8, "UTF-8", "auto");
        //		$page_utf8 = mb_convert_encoding($linkpage,"UTF-8","auto");
        $page_utf8 = mb_convert_encoding($options['NAME'], "UTF-8", "auto");
        $page_add_utf8 = $linkpage ? "-" . $page_utf8 : "";
    }
    $item = "";
    $rdf_li = "";
    foreach ($lines as $line) {
        $vars['page'] = $line;
        $page_name = strip_bracket($line);
        if (!preg_match("/^(.*\\/)?[0-9\\-]+\$/", $page_name)) {
            continue;
        }
        $src = @join("", get_source($page_name));
        $sources = $src;
        if (preg_match("/\\&weblog_field\\(__SUBJECT\\)\\{([^}]+)\\}\\;/m", $sources, $match)) {
            $subject = $match[1];
        }
        if (preg_match("/\\&weblog_field\\(__AUTHOR\\)\\{([^}]+)\\}\\;/m", $sources, $match)) {
            $author = $match[1];
        }
        if (preg_match("/\\&weblog_field\\(__CATEGORY,:([^\\)]+)\\)\\{([^}]+)\\}\\;((\\[ )?\\[\\[.*\\]\\]( \\])?)+/m", $sources, $match)) {
            $catpath = $match[1];
            $category = $match[2];
        }
        if (preg_match("/#weblog_field\\(__BODY\\,Start\\)\\s*\n(.*\n)#weblog_field\\(__BODY\\,End\\)\n/ms", $sources, $match)) {
            $body = $match[1];
            $body = preg_replace("/\\s*((\r\n)|(\r)|(\n))/", "\n", $body);
        }
        $title = mb_convert_encoding($subject, "UTF-8", "auto");
        $url = strip_bracket($line);
        //		if ($page) $title = preg_replace("/^".preg_quote($page_utf8,"/")."\//","",$title);
        $title = htmlspecialchars($title);
        $desc = date("D, d M Y H:i:s T", filemtime(get_filename(encode($line))));
        $dcdate = substr_replace(date("Y-m-d\\TH:i:sO", filemtime(get_filename(encode($line)))), ':', -2, 0);
        if ($use_static_url) {
            $link_url = XOOPS_WIKI_URL . "/" . get_pgid_by_name($line) . ".html";
        } else {
            $link_url = $script . "?" . rawurlencode($url);
        }
        $items .= "<item rdf:about=\"" . $link_url . "\">\n";
        $items .= " <title>{$title}</title>\n";
        $items .= " <link>" . $link_url . "</link>\n";
        $items .= " <dc:date>{$dcdate}</dc:date>\n";
        $_anon_writable = $anon_writable;
        $anon_writable = 0;
        $desc = convert_html($body, false, false);
        $desc = mb_convert_encoding(mb_substr(strip_htmltag($desc), 0, 250, "EUC-JP"), "UTF-8", "auto");
        $desc = htmlspecialchars($desc);
        $desc = mb_ereg_replace("\n", "", $desc);
        $items .= " <description>{$desc}</description>\n";
        if ($with_content == "true") {
            $src = preg_replace("/\\&weblog_field\\(__EDIT\\,[^\\)]+\\);/m", "", $src);
            $content = convert_html($src, false, false);
            $content = mb_convert_encoding($content, "UTF-8", "auto");
            $content = preg_replace("/\\<input [^\\>]+\\/>(\n)?/ms", "", $content);
            $content = preg_replace("/^(\\s*\n)+/mS", "\n", $content);
            $content = preg_replace("/\\s*\\<br \\/\\>\\s*/mS", "<br />", $content);
            $content = preg_replace("/class\\=\"p\\_right\"/", 'style="text-align:right;"', $content);
            $items .= "<content:encoded>\n<![CDATA[\n";
            $items .= "{$content}\n";
            $items .= "]]>\n</content:encoded>\n";
        }
        $anon_writable = $anon_writable = 0;
        //trackback
        if ($trackback) {
            $dc_identifier = $trackback_ping = '';
            $r_page = rawurlencode($url);
            $tb_id = tb_get_id($url);
            $dc_identifier = " <dc:identifer>{$link_url}</dc:identifer>\n";
            $trackback_ping = " <trackback:ping>{$script}?pwm_ping={$tb_id}</trackback:ping>\n";
            $items .= $dc_identifier . $trackback_ping;
        }
        if ($category != "") {
            $cats = explode(",", $category);
            foreach ($cats as $cat_item) {
                //				$subject = $catpath."/".$cat_item;
                $subject = $cat_item;
                $subject = mb_convert_encoding($subject, "UTF-8", "auto");
                $items .= "<dc:subject>{$subject}</dc:subject>\n";
            }
        }
        $items .= "</item>\n\n";
        $rdf_li .= "<rdf:li rdf:resource=\"" . $link_url . "\" />\n";
    }
    //	header('Content-type: text');
    $r_page = rawurlencode($page);
    echo <<<EOD
<?xml version="1.0" encoding="utf-8"?>

<rdf:RDF 
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns="http://purl.org/rss/1.0/"
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
EOD;
    if ($with_content == "true") {
        echo "  xmlns:content=\"http://purl.org/rss/1.0/modules/content/\"\n";
    }
    if ($trackback) {
        echo "  xmlns:trackback=\"http://madskills.com/public/xml/rss/module/trackback/\"\n";
    }
    echo <<<EOD
  xml:lang="ja">
  <channel rdf:about="{$script}?plugin=weblog_rss&amp;config={$conf_name}&amp;content={$with_content}&amp;count={$list_count}">
  <title>{$page_title_utf8}.{$page_add_utf8}</title>
  <link>{$linkpage_url}</link>
  <description>PukiWiki Weblog RecentChanges</description>
  <items>
   <rdf:Seq>
      {$rdf_li}
   </rdf:Seq>
  </items>
 </channel>
 {$items}
</rdf:RDF>
EOD;
    exit;
}
function weblog_viewer_show_calendar($prefix, &$params)
{
    global $script, $weeklabels, $vars, $command, $WikiName, $BracketName;
    global $options, $_weblog_msgs;
    require_once "calendar2.inc.php";
    $date_str = $params['month'];
    $yr = substr($date_str, 0, 4);
    $mon = substr($date_str, 5, 2);
    if ($yr != date("Y") || $mon != date("m")) {
        $now_day = 1;
        $other_month = 1;
    } else {
        $now_day = date("d");
        $other_month = 0;
    }
    $today = getdate(mktime(0, 0, 0, $mon, $now_day, $yr));
    $m_num = $today[mon];
    $d_num = $today[mday];
    $year = $today[year];
    $f_today = getdate(mktime(0, 0, 0, $m_num, 1, $year));
    $wday = $f_today[wday];
    $day = 1;
    $fweek = true;
    $ret .= '
<table class="style_calendar" cellspacing="1" border="0">
  <tr>
    <td align="middle" class="style_td_caltop" colspan="7">
      <div class="small" style="text-align:center"><strong>' . $date_str . '</strong></div>
    </td>
  </tr>
  <tr>
';
    foreach ($weeklabels as $label) {
        $ret .= '
    <td align="middle" class="style_td_week">
      <div class="small" style="text-align:center"><strong>' . $label . '</strong></div>
    </td>';
    }
    $ret .= "</tr>\n<tr>\n";
    while (checkdate($m_num, $day, $year)) {
        $dt = sprintf("%4d-%02d-%02d", $year, $m_num, $day);
        $holiday = check_holiday($year, $m_num, $day);
        if ($holiday) {
            $title_tag = "[" . get_holiday($holiday) . "]";
        } else {
            $title_tag = "";
        }
        $name = "{$prefix}{$dt}";
        $page = "[[{$prefix}{$dt}]]";
        $page_url = rawurlencode("[[{$prefix}{$dt}]]");
        if ($cmd == "edit") {
            $refer = "&amp;refer={$page_url}";
        } else {
            $refer = "";
        }
        if (!is_page($page)) {
            $link = "<strong>{$day}</strong>";
            $bg = "";
        } else {
            if ($params['c_prefix']) {
                $child_count = weblog_viewer_count_contents($name, $prefix, $params);
                $day_title = sprintf($_weblog_msgs['msg_daily'], $dt, $title_tag, $child_count);
            } else {
                $day_title = "{$name} {$title_tag}";
            }
            if ($use_static_url = 1) {
                $pgid = get_pgid_by_name($page);
                $href = XOOPS_WIKI_URL . "/{$pgid}.html";
            } else {
                $href = $script . '?' . rawurlencode($name);
            }
            $link = "<a href=\"{$href}\" title=\"{$day_title}\"><strong>{$day}</strong></a>";
            $bg = "style=\"background-image:url(image/pencil.gif);background-repeat:no-repeat;\"";
        }
        if ($fweek) {
            for ($i = 0; $i < $wday; $i++) {
                // Blank
                $ret .= "    <td align=\"center\" class=\"style_td_blank\">&nbsp;</td>\n";
            }
            $fweek = false;
        }
        if ($wday == 0) {
            $ret .= "  </tr><tr>\n";
        }
        if (!$other_month && $day == $today[mday] && $m_num == $today[mon] && $year == $today[year]) {
            //  Today
            $ret .= "    <td align=\"center\" class=\"style_td_today\" {$bg} nowrap><span class=\"small\">{$link}</span></td>\n";
        } else {
            if ($wday == 0 || $holiday) {
                //  Sunday
                $ret .= "    <td align=\"center\" class=\"style_td_sun\" {$bg} title=\"{$title_tag}\" nowrap><span class=\"small\">{$link}</span></td>\n";
            } else {
                if ($wday == 6) {
                    //  Saturday
                    $ret .= "    <td align=\"center\" class=\"style_td_sat\" {$bg} nowrap><span class=\"small\">{$link}</span></td>\n";
                } else {
                    // Weekday
                    $ret .= "    <td align=\"center\" class=\"style_td_day\" {$bg} nowrap><span class=\"small\">{$link}</span></td>\n";
                }
            }
        }
        $day++;
        $wday++;
        $wday = $wday % 7;
    }
    if ($wday > 0) {
        while ($wday < 7) {
            // Blank
            $ret .= "    <td align=\"center\" class=\"style_td_blank\">&nbsp;</td>\n";
            $wday++;
        }
    }
    $ret .= "  </tr>\n</table>\n";
    return $ret;
}