Oct 02, 2009

/modules/calendar/theme/calendar.html の修正

旧Ganesha's Lab.(by SQLite2版Loggix)より移転転記。(2009-12-13)

Loggix 9.7.28の calendar.html 内にバグがあったので2箇所ほど修正。表面上は何の問題もないように見えるが、修正しないとThe W3C Markup Validation Servicevalidが貰えない。

まず修正したのは、calendar.html の4行目~10行目にまたがる<tl> ~ </tl> の部分。5行目の<th>に対応する</th>が無かったので、10行目の</tl>の前、9行目に</th>を追記した。

*修正後のコード(赤字部分が修正箇所)

<tr>
<th colspan="7" abbr="Year and Month">
<a href="<?php echo $item['calendar']['dir']?>/<?php echo $item['calendar']['target']?>.php?d=<?php echo $item['calendar']['prev_month']?>&ex=1" class="prev-month">« </a>  
<a href="<?php echo $item['calendar']['dir']?>/<?php echo $item['calendar']['target']?>.php?d=<?php echo $item['calendar']['this_month']?>&ex=1"><?php echo $item['calendar']['year_and_month']?></a> 
<a href="<?php echo $item['calendar']['dir']?>/<?php echo $item['calendar']['target']?>.php?d=<?php echo $item['calendar']['next_month']?>&ex=1" class="next-month"> »</a> 
</th>
</tr>

次に、calendar.html の26行目~34行目にまたがる <ul> ~ </ul> の部分。28行目の <ul> が26行目の <ul> の直接の子要素になってしまっている上に、33行目の </li> に対応する <li> が無い。これは、実は27行目の <li> ~ </li> の </li> が余分で、実際には27行目の <li> と33行目の </li> が対応するのだ。そう考えれば、28行目の <ul> はこの <li> ~ </li> の中に入るので、26行目の <ul> の直接の子要素にならない。

*修正後のコード(赤字部分が修正箇所)

<ul id="archives">
 <li><a id="more-archives">Archives</a></li>
  <ul id="arcvhies-by-year"> 
 <?php foreach($item['calendar']['month_array'] as $key => $value ): ?>
  <li><a href="<?php echo $item['calendar']['dir']?>/<?php echo $item['calendar']['target']?>.php?d=<?php echo $key?>"><?php echo date('Y / m', strtotime($key))?></a></li>
 <?php endforeach?>
 </ul>
 </li>
</ul>

これで問題なくThe W3C Markup Validation Servicevalidが貰えるようになっているはず。