pukiwikiプラグイン/tbrcv

2017-08-25 (金) 06:28:01 (841d)
お名前:

表記、そんな感じのものを作ったので、一応公開しておきます。

プラグイン概要

pukiwiki に「トラックバックの受信」機能を追加するプラグインです。

導入に当たっては、プラグインのインストール以外にスキンの書き換えを推奨します。

インストール方法

  1. 本ページに添付されている下記ファイルをダウンロードし、pukiwiki の pluginフォルダに「tbrcv.inc.php」の名前で保存してください。
  2. tbrcv.inc.php 内の先頭部分にある設定値を、運用環境に応じて変更してください。
    設定の詳細については後述します。
  3. pukiwiki に新規にトラックバック用のフォルダを作成してください。
    • 初期状態であれば、以下のような位置に trackback というフォルダを作成します。
      pukiwikiフォルダ
      +attach
      +backup
        :
      +skin
      +trackback  ←これ
      • フォルダ指定は、tbrcv.inc.php の先頭部分で定義されています。
  4. スキンの書き換えを行うことを推奨します。
    • 以下の内容を、スキンの任意ヶ所に記載してください。
      その場所に「現在表示されているページへのトラックバック数」と、詳細表示ページへのリンクが挿入されます。
      <?php
      require_once PLUGIN_DIR.'tbrcv.inc.php';
      echo plugin_tbrcv_init();
      ?>
      <?php
      echo plugin_tbrcv_get_link($page)
      ?>
  5. plugin ディレクトリにある rename プラグインを編集します。
    plugin_rename_get_files() の最初のほうにプラグインディレクトリを参照している部分があります。そこに以下の記載を追加してください。
    if (exist_plugin_convert('tbrcv')) $dirs[] = TRACKBACKR_DATA_DIR;

使い方

上記インストールをすることで、自動的にトラックバックの受信処理が始まります。

以下、追加されている機能について説明します。

当該ページへのトラックバック状況の表示

上記手順4で実施したスキン書き換えの結果、画面内に以下のようなリンクが作られるようになります。

TrackBack(1)

このカッコ内の数字が、外部のページからそのページに対して行われているトラックバックの件数です。 この表示はリンクになっており、クリックすると以下のような一覧表が表示されます。

当該サイト全体でのトラックバック一覧

tbrcv はブロックプラグインとしても動作します。
以下のように記載することで、サイト全体に対するトラックバックの一覧を得ることができます。

#tbrcv

以下のような表形式で表示されます。

ページ名変更時刻
Top Page.2017/02/25 15:27
Pukiwiki 関連。2017/02/21 06:38

ページ名部分はリンクになっています。それを操作することで、前述の「当該ページへのトラックバック状況」のページに移動できます。

プラグインファイル内の設定と動作の変化

一方的トラックバックの拒否

'TRACKBACKR_BAN_NOLINK' を '1' に設定することで、「トラックバックを受信したページURL」が記載されていないページからのトラックバックを拒否することができます。
いわゆる一方的なトラックバックスパムを拒絶できる、ということです。

管理者による「受入承認」

'TRACKBACKR_NEED_ADMIT' を '1' に設定することで、受信したトラックバックを「一時保留」するように動作が変更されます。
「一時保留」されたトラックバック要求は、まるで「受信していない」かのように表示されます: 例えば前述の「Trackback(1)」というような件数にカウントされませんし、一覧にも表示されません。

この「一時保留」に対しては、管理者が、後述の管理操作や trackbackフォルダのファイルを編集することで「承認」することが必要になります。

管理操作

'TRACKBACKR_ALLOW_EDIT' を '1' に設定することで、受信したトラックバックの「削除」と「承認」をpukiwiki 画面から操作できるようになります。
この設定にすると、前述の「当該ページへのトラックバック状況」において「[Goto ManagePage.]」というリンクが表示されるようになります。そちらで編集可能です。

※注意
管理操作による「承認」「削除」機能は、当該ページに対する「書き込み権限」のある人物が実施できます。
wikiシステムの特性上、「広く編集を許可している」ページにおいては容易に「削除」「承認」が可能になるので、注意してください。それが問題になるようなサイトでは、管理操作を有効にしないほうがよいでしょう。

技術的な話。

トラックバック受信の記録

受信したトラックバックは、trackback フォルダ内にテキストファイル形式で保存されています。
ファイル名は、当該ページの名前をエンコードしたものです。

元となるページを rename したとしても、現状、トラックバック側のファイル名は変更していません。
そのため、rename をすると元ページにつけられていたトラックバックは失われます。 インストール手順の 5(renameプラグインの書き換え)をすることで、ページのrename をされた場合にもそのページへの受信トラックバックのリストも「追従」するようになっています。
ただしその場合「トラックバック送信してきた相手」からはリンク先がなくなっているように見えてしまうため、alias プラグインで旧名を新名に対する別名として定義するのがよいでしょう。

受信データの記録形式

前述の通り、受信データはtrackback フォルダ内にテキストファイル形式で保存されています。

テキスト1行につき、トラックバック1件。
各行はカンマ区切りのデータになっており、1つめのデータが「承認/未承認」のフラグです(承認なら1)。

▼めんどくさい話。

変更履歴

  • 2017.Feb.27 Ver0.2
    • トラックバックの一覧で「概要」を表示するように変更。
  • 2017.Feb.28 Ver0.21
    • Ver0.2 でXSS問題があったので修正。

コメント

ご意見などがあれば。


お名前:

お名前: