flavour無しpermalink
Posted at 2004-08-01T12:22:00+09:00 in Blosxom
本家MLの方で、flavour無しpermalinkを実現するパッチが投稿されたんですが、これはちょっと微妙かなと。まぁ確かに実現できているといえば実現できているのですが、うまいこと$default_flavourを利用してくれはしないような感じなので、別の方法をとにかく考えてみようかと。前に考えた時はうまく思いつかなかったんですが、今日は数分で思いついたりした。
結局のところ$path_infoという変数に入っている値が、エントリ・ファイルのパスとflavourを示すことになっているようなので、これを適切にセットしてやればうまくいくわけです。
なので、改造すべき部分は、PATH_INFO環境変数から$path_infoを生成する一連の処理のうちの一部分(112行目から118行目あたり)。
if ( $path_info[$#path_info] =~ /(.+)\.(.+)$/ ) {
$flavour = $2;
$1 ne 'index' and $path_info .= "/$1.$2";
pop @path_info;
} elsif (!-d "$datadir$path_info") {
$path_info .= ".$default_flavour";
$flavour = param('flav') || $default_flavour;
} else {
$flavour = param('flav') || $default_flavour;
}
以上のように、elsifのブロックを追加するだけでうまくいきました。!-dでディレクトリの存在チェックをしているのは、カテゴリ単位での閲覧の場合かどうかを判別するためです。
というわけでflavour無しpermalinkが機能するようになりました。ビジターへの利便性は皆無に等しいけど、自己満足度は高い。Cool URI!
ちょっとチェックしきれていないので、思ってもみない不具合があるかもしれない。てか、MLに投稿しようかと思ったけど、英語書くのメンドイよ・・・。
追記@2004/08/04
MLに投稿したところ、blosxomの謎機能である「カテゴリ名の先頭数文字でも閲覧できる機能(See Also: blosxomのURL)」が無効になるというツッコミを貰った。確かに。同時に「blosxom.cgiを改造するではなく、pluginでいけるのでは?」というツッコミも。確かに。
Weblog archives
by Month
- October, 2006 (9)
- September, 2006 (23)
- August, 2006 (31)
- July, 2006 (8)
- October, 2005 (13)
- September, 2005 (24)
- August, 2005 (26)
- July, 2005 (2)
- June, 2005 (2)
- May, 2005 (13)
- April, 2005 (30)
- March, 2005 (33)
- February, 2005 (13)
- January, 2005 (10)
- December, 2004 (28)
- November, 2004 (27)
- October, 2004 (25)
- September, 2004 (38)
- August, 2004 (52)
- July, 2004 (45)
- June, 2004 (41)
- May, 2004 (48)
- April, 2004 (36)
- March, 2004 (51)
- February, 2004 (55)
- January, 2004 (63)
- December, 2003 (46)
- November, 2003 (63)
- October, 2003 (92)
- September, 2003 (61)
- August, 2003 (93)
- July, 2003 (57)
- May, 2003 (5)
- April, 2003 (35)
- March, 2003 (35)
- February, 2003 (37)
- January, 2003 (62)
- December, 2002 (32)
This page was last modified on 2004-08-04T11:29:37+09:00 (in 0.105 secs).