calendar2で不正なタグが出力されます。not Valid XHTML 1.1!
サンプル : :test_cal の出力
153: <tr> 154: <td class="style_td_week">日</td> 155: <td class="style_td_week">月</td> 156: <td class="style_td_week">火</td> 157: <td class="style_td_week">水</td> 158: <td class="style_td_week">木</td> 159: <td class="style_td_week">金</td> 160: <td class="style_td_week">土</td> 161: </tr> 162: <tr> 163: </tr> 164: <tr> 165: <td class="style_td_sun">
1日が日曜日の場合、カレンダーに1日より前のブランク日が存在しない。calendar2はブランク日の出力の前後で、ブランク日が存在しないときにも<tr>及び</tr>を出力してしまっている。下記のように修正。-- reimy 2003-06-03 (火) 04:17:00
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; $r_page = rawurlencode($page); $s_page = htmlspecialchars($page); if ($fweek) { + if ($wday != 0) $ret .= " </tr>\n <tr>\n"; for ($i = 0; $i < $wday; $i++) { // Blank $ret .= " <td class=\"style_td_blank\"> </td>\n"; } $fweek = FALSE; } if ($wday == 0) { $ret .= " </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; $r_page = rawurlencode($page); $s_page = htmlspecialchars($page); if ($fweek) { for ($i = 0; $i < $wday; $i++) { // Blank $ret .= " <td class=\"style_td_blank\"> </td>\n"; } $fweek = FALSE; } - if ($wday == 0) { + if ($wday == 0 && $day > 1) { $ret .= " </tr>\n <tr>\n"; }