recentの日付形式が"Y-m-d"固定になっている†
- ページ: BugTrack
- 投稿者: manhole
- 優先順位: 低
- 状態: 完了
- カテゴリー: プラグイン
- 投稿日: 2002-12-23 (月) 23:06:33
- バージョン:
メッセージ†
画面左の「最新のXX件」欄(recent)に更新日が表示されますが、設定項目$date_formatを初期値の"Y-m-d"以外へ変更していると、ページ更新日として認識されないようです。
- recent.inc.phpが、RecentChangesページに書かれている文字列が'([0-9]{4}-[0-9]{2}-[0-9]{2})'(yyyy-mm-dd)形式であることを前提にしていますから、今の仕掛けでは難しいですね。 -- ぱんだ 2002-12-24 (火) 09:32:14
- 毎回、recent.inc.phpが呼び出されるたびに、get_existpages()でページを列挙してfimemtime()で時刻を取得して配列を作り、時刻降順でソートして…、というのが簡単ですが、たぶんとても遅い :)。 -- ぱんだ 2002-12-24 (火) 09:34:43
- RecentChangesを書くとき(file.php/put_lastmodified())に細工をして、以下のようなRecentChangesを書くようにし、recent.inc.phpでは行頭'//'の行だけを拾って処理する、って言う手もあります。 -- ぱんだ 2002-12-24 (火) 09:36:17
奇数行:従来のRecentChanges
偶数行:'//'+UNIXタイムスタンプ+<sp>+ページ名
-24, Dec 2002 (Tue) 09:26:11 - [[コメント/FrontPage]]
//1040657171 [[コメント/FrontPage]]
-19, Dec 2002 (Thu) 11:53:51 - [[ほげ]]
//1040234031 [[ほげ]]
-19, Dec 2002 (Thu) 09:34:30 - [[convert_html]]
//1040225670 [[convert_html]]
...
- どっちがいいかなぁ… ぱんだ 2002-12-24 (火) 09:38:05
- とりあえずの対策として、([0-9]{4}-[0-9]{2}-[0-9]{2})を([0-9]{4}\/[0-9]{2}\/[0-9]{2})としています。 -- manhole 2002-12-24 (火) 22:28:33
- あぁ。'Y-m-d'を'Y/m/d'にしただけならそれでもいいんですが。'F j, Y'などと書く人がいないとも限らないので… ;( -- ぱんだ 2002-12-24 (火) 23:00:33
- お返事ありがとうございます。汎用的な対応は難しそうですね、、頑張ってください。 -- manhole 2002-12-25 (水) 00:04:26
- 「$date_formatを書き換えた人はrecent.inc.phpも書き換えてください」(をぃ -- 2002-12-25 (水) 11:43:13
- ちょっと考えたんですけれど、recentに記述される日付方式が$date_formatに従っているから、面倒になるんじゃないでしょうか? recentの記述は固定にして、表示プログラム側が$date_format形式に変換して表示すれば良さげな気がします。 -- manhole 2002-12-28 (土) 00:04:08
- いっそのこと、recent.inc.php も RecentChanges も書き換えてしまえば?と思うんだけど。過去を引きずってもねぇ。マイグレーションには、1個スクリプト書けば済むことだし。とも思ったり。なので、やるんなら、上の奇数行とか偶数行の対応は、ちょっとなぁ。あと、対応そのものすら行わないという手もありますよね。この場合は、pukiwiki.ini.php の該当行に、注釈を添えて、ここを変更したら、ここも治さないと駄目よ。みたいな。なので最終的には $date_format を、どこまで汎用的に考えるか次第だと思います。と書きながら、RecentChanges だって所詮1個の文書だしなぁ。と。-- upk 2002-12-28 (土) 02:53:45
- 1.4では、file.phpのput_lastmodified()関数内で、cache/recent.datを出力するようにし、# recentではそちらを参照するようにしました。 -- ぱんだ 2003-03-19 (水) 12:54:43
- 1.4では解決済み。 -- reimy