文書の過去の版を表示しています。
IPアドレス非表示化プラグイン
概要
デフォルトでは、DokuWikiは時々、非ログインユーザーのIPアドレスを、誰からも見える位置に表示します。
例えば、「最近の更新」や「以前のリビジョン」は次のように表示されます。
2018/05/27 12:39 pagename – 編集概要 XXX.XXX.XXX.XXX -xxx B 2018/05/22 23:54 pagename – 編集概要 username ±0 B
ですが、IPアドレスを晒したくない人も多いかと思います。
このプラグインでは、そのようなIPアドレスを代替テキスト(デフォルトは「非ログインユーザー
」)に置き換えます。
管理者は、このプラグインの在り無しに関わらず常にIPアドレスを見れる状態です。
導入
プラグインマネージャーと、上記URLを利用すると、プラグインの最新版をインストール出来ます。
プラグインを手動でインストールする場合はこちらをご覧下さい。
使い方
特別な設定は不要です。
プラグインをインストールした後、次の場所に表示されるIPを隠そうとしてくれます。
- 最近の更新(イベント「HTML_RECENTFORM_OUTPUT」経由)
- 以前のリビジョン(イベント「HTML_REVISIONSFORM_OUTPUT」経由)
- 差分表示(イベント「TPL_CONTENT_DISPLAY」経由)
- 最終編集者(イベント「COMMON_USER_LINK」経由)
- 編集ロック(イベント「COMMON_USER_LINK」経由)
表面的にデータを書き換えるだけですので、コアデータは変更されません。
どうやって隠しているの?
最近の更新と以前のリビジョンでは…
$event->data->_content['(任意の数字)']['class']
に文字列'user'があった場合、$event->data->_content['(その次の数字)']
には、ユーザー名もしくはIPアドレスが保持されています。
なので、このプラグインではその'user'文字列を検出し、見付かった場合、$flag
変数にTRUEを代入します。
その$flag
変数がTRUEの場合に、文字列内にIPアドレスがあるかチェックします。もしあれば、それを非表示にします。
以前のリビジョンの最初の項目が他の項目と少し異なるようなので、それに合わせたカスタマイズをしています。
差分表示では…
最近の更新や以前のリビジョンでのものと似たような機能ですが、ここではHTMLを直接いじっています。
最終更新者と編集ロックでは…
仕組みに変更があります
$event->data['username']
がIPアドレスと思われる場合、$event->data['name']
を書き込みます。
IPアドレスっぽいユーザー名だった場合、ログイン中であってもうっかり置き換えられてしまいます。例:3.57.2.131)
開発
変更履歴
- 2018-06-01
- 最初のリリース
- 2018-06-02
- 文字化け修正
- 2018-10-24
- バグ修正アップデート(WARNINGレベルのエラーが発生していた問題と、サイト設定「showuseras」が「
username_link
」もしくは「email_link
」だった場合にプラグインが上手く作動しなかった問題)
既知のバグや問題
現時点ではありません
ToDoリスト・やる事
現時点ではありません
連絡先
プラグインに問題が見付かりましたら、GitHubのページにトピックを作成出来ます(日本語OKです)。他の事で何かありましたら、以下の連絡先をご利用下さい。