匿名ユーザーの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);
ブラウザ
TOOLBOX
LANGUAGES