どのユーザーがページを変更したかの記録を残したい†
- ページ: BugTrack2
- 投稿者: umorigu
- 優先順位: 低
- 状態: 完了
- カテゴリー: 本体新機能
- 投稿日: 2016-01-18 (月) 03:35:15
- バージョン: 1.5.0
- リリース予定バージョン: 1.5.1
メッセージ†
ユーザー認証を通っていて、編集ユーザーを特定できる場合には、どのユーザーがページを編集したかを記録しておき、あとで参照できるようにしたい。
- wiki textに #author("変更日時","ユーザー名","フルネーム") を追加します
- backup listではこの情報を元にユーザー名を表示します
- これは難しそう。実現するのであればWikiテキストに表示されないメタデータを埋め込んでおくのがよいか?freeze等、タグの位置が重要な機能との整合性が課題 -- umorigu
- $_SERVER['REMOTE_USER']がや$_SERVER['REMOTE_ADDR']を参照してはどうでしょう -- _
- バックアップかどこかに追加データを仕込むとかいうネタがどこかの話題であったような無かったような…(思い出せない)。ひとまず代わりにコレを、BugTrack2/103: バックアップデータ構造の改善、official:質問箱4/535: 編集者履歴 --
- GitHub に刺激を受けて作られた Federated Wiki のデータの粒度はパラグラフ単位のようですね。 -- henoheno
- github.com/WardCunningham/Smallest-Federated-Wiki/blob/master/default-data/pages/welcome-visitors --
- github.com/WardCunningham/Smallest-Federated-Wiki/blob/master/server/sinatra/views/page.haml --
- BugTrack2/103 バックアップデータ構造の改善、これは大作ですね。よくまとまっていて今後の参考になります。編集者履歴は、昔から要望はあっても実現されていないようですね -- umorigu
- 実装しました。ページのデータを書き込む際には必ずpage_write()関数が呼ばれるようでしたのでこの中で変更者、変更日時を埋め込むようにしました。まだ抜けがありそうなのでレビュー&コメント大歓迎です -- umorigu
- $_SESSIONを使っている関係で下限がPHP4.1になっていますね。結局下限はどの程度を想定しているのでしょう -- .
- この機能(編集ユーザー名の記録)自体は直接$_SESSIONに依存してはいません。PukiWiki動作下限のPHP4.1から利用できます。認証をどの方式にするか、はPHPのバージョンによって利用可否が変わります。Basic認証ならPHP4.1で使えます。BugTrack2/375のForm認証とBugTrack2/373の外部認証は「クライアントが認証済みであること」をsessionによって維持しています。このためsessionが必要で、PHP5.1以降で動作します -- umorigu
- どちらがいいのか判断つかないので、メモ。テンプレート系の機能でwikiソースそのものを(部分)コピーする際に、#freeze と同様に#author をあらかじめ削除してから渡す方がいいのかどうか・・・・・(記録前に古いものが消えるはずなので問題にはならないでしょうが) --
- 今Editの時には#authorを削除しています。ご指摘の通りテンプレート機能でも削除するのがよさそうです -- umorigu
- 編集時テンプレート読み込みでauthor行をを削除するようにしました -- umorigu