不可思議な現象の原因は・・・
作業記録が表示できない不可思議な現象の原因を究明するために、急遽20040124時点のCVS投入ファイルを
別名モジュールに仕立てて原因を究明する事にした。
20040124版では、どのページもきちんと表示できる。ということは、Apache2のせいでは無いようだ。
というところで、0.008b4の方で作業記録のページが表示できるタイミングでも、
Calendar2プラグインの
Categoryリストに件数が表示されていない事に気が付いた。
でプラグインのソースを追うと、Categoryリストの部分はls2プラグインを呼び出している。
ls2プラグインは0.008b4の時点でdepth:[数値]オプションが追加されており、パラメータのパーシング部分も
変更されているようだ。
という事で、試しにls2プラグイン中のls2_check_arg関数だけを20040124版のものに
置き換えると、0.08b4でも、作業記録は、何事もなかったかのように正常に表示される様になった。
で、少しソースを追っかけてみたら、depth:2などの2の部分を取得するために、preg_match関数を使用して、
結果のvalue配列から値を取得してるが、これが、他のls2のパラメータのように、値が無いrelatedcountなどを
パースするときにエラーになっているようである。
で、
if ($value[2])
$params[$key] = $value[2];
else
$params[$key] = TRUE;
return;
の部分を
if (count($value) >2)
$params[$key] = $value[2];
else
$params[$key] = TRUE;
return;
に変更したら、正常に表示されるようになった。
という事で、nao-ponさんにレポートしておこう。
でも、これが、PHPからエラーがはき出さずに、ブラウザのエラーになってしまうのは、
なんともいただけない。
これは、Apache2のせい? PHPのせい?
コメント
- ありがとう!ちょうど、こちらでも修正したところでした。こちらでは、preg_match を使うのをやめて、できるだけ処理を軽くしてみました。 -- nao-pon
- 今晩にでもCVSに投入しておきますね。 -- nao-pon