|
129 | 129 | $eom = mktime(0, 0, 1, $cm+1, 0, $cy);
|
130 | 130 |
|
131 | 131 | // Link to previous month (but do not link to too early dates)
|
132 |
| -$lm = mktime(0, 0, 1, $cm, 0, $cy); |
133 |
| -if (valid_year(date("Y", $lm))) { |
134 |
| - $prev_link = '<a href="/cal.php' . strftime('?cm=%m&cy=%Y">%B, %Y</a>', $lm); |
135 |
| -} else { |
136 |
| - $prev_link = ' '; |
137 |
| -} |
| 132 | +$prev_link = (function() use ($cm, $cy) { |
| 133 | + $lm = mktime(0, 0, 1, $cm, 0, $cy); |
| 134 | + $year = date('Y', $lm); |
| 135 | + if (!valid_year($year)) { |
| 136 | + return ' '; |
| 137 | + } |
| 138 | + |
| 139 | + $month = date('m', $lm); |
| 140 | + $monthName = date('F', $lm); |
| 141 | + return sprintf('<a href="/cal.php?cm=%s&cy=%s">%s, %s</a>', |
| 142 | + urlencode($month), |
| 143 | + urlencode($year), |
| 144 | + htmlentities($monthName), |
| 145 | + htmlentities($year)); |
| 146 | +})(); |
138 | 147 |
|
139 | 148 | // Link to next month (but do not link to too early dates)
|
140 |
| -$nm = mktime(0, 0, 1, $cm+1, 1, $cy); |
141 |
| -if (valid_year(date("Y", $nm))) { |
142 |
| - $next_link = '<a href="/cal.php' . strftime('?cm=%m&cy=%Y">%B, %Y</a>', $nm); |
143 |
| -} else { |
144 |
| - $next_link = ' '; |
145 |
| -} |
| 149 | +$next_link = (function() use ($cm, $cy) { |
| 150 | + $nm = mktime(0, 0, 1, $cm+1, 1, $cy); |
| 151 | + $year = date('Y', $nm); |
| 152 | + if (!valid_year($year)) { |
| 153 | + return ' '; |
| 154 | + } |
| 155 | + |
| 156 | + $month = date('m', $nm); |
| 157 | + $monthName = date('F', $nm); |
| 158 | + return sprintf('<a href="/cal.php?cm=%s&cy=%s">%s, %s</a>', |
| 159 | + urlencode($month), |
| 160 | + urlencode($year), |
| 161 | + htmlentities($monthName), |
| 162 | + htmlentities($year)); |
| 163 | +})(); |
146 | 164 |
|
147 | 165 | // Print out navigation links for previous and next month
|
148 | 166 | echo '<br><table id="calnav" width="100%" border="0" cellspacing="0" cellpadding="3">',
|
149 | 167 | "\n<tr>", '<td align="left" width="33%">', $prev_link, '</td>',
|
150 |
| - '<td align="center" width="33%">', strftime('<b>%B, %Y</b></td>', $bom), |
| 168 | + '<td align="center" width="33%"><b>', htmlentities(date('F, Y', $bom)), '</b></td>', |
151 | 169 | '<td align="right" width="33%">', $next_link, "</td></tr>\n</table>\n";
|
152 | 170 |
|
153 | 171 | // Begin the calendar table
|
|
0 commit comments