<?php
-// $Id: calendar.inc.php,v 1.10 2002/12/02 02:51:24 panda Exp $
+// PukiWiki - Yet another WikiWikiWeb clone
+// calendar.inc.php
+// Copyright
+// 2002-2017 PukiWiki Development Team
+// 2001-2002 Originally written by yu-ji
+// License: GPL v2 or (at your option) any later version
+//
+// Calendar plugin
function plugin_calendar_convert()
{
- global $script,$weeklabels,$vars,$command,$WikiName,$BracketName;
-
- $args = func_get_args();
-
- if(func_num_args() == 0)
- {
- $date_str = date("Ym");
- $pre = $vars[page];
- $prefix = preg_replace("/^\[\[(.*)\]\]$/","$1",$vars[page])."/";
- }
- else if(func_num_args() == 1)
- {
- if(is_numeric($args[0]) && strlen($args[0]) == 6)
- {
+ global $weeklabels, $vars, $command;
+
+ $script = get_base_uri();
+ $args = func_get_args();
+ $date_str = get_date('Ym');
+ $page = '';
+
+ if (func_num_args() == 1) {
+ if (is_numeric($args[0]) && strlen($args[0]) == 6) {
$date_str = $args[0];
- $pre = $vars[page];
- $prefix = preg_replace("/^\[\[(.*)\]\]$/","$1",$vars[page])."/";
+ } else {
+ $page = $args[0];
}
- else
- {
- $date_str = date("Ym");
- $pre = $args[0];
- $prefix = $args[0]."/";
- }
- }
- else if(func_num_args() == 2)
- {
- if(is_numeric($args[0]) && strlen($args[0]) == 6)
- {
+ } else if (func_num_args() == 2) {
+ if (is_numeric($args[0]) && strlen($args[0]) == 6) {
$date_str = $args[0];
- $pre = $args[1];
- $prefix = $args[1]."/";
- }
- else if(is_numeric($args[1]) && strlen($args[1]) == 6)
- {
+ $page = $args[1];
+ } else if (is_numeric($args[1]) && strlen($args[1]) == 6) {
$date_str = $args[1];
- $pre = $args[0];
- $prefix = $args[0]."/";
- }
- else
- {
- $date_str = date("Ym");
- $pre = $vars[page];
- $prefix = preg_replace("/^\[\[(.*)\]\]$/","$1",$vars[page])."/";
+ $page = $args[0];
}
}
- else
- {
+
+ if ($page == '') {
+ $page = $vars['page'];
+ } else if (! is_pagename($page)) {
return FALSE;
}
+ $pre = $page;
+ $prefix = $page . '/';
+
+
+ if (! $command) {
+ $cmd = 'read';
+ } else {
+ $cmd = $command;
+ }
- if(!$command) $cmd = "read";
- else $cmd = $command;
-
$prefix = strip_tags($prefix);
-
- $yr = substr($date_str,0,4);
- $mon = substr($date_str,4,2);
- if($yr != date("Y") || $mon != date("m"))
- {
+
+ $yr = substr($date_str, 0, 4);
+ $mon = substr($date_str, 4, 2);
+ if ($yr != get_date('Y') || $mon != get_date('m')) {
$now_day = 1;
$other_month = 1;
- }
- else
- {
- $now_day = date("d");
+ } else {
+ $now_day = get_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;
-
- $m_name = "$year.$m_num ($cmd)";
-
- if(!preg_match("/^(($WikiName)|($BracketName))$/",$pre))
- $prefix_url = "[[".$pre."]]";
- else
- $prefix_url = $pre;
-
- $prefix_url = rawurlencode($prefix_url);
+ $today = getdate(mktime(0, 0, 0, $mon, $now_day, $yr) - LOCALZONE + ZONETIME);
+
+ $m_num = $today['mon'];
+ $d_num = $today['mday'];
+ $year = $today['year'];
+ $f_today = getdate(mktime(0, 0, 0, $m_num, 1, $year) - LOCALZONE + ZONETIME);
+ $wday = $f_today['wday'];
+ $day = 1;
+
+ $m_name = $year . '.' . $m_num . ' (' . $cmd . ')';
+
$pre = strip_bracket($pre);
+ $page_uri = get_page_uri($pre);
- $ret .= '
+ $ret = <<<EOD
<table class="style_calendar" cellspacing="1" width="150" border="0">
- <tr>
- <td align="middle" class="style_td_caltop" colspan="7">
- <div class="small" style="text-align:center"><strong>'.$m_name.'</strong><br />[<a href="'.$script.'?'.$prefix_url.'">'.$pre.'</a>]</div>
- </td>
- </tr>
- <tr>
-';
+ <tr>
+ <td class="style_td_caltop" colspan="7">
+ <strong>$m_name</strong><br />
+ [<a href="$page_uri">$pre</a>]
+ </td>
+ </tr>
+ <tr>
+EOD;
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 .= ' <td class="style_td_week"><strong>' .
+ $label . '</strong></td>' . "\n";
- $ret .= "</tr>\n<tr>\n";
-
- while(checkdate($m_num,$day,$year))
- {
- $dt = sprintf("%4d%02d%02d", $year, $m_num, $day);
- $name = "$prefix$dt";
- $page = "[[$prefix$dt]]";
- $page_url = rawurlencode("[[$prefix$dt]]");
-
- if($cmd == "edit") $refer = "&refer=$page_url";
- else $refer = "";
-
- if($cmd == "read" && !is_page($page))
- $link = "<strong>$day</strong>";
- else
- $link = "<a href=\"$script?cmd=$cmd&page=$page_url$refer\" title=\"$name\"><strong>$day</strong></a>";
-
- if($fweek)
- {
- for($i=0;$i<$wday;$i++)
- { // Blank
- $ret .= " <td align=\"center\" class=\"style_td_blank\"> </td>\n";
- }
- $fweek=false;
- }
+ $ret .= ' </tr>' . "\n" .
+ ' <tr>' . "\n";
- 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\"><span class=\"small\">$link</span></td>\n";
- }
- else if($wday == 0)
- {
- // Sunday
- $ret .= " <td align=\"center\" class=\"style_td_sun\"><span class=\"small\">$link</span></td>\n";
+ // Blank
+ for ($i = 0; $i < $wday; $i++)
+ $ret .= ' <td class="style_td_blank"> </td>' . "\n";
+
+ while(checkdate($m_num, $day, $year)) {
+ $dt = sprintf('%04d%02d%02d', $year, $m_num, $day);
+ $name = $prefix . $dt;
+ $r_page = rawurlencode($name);
+ $s_page = htmlsc($name);
+
+ $refer = ($cmd == 'edit') ? '&refer=' . rawurlencode($page) : '';
+
+ if ($cmd == 'read' && ! is_page($name)) {
+ $link = '<strong>' . $day . '</strong>';
+ } else {
+ $link = '<a href="' . $script . '?cmd=' . $cmd .
+ '&page=' . $r_page . $refer . '" title="' .
+ $s_page . '"><strong>' . $day . '</strong></a>';
}
- else if($wday == 6)
- {
- // Saturday
- $ret .= " <td align=\"center\" class=\"style_td_sat\"><span class=\"small\">$link</span></td>\n";
+
+ if ($wday == 0 && $day > 1) {
+ $ret .= ' </tr><tr>' . "\n";
}
- else
+ if (! $other_month && ($day == $today['mday']) &&
+ ($m_num == $today['mon']) && ($year == $today['year']))
{
- // Weekday
- $ret .= " <td align=\"center\" class=\"style_td_day\"><span class=\"small\">$link</span></td>\n";
+ // Today
+ $ret .= ' <td class="style_td_today"><span class="small">' .
+ $link . '</span></td>' . "\n";
+ } else if ($wday == 0) {
+ // Sunday
+ $ret .= ' <td class="style_td_sun"><span class="small">' .
+ $link . '</span></td>' . "\n";
+ } else if ($wday == 6) {
+ // Saturday
+ $ret .= ' <td class="style_td_sat"><span class="small">' .
+ $link . '</span></td>' . "\n";
+ } else {
+ // Weekday
+ $ret .= ' <td class="style_td_day"><span class="small">' .
+ $link . '</span></td>' . "\n";
}
- $day++;
- $wday++;
+ ++$day;
+ ++$wday;
$wday = $wday % 7;
}
- if($wday > 0)
- {
- while($wday < 7)
- { // Blank
- $ret .= " <td align=\"center\" class=\"style_td_blank\"> </td>\n";
- $wday++;
- }
+
+ if ($wday > 0) {
+ while($wday < 7){
+ // Blank
+ $ret .= ' <td class="style_td_blank"> </td>' . "\n";
+ ++$wday;
+ }
}
- $ret .= " </tr>\n</table>\n";
+ $ret .= ' </tr>' . "\n" .
+ '</table>' . "\n";
+
return $ret;
}
-?>