匿名ユーザーのIPアドレスを非表示にする
出典: 何かしら図書館
MediaWikiの匿名投稿者・編集者のIPアドレスを非表示、正しくは別の文字列に置き換える方法。元情報は2ch。
目次 |
[編集] IPアドレスを置き換える
正規表現(preg_replace)を使うことで、IPアドレスを一律に特定文字に置き換えることができます。 MediaWikiのインストールフォルダにある、該当ファイルに以下を追記しましょう。
[編集] 編集履歴
includes/includes/PageHistory.phpを編集します。 各ページの編集履歴に表示される、IPアドレスを別の文字列に置き換えます。
wfRunHooks( 'PageHistoryLineEnding', array( &$row , &$s ) );
この行の次に以下を追記してください。
$s = preg_replace('/([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/', '名無しさん', $s); return "<li>$s</li>\n";
[編集] 差分表示
includes/DifferenceEngine.phpを編集します。 履歴の差分表示をした際に表示される、IPアドレスを別の文字列に置き換えます。
'<div id="mw-diff-otitle2">' . $sk->revUserTools( $this->mOldRev, true ) . "</div>" .
以下のコードに書き換えてください。
'<div id="mw-diff-otitle2">' . preg_replace('/([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/', '名無しさん', $sk->revUserTools( $this->mOldRev, true )) . "</div>" .
'<div id="mw-diff-ntitle2">' . $sk->revUserTools( $this->mNewRev, true ) . " $rollback</div>" .
以下のコードに書き換えてください。
'<div id="mw-diff-ntitle2">' . preg_replace('/([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/', '名無しさん', $sk->revUserTools( $this->mNewRev, true )) . " $rollback</div>" .
ここで2か所を書き換える理由は、差分表示した際に前版と最新版との2つの編集者履歴が表示されるからです。
[編集] 画像関連
includes/ImagePage.phpを編集します。 画像ページの履歴に表示される、IPアドレスを別の文字列に置き換えます。
$s = $list->beginImageHistoryList() . $list->imageHistoryLine( true, $file );
この次の行に以下を追記してください。
$s = preg_replace('/([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/', '名無しさん', $s);
includes/ImageGallery.phpを編集します。
Special:NewImagesに表示される、IPアドレスを別の文字列に置き換えます。
. $textlink . $text . $nb
以下のコードに書き換えてください。
. $textlink . preg_replace('/([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/', '名無しさん', $text) . $nb
[編集] 最近更新したページ
Special:Recentchangesに表示される、IPアドレスを別の文字列に置き換えます。
$s .= $list->endRecentChangesList();
以下のコードに書き換えてください。
$s = preg_replace('/([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/', '名無しさん', $s);
