2006年04月17日

tracker_listで表示されない

といっても、tracker_plus_list.inc.phpプラグインの方ですが。

事の起こりはtracker_plusで管理しているページ内でcommentプラグインで何行か記述すると解析に失敗するらしくて、tracker_plus_listの方で空っぽのページとして表示されます。

もちろんコメントを削れば表示されるんですが、そんなアホな方法はないので、いろいろとテンプレートの方を弄ってみたのですが、それもNG。

commentを置き換えてmemoプラグインなどにすれば良さそうですが、既に100以上あるページを全部書き換えるのも大変なんでこれも無し。

で、しょうがないのでネットで検索していたのですが、それっぽい記事を発見。

で、慌ててソースの方を覗いたのですが、
// "/page"の内容が長すぎるとpreg_match()が失敗するバグ(?)があるので
// "//////////"までをマッチ対象とさせる
// ( see http://dex.qp.land.to/pukiwiki.php, Top/Memo/Wikiメモ)
とのことで、既に織り込み済みでした

どうもこの対策では「//////////」があるところまでが解析対象になるようなので、該当ページのcommentの前に「//////////」を置いて見ましたがなんか効果無し。

あれっ、と思ってテンプレートの方においてみたらちゃんと動きました。

ということで、trackerでページの長くなりそうな前には「//////////」をおいておくと良いようです。

なお、tracker_plus_listはtracker_listの追加修正版なので、ぞちらでも上記の対策は有効です

それにしても、commentなんかで行増えるのは織り込み済みなようで

// ブロックプラグインをフィールドに置換
// #commentなどで前後に文字列の増減があった場合に、[_block_xxx]に吸い込ませるようにする
$pattern = preg_replace('/^\#([^\(\s]+)(?:\((.*)\))?\s*$/m','[_block_$1]',$pattern);
となっているんですが、PHP側のの制限はどうもまだ治っていないようで・・・ 5に入れ替えたら治るんですかねぇ・・・ Posted by Takuchan at 2006年04月17日 01:55 | トラックバック(0)