OSDN Git Service

make_heading()関数を使用するようにした
[pukiwiki/pukiwiki.git] / plugin / calendar.inc.php
1 <?php
2 // $Id: calendar.inc.php,v 1.14 2003/02/28 14:25:10 panda Exp $
3
4 function plugin_calendar_convert()
5 {
6         global $script,$weeklabels,$vars,$command;
7         
8         $args = func_get_args();
9         
10         $date_str = get_date("Ym");
11         $page = '';
12         
13         if (func_num_args() == 1)
14         {
15                 if (is_numeric($args[0]) && strlen($args[0]) == 6)
16                 {
17                         $date_str = $args[0];
18                 }
19                 else
20                 {
21                         $page = $args[0];
22                 }
23         }
24         else if (func_num_args() == 2)
25         {
26                 if (is_numeric($args[0]) && strlen($args[0]) == 6)
27                 {
28                         $date_str = $args[0];
29                         $page = $args[1];
30                 }
31                 else if (is_numeric($args[1]) && strlen($args[1]) == 6)
32                 {
33                         $date_str = $args[1];
34                         $page = $args[0];
35                 }
36         }
37         
38         if ($page == '')
39         {
40                 $page = $vars['page'];
41         }
42         else if (!is_pagename($page))
43         {
44                 return FALSE;
45         }
46         $pre = $page;
47         $prefix = $page.'/';
48
49
50         if (!$command) $cmd = "read";
51         else          $cmd = $command;
52         
53         $prefix = strip_tags($prefix);
54         
55         $yr = substr($date_str,0,4);
56         $mon = substr($date_str,4,2);
57         if ($yr != get_date("Y") || $mon != get_date("m"))
58         {
59                 $now_day = 1;
60                 $other_month = 1;
61         }
62         else
63         {
64                 $now_day = get_date("d");
65                 $other_month = 0;
66         }
67         $today = getdate(mktime(0,0,0,$mon,$now_day,$yr) - LOCALZONE + ZONETIME);
68         
69         $m_num = $today['mon'];
70         $d_num = $today['mday'];
71         $year = $today['year'];
72         $f_today = getdate(mktime(0,0,0,$m_num,1,$year) - LOCALZONE + ZONETIME);
73         $wday = $f_today['wday'];
74         $day = 1;
75         $fweek = true;
76
77         $m_name = "$year.$m_num ($cmd)";
78
79         $prefix_url = rawurlencode(is_pagename($pre) ? $pre : "[[$pre]]");
80         $pre = strip_bracket($pre);
81
82         $ret = <<<EOD
83 <table class="style_calendar" cellspacing="1" width="150" border="0">
84  <tr>
85   <td align="middle" class="style_td_caltop" colspan="7">
86    <span class="small" style="text_align:center"><strong>$m_name</strong><br />
87    [<a href="$script?$prefix_url">$pre</a>]</span>
88   </td>
89  </tr>
90  <tr>
91 EOD;
92
93         foreach($weeklabels as $label)
94                 $ret .= <<<EOD
95   <td align="middle" class="style_td_week">
96    <span class="small" style="text-align:center"><strong>$label</strong></span>
97   </td>
98 EOD;
99
100         $ret .= " </tr>\n <tr>\n";
101
102         while(checkdate($m_num,$day,$year))
103         {
104                 $dt = sprintf('%4d%02d%02d', $year, $m_num, $day);
105                 $name = "$prefix$dt";
106                 $page = "[[$name]]";
107                 $r_page = rawurlencode($page);
108                 
109                 $refer = ($cmd == "edit") ? "&amp;refer=$r_page" : '';
110                 
111                 if ($cmd == 'read' && !is_page($page))
112                         $link = "<strong>$day</strong>";
113                 else
114                         $link = "<a href=\"$script?cmd=$cmd&amp;page=$r_page$refer\" title=\"$name\"><strong>$day</strong></a>";
115
116                 if ($fweek)
117                 {
118                         for($i=0;$i<$wday;$i++)
119                         { // Blank 
120                                 $ret .= "    <td align=\"center\" class=\"style_td_blank\">&nbsp;</td>\n"; 
121                         } 
122                 $fweek=false;
123                 }
124
125                 if ($wday == 0) $ret .= "  </tr><tr>\n";
126                 if (!$other_month && ($day == $today['mday']) && ($m_num == $today['mon']) && ($year == $today['year']))
127                 {
128                         //  Today 
129                         $ret .= "    <td align=\"center\" class=\"style_td_today\"><span class=\"small\">$link</span></td>\n"; 
130                 }
131                 else if ($wday == 0)
132                 {
133                         //  Sunday 
134                         $ret .= "    <td align=\"center\" class=\"style_td_sun\"><span class=\"small\">$link</span></td>\n";
135                 }
136                 else if ($wday == 6)
137                 {
138                         //  Saturday 
139                         $ret .= "    <td align=\"center\" class=\"style_td_sat\"><span class=\"small\">$link</span></td>\n";
140                 }
141                 else
142                 {
143                         // Weekday 
144                         $ret .= "    <td align=\"center\" class=\"style_td_day\"><span class=\"small\">$link</span></td>\n";
145                 }
146                 $day++;
147                 $wday++;
148                 $wday = $wday % 7;
149         }
150         if ($wday > 0)
151         {
152                 while($wday < 7)
153                 { // Blank 
154                         $ret .= "    <td align=\"center\" class=\"style_td_blank\">&nbsp;</td>\n";
155                 $wday++;
156                 } 
157         }
158
159         $ret .= "  </tr>\n</table>\n";
160         return $ret;
161 }
162 ?>