メンバー限定pukiwikiにおける閲覧者チェックの話

誰でも編集可能という点がwikiの利点なのだろうが、 それでも利用可能なメンバーを制限したい場合がある。 限定されたメンバーなら、 それらの人々の誰がページを見たのか、 知っておきたいことも多い。 (まあ、開封確認みたいなものか?)

利用メンバーを限定する場合、 多くはIDとパスワード等によるHTTPの認証を使うことになる。 IDが分かれば利用者は確実に区別できるため、 メンバーが特定のページを見たかどうかを確かめることが可能となる。

そのためのpukiwiki用のプラグインを作ってみたので、ここに公開してみる。

インストール

  1. まず、(BASIC認証等で)認証してから利用するpukiwikiシステムを用意する。
  2. そのpukiwikiシステムのプラグインディレクトリに、 以下のファイルを展開してできるphpファイルを置く。
    gzip圧縮されたプラグインのファイル
とりあえずそれだけ。

利用法

  1. とりあえず使うだけ
    ページの編集で
    #membercounter2();
    と書く。 これで枠の中に、そのページをアクセスした人のIDが 表示されるようになるはず。

  2. もうすこし見栄え良く
    1. 先ほどの記述を
      #membercounter2(show:nic, show:config);
      と書き換えると、表示の中に編集マークのアイコンが出る。
    2. その編集マークをクリックすると、そのページのアクセスID一覧が出て、 下の方に「全体設定のページ」へのリンクが存在する。
    3. この全体設定のページをクリックすると、 下の方に「設定テーブルのページへ」と言うリンクのあるページに移動する。
    4. 設定テーブルのページへ移動すると、 初回はページ編集の画面になる。二回目以降は、出た画面に対し、 普通にpukiwikiの編集をクリック。
    5. その編集画面で、
      *members
      |ID|名前|略称|h
      |ユーザID-A|A山A太郎|A山|
      |ユーザID-B|B島B次郎|B島|
      
      のように、見出し1「members」の下に、3列からなる表を書く。 表は、ID、正式名称、略称の順である。
    6. ページの更新後、先ほどのページに戻ると、 ユーザIDが略称に変わっているのが確認できるはず。

  3. シンプルに閲覧認証ユーザ数のみ
    &membercounter2();
    と書く。 「名」等の単位は自分で。

  4. 見た人にアクションを要求
    #membercounter2(show:button, show:nic, buttontitle:見たらここをクリック, list:click);

  5. 投票的に利用
    |#membercounter2(show:button, show:nic, buttontitle:賛成, buttontype:OK, list:OK);|#membercounter2(show:button, show:nic, buttontitle:反対, buttontype:NG, list:NG);|

  6. 特定のグループの人のみ閲覧を表示
    1. 先ほどの設定テーブルの編集のところで、
      *groups
      **test
      --ID1
      --ID2
      --ID3
      
      のように、見出し1「groups」,見出し2「グループ名」の次に、 番号なし箇条書き2として、IDのリストを書く。
    2. そのグループ名を使って、つぎのように書く
      #membercounter2(show:name, title:テストグループ閲覧者, list:all, group:test);
      

プラグインの中身

基本的には、認証してアクセスした人のIDを、 pukiwikiのcounterディレクトリに、 「.membercount」と言う拡張子を付けて保存している。 これを適当に表示してあるだけ。

オプションは、できることが増えるようにいくつか作ってみたが、 今は説明しない。気が向いたら書くかも。 ソースを見るのが一番良い。

ライセンス

自作なので、てきとーに。とりあえず、pukiwikiと同じGPL2と言うことで。

その他