doudonn WEB制作やサーバーの話とかいろいろ

DokuWikiで非ログインユーザーにはIPアドレスを非表示にする方法(プラグイン無し)

doudonn 更新日:
DokuWikiで非ログインユーザーにはIPアドレスを非表示にする方法(プラグイン無し)

非ログインユーザーにはIPアドレスを非表示にしたい!

昔はプラグイン「Hiding IPs Plugin」で実現可能だったのですが、
現在のバージョンでは全く対応できていません。
そのため手動でファイルを修正して対応します。

※バージョンは「2022-07-31a “Igor”」です。

実現したいこと

下記をやりたい。

・ログインユーザーにはIPアドレスを表示

・非ログインユーザーはIPアドレスの代わりに「非ログインユーザー」と表示する

プラグインの仕様通りです。

1、ページ下の「最終更新」の箇所

「inc/template.php」を修正します。

<888行目:変更前>

if($INFO['editor']) {
    $out .= ' '.$lang['by'].' ';
    $out .= '<bdi>'.editorinfo($INFO['editor']).'</bdi>';
} else {
    $out .= ' ('.$lang['external_edit'].')';
}

<変更後>

if($INFO['editor']) {
    $out .= ' '.$lang['by'].' ';
    if($INFO['isadmin']) {
    $out .= '<bdi>'.editorinfo($INFO['editor']).'</bdi>';
    }else{
    
    if(empty($INFO['user'])){
    $out .= '<bdi>非ログインユーザー</bdi>';
    }else{
    $out .= '<bdi>'.editorinfo($INFO['editor']).'</bdi>';
    }
    
    }
} else {
    $out .= ' ('.$lang['external_edit'].')';
}

ログインユーザーの名前があれば表示し、無ければ「非ログインユーザー」とします。
このあたりの処理は「$INFO」を「var_dump」で確認すればよくわかります。
いろいろ応用したい人は確認してみてください。

2、最近の更新・リビジョン・差分表示のページ

「/inc/ChangeLog/RevisionInfo.php」を修正します。

<152行目:変更前>

public function showEditor()
{
    if ($this->val('user')) {
        $html = '<bdi>'. editorinfo($this->val('user')) .'</bdi>';
        if (auth_ismanager()) $html .= ' <bdo dir="ltr">('. $this->val('ip') .')</bdo>';
    } else {
        $html = '<bdo dir="ltr">'. $this->val('ip') .'</bdo>';
    }
    return '<span class="user">'. $html. '</span>';
}

<変更後>

public function showEditor()
{
    if ($this->val('user')) {
        $html = '<bdi>'. editorinfo($this->val('user')) .'</bdi>';
        if (auth_ismanager()) $html .= ' <bdo dir="ltr">('. $this->val('ip') .')</bdo>';
    } else {
        if(auth_ismanager()) {
        $html = '<bdo dir="ltr">'. $this->val('ip') .'</bdo>';
        }else{
        $html = '<bdo dir="ltr">非ログインユーザー</bdo>';
        }
    }
    return '<span class="user">'. $html. '</span>';
}

これだけでヨシ。
差分表示のページもちゃんと対応できています。

注意点

DokuWikiをアップデートすると上書きされる可能性がある。
そこだけ忘れないようにしてください。

サンプルは「東方ダンマクカグラ ファンタジア・ロスト有志攻略Wiki」を見てください。

--

DokuWikiの関連記事

記事一覧はこちら:DokuWiki

管理人について
doudonn
名前:doudonn(どうどん)
ひたすらWEB制作な人。
一応社長です。音ゲー好き

<Twitterはこちら>
ゲーム垢
WEB制作垢
お知らせ

2022年11月30日に全記事削除しました。
まだ再開に向け作りかけ。


無駄にページ表示速度にこだわってます。

役立ちサイト
wiki
© 2022-2023 doudonn All Rights Reserved.