OSDN Git Service

&edit;: strtolower()
[pukiwiki/pukiwiki.git] / plugin / calendar2.inc.php
index 17cdbc9..3bbd0e6 100644 (file)
@@ -1,79 +1,80 @@
 <?php
-// $Id: calendar2.inc.php,v 1.16 2003/01/31 01:49:35 panda Exp $
-// *°ú¿ô¤Ëoff¤È½ñ¤¯¤³¤È¤Çº£Æü¤ÎÆüµ­¤òɽ¼¨¤·¤Ê¤¤¤è¤¦¤Ë¤·¤¿¡£
+// $Id: calendar2.inc.php,v 1.23 2005/05/01 07:38:57 henoheno Exp $
+//
+// Calendar2 plugin
+//
+// Usage:
+//     #calendar2({[pagename|*],[yyyymm],[off]})
+//     off: Don't view today's
+
 function plugin_calendar2_convert()
 {
-       global $script,$vars,$post,$get,$weeklabels,$WikiName,$BracketName;
+       global $script, $vars, $post, $get, $weeklabels, $WikiName, $BracketName;
        global $_calendar2_plugin_edit, $_calendar2_plugin_empty;
-       
+
+       $date_str = get_date('Ym');
+       $base     = strip_bracket($vars['page']);
+
        $today_view = TRUE;
-       
-       $date_str = date('Ym');
-       $base = strip_bracket($vars['page']);
-       
-       if (func_num_args() > 0) {
+       if (func_num_args()) {
                $args = func_get_args();
                foreach ($args as $arg) {
                        if (is_numeric($arg) && strlen($arg) == 6) {
                                $date_str = $arg;
-                       }
-                       else if ($arg == 'off') {
+                       } else if ($arg == 'off') {
                                $today_view = FALSE;
-                       }
-                       else {
+                       } else {
                                $base = strip_bracket($arg);
                        }
                }
        }
        if ($base == '*') {
-               $base = '';
+               $base   = '';
                $prefix = '';
+       } else {
+               $prefix = $base . '/';
        }
-       else {
-               $prefix = $base.'/';
-       }
-       $r_base = rawurlencode($base);
-       $s_base = htmlspecialchars($base);
+       $r_base   = rawurlencode($base);
+       $s_base   = htmlspecialchars($base);
        $r_prefix = rawurlencode($prefix);
        $s_prefix = htmlspecialchars($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));
-       
+
+       $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));
+       $year  = $today['year'];
+
+       $f_today = getdate(mktime(0, 0, 0, $m_num, 1, $year) - LOCALZONE + ZONETIME);
        $wday = $f_today['wday'];
-       $day = 1;
-       $fweek = TRUE;
-       
-       $m_name = "$year.$m_num";
-       
-       $y = substr($date_str,0,4)+0;
-       $m = substr($date_str,4,2)+0;
-       
+       $day  = 1;
+
+       $m_name = $year . '.' . $m_num;
+
+       $y = substr($date_str, 0, 4) + 0;
+       $m = substr($date_str, 4, 2) + 0;
+
        $prev_date_str = ($m == 1) ?
-               sprintf('%04d%02d',$y - 1,12) : sprintf('%04d%02d',$y,$m - 1);
-       
+               sprintf('%04d%02d', $y - 1, 12) : sprintf('%04d%02d', $y, $m - 1);
+
        $next_date_str = ($m == 12) ?
-               sprintf('%04d%02d',$y + 1,1) : sprintf('%04d%02d',$y,$m + 1);
-       
+               sprintf('%04d%02d', $y + 1, 1) : sprintf('%04d%02d', $y, $m + 1);
+
        $ret = '';
        if ($today_view) {
-               $ret = "<table border=\"0\" summary=\"calendar frame\">\n <tr>\n  <td valign=\"top\">\n";
+               $ret = '<table border="0" summary="calendar frame">' . "\n" .
+                       ' <tr>' . "\n" .
+                       '  <td valign="top">' . "\n";
        }
        $ret .= <<<EOD
    <table class="style_calendar" cellspacing="1" width="150" border="0" summary="calendar body">
@@ -83,109 +84,117 @@ function plugin_calendar2_convert()
       <strong>$m_name</strong>
       <a href="$script?plugin=calendar2&amp;file=$r_base&amp;date=$next_date_str">&gt;&gt;</a>
 EOD;
-       
-       if ($prefix) {
-               $ret .= "\n      <br />[<a href=\"$script?$r_base\">$s_base</a>]";
-       }
-       
-       $ret .= "\n     </td>\n    </tr>\n    <tr>\n";
-       
-       foreach($weeklabels as $label) {
-               $ret .= "     <td class=\"style_td_week\">$label</td>\n";
-       }
-       
-       $ret .= "    </tr>\n    <tr>\n";
-       
-       while (checkdate($m_num,$day,$year)) {
-               $dt = sprintf('%4d-%02d-%02d', $year, $m_num, $day);
-               $page = $prefix.$dt;
+
+       if ($prefix) $ret .= "\n" .
+               '      <br />[<a href="' . $script . '?' . $r_base . '">' . $s_base . '</a>]';
+
+       $ret .= "\n" .
+               '     </td>' . "\n" .
+               '    </tr>'  . "\n" .
+               '    <tr>'   . "\n";
+
+       foreach($weeklabels as $label)
+               $ret .= '     <td class="style_td_week">' . $label . '</td>' . "\n";
+
+       $ret .= '    </tr>' . "\n" .
+               '    <tr>'  . "\n";
+       // Blank
+       for ($i = 0; $i < $wday; $i++)
+               $ret .= '     <td class="style_td_blank">&nbsp;</td>' . "\n";
+
+       while (checkdate($m_num, $day, $year)) {
+               $dt     = sprintf('%4d-%02d-%02d', $year, $m_num, $day);
+               $page   = $prefix . $dt;
                $r_page = rawurlencode($page);
                $s_page = htmlspecialchars($page);
-               
-               if ($fweek) {
-                       for ($i = 0; $i < $wday; $i++) { // Blank 
-                               $ret .= "     <td class=\"style_td_blank\">&nbsp;</td>\n";
-                       }
-                       $fweek = FALSE;
-               }
-               
-               if ($wday == 0) {
-                       $ret .= "    </tr>\n    <tr>\n";
-               }
-               
+
+               if ($wday == 0 && $day > 1)
+                       $ret .=
+                       '    </tr>' . "\n" .
+                       '    <tr>' . "\n";
+
                $style = 'style_td_day'; // Weekday
-               if (!$other_month && ($day == $today['mday']) && ($m_num == $today['mon']) && ($year == $today['year'])) { // Today
+               if (! $other_month && ($day == $today['mday']) && ($m_num == $today['mon']) && ($year == $today['year'])) { // Today
                        $style = 'style_td_today';
-               }
-               else if ($wday == 0) { // Sunday 
+               } else if ($wday == 0) { // Sunday
                        $style = 'style_td_sun';
-               }
-               else if ($wday == 6) { //  Saturday 
+               } else if ($wday == 6) { //  Saturday
                        $style = 'style_td_sat';
                }
-               
+
                if (is_page($page)) {
-                       $link = "<a href=\"$script?$r_page\" title=\"$s_page\"><strong>$day</strong></a>";
-               }
-               else {
-                       $link = "<a class=\"small\" href=\"$script?cmd=edit&amp;page=$r_page&amp;refer=$r_base\" title=\"$s_page\">$day</a>";
+                       $link = '<a href="' . $script . '?' . $r_page . '" title="' . $s_page .
+                               '"><strong>' . $day . '</strong></a>';
+               } else {
+                       if (PKWK_READONLY) {
+                               $link = '<span class="small">' . $day . '</small>';
+                       } else {
+                               $link = $script . '?cmd=edit&amp;page=' . $r_page . '&amp;refer=' . $r_base;
+                               $link = '<a class="small" href="' . $link . '" title="' . $s_page . '">' . $day . '</a>';
+                       }
                }
-               
-               $ret .= "     <td class=\"$style\">\n      $link\n     </td>\n";
-               $day++;
+
+               $ret .= '     <td class="' . $style . '">' . "\n" .
+                       '      ' . $link . "\n" .
+                       '     </td>' . "\n";
+               ++$day;
                $wday = ++$wday % 7;
        }
-       if ($wday > 0) {
-               while ($wday++ < 7) { // Blank 
-                       $ret .= "     <td class=\"style_td_blank\">&nbsp;</td>\n";
-               }
-       }
-       
-       $ret .= "    </tr>\n   </table>\n";
-       
+
+       if ($wday > 0)
+               while ($wday++ < 7) // Blank
+                       $ret .= '     <td class="style_td_blank">&nbsp;</td>' . "\n";
+
+       $ret .= '    </tr>'   . "\n" .
+               '   </table>' . "\n";
+
        if ($today_view) {
-               $tpage = $prefix.sprintf("%4d-%02d-%02d", $today['year'], $today['mon'], $today['mday']);
+               $tpage = $prefix . sprintf('%4d-%02d-%02d', $today['year'],
+                       $today['mon'], $today['mday']);
                $r_tpage = rawurlencode($tpage);
                if (is_page($tpage)) {
                        $_page = $vars['page'];
                        $get['page'] = $post['page'] = $vars['page'] = $tpage;
                        $str = convert_html(get_source($tpage));
-                       $str .= "<hr /><a class=\"small\" href=\"$script?cmd=edit&amp;page=$r_tpage\">$_calendar2_plugin_edit</a>";
+                       $str .= '<hr /><a class="small" href="' . $script .
+                               '?cmd=edit&amp;page=' . $r_tpage . '">' .
+                               $_calendar2_plugin_edit . '</a>';
                        $get['page'] = $post['page'] = $vars['page'] = $_page;
+               } else {
+                       $str = sprintf($_calendar2_plugin_empty,
+                               make_pagelink(sprintf('%s%4d-%02d-%02d', $prefix,
+                               $today['year'], $today['mon'], $today['mday'])));
                }
-               else {
-                       $str = sprintf($_calendar2_plugin_empty,make_link(sprintf('[[%s%4d-%02d-%02d]]',$prefix, $today['year'], $today['mon'], $today['mday'])));
-               }
-               $ret .= "  </td>\n  <td valign=\"top\">$str</td>\n </tr>\n</table>\n";
+               $ret .= '  </td>' . "\n" .
+                       '  <td valign="top">' . $str . '</td>' . "\n" .
+                       ' </tr>'   . "\n" .
+                       '</table>' . "\n";
        }
-       
+
        return $ret;
 }
 
 function plugin_calendar2_action()
 {
        global $vars;
-       
+
        $page = strip_bracket($vars['page']);
        $vars['page'] = '*';
-       if ($vars['file']) {
-               $vars['page'] = $vars['file'];
-       }
-       
+       if ($vars['file']) $vars['page'] = $vars['file'];
+
        $date = $vars['date'];
-       
-       if ($date == '') {
-               $date = date("Ym");
-       }
-       $yy = sprintf("%04d.%02d",substr($date,0,4),substr($date,4,2));
-       
-       $aryargs = array($vars['page'],$date);
-       $ret['msg'] = "calendar {$vars['page']}/$yy";
-       $ret['body'] = call_user_func_array('plugin_calendar2_convert',$aryargs);
-       
+
+       if ($date == '') $date = get_date('Ym');
+       $yy = sprintf('%04d.%02d', substr($date, 0, 4),substr($date, 4, 2));
+
+       $aryargs = array($vars['page'], $date);
+       $s_page  = htmlspecialchars($vars['page']);
+
+       $ret['msg']  = 'calendar ' . $s_page . '/' . $yy;
+       $ret['body'] = call_user_func_array('plugin_calendar2_convert', $aryargs);
+
        $vars['page'] = $page;
-       
+
        return $ret;
 }
-
 ?>