トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/197

ページの作成や編集にはユーザ登録が必要です。

ページにIDを割り振り、通知用URLとして活用できるプラグイン

  • 投稿者: kapapa
  • カテゴリ: 新規
  • 優先度: 普通
  • 状態: 提案
  • 日時: 2005年03月22日 21時14分46秒

 内容

ページにIDを割り振ることで、例えば日本語タイトルのページのURLが短くなり、メールなどで通知しやすくなります。(FSWiki4.0で実装されるらしいページIDについて、私は全く知りませんので別物とお考えください。)日本語を用いないページの場合は、かえって長くなってしまうケースもありますが、このプラグインを使うことで以下のメリットも考えられます。

  • すでにそのページが削除されている場合、通常のURLからのリンクではページの編集画面になってしまうが、本プラグインであれば「ページが見つかりません」とエラーが表示されるだけとなる。
  • そのページに参照権限がある場合、通常はページの参照権限がないというエラー(ページの存在が判明)してしまうが、本プラグインであれば「ページが見つかりません」となる。(逆にデメリット?として、ログインしてからのアクセスでなければ、本当にページが存在しないのか、単に参照権限が無いだけなのかが判らない。)
  • 通常のリンクの場合は、URLエンコードされたものそのままであるため、MLなどに投稿すると受信した誰もがどの様なタイトル(とそれから類推される内容)のページであるかが判ってしまう(参照権限を設定すべき内容のページは、URL通知のためにページ名にも気を使わなければならないケースがある)が、本プラグインによる通知用URLの内容だけでは第三者がページタイトルを知ることができません。

ページの参照レベル毎に色分けできるようにしてあり、以下プラグインで共通です。

 ページIDの割振りについて(技術的内容)

ここは技術的な内容に興味がある人のみ対象です。そうでなければ次の「インストール方法」に読み進めてください。本プラグインが割り振るページIDは、FSWiki 3.5.7が必ずユニークなページ名を持つことに注目し、ページ名を元にMD5を算出、それをページIDとしています。また、全体のURLは極力短いものにしたいため、actionは ID(2文字)、パラメータ(ページID)を b(1文字)としています。このbは、base64の頭文字です。base64のMD5は22文字とhex(FSWikiのパスワード保存時に使われている32文字)より短いため採用しました。

 インストール方法

通常のプラグインインストールと同じです。

 使い方

Footerページに

{{pageid}}

と記述する。[通知用URL] が表示されるので、このURLをコピーしてメールなどで通知します。(クリックするとリダイレクトされてしまうため、通常のURLになってしまいます。)

actionにIDを指定することで、本プラグインでのページIDを埋め込んだURLで一覧表示を行います。

/wiki.cgi?action=ID

ページの参照レベル毎に色分けする設定

管理者でログインし、「スタイル設定」の「ユーザ定義スタイル」に以下のように追記することで色分けできます。(色合いはお好みで)

/* ページ参照権限 */
.adminpage {
  background-color : #ffcccc;
}
.userpage {
  background-color : #ccccee;
}

 ダウンロード

pageid_20070105.zip(610)

 コメント

  • pageID.pm が開けませんというエラーが出ました。ファイル名の一文字目が大文字か、小文字かの問題だと思います。 - BT (2005年04月14日 21時05分33秒)
  • ありがとうございました。ファイル名の一文字目を小文字にして上書きアップロードいたしました。 - kapapa (2005年04月15日 00時21分15秒)
  • kapapa様、ありがとうございます。このような機能が欲しかったので助かりました。一点ほど‥‥IIS5+FSWiki3.5.6の組み合わせで使っています。"pageID.pm"と"pageIDHandler.pm"で"use Digest::MD5;"をいれないと使えませんでした。環境によると思いますが、とりあえずお知らせまで。ありがとうございました。 - な梨 (2005年06月10日 17時56分38秒)
  • MD5変換した文字列のURLエンコードは、URLクエリとして受け取った後ではなく、出力時にした方が良いです。通知URLが長くなるのを嫌っての事と思いますが、MD5変換した際に"+"が混入する場合があり、不具合の元となります。参照記事URL:http://www.higaitaisaku.com/phpBB/viewtopic.php?t=881 - Mech.Mozilla (2006年02月08日 14時18分27秒)
  • uri用base64エンコードがあるらしいです。前にMLで出ました(Apr 2005 23:01:32の奴)。base64した後s|\+/|-_|gすると。 - typer (2006年02月09日 01時28分20秒)
  • typerさん、ありがとうございました。大変参考になりました。この方法だと通知URLの長さを変えず、デコードの影響もなくて良いですね。 - Mech.Mozilla (2006年02月09日 14時44分07秒)
  • ↑のような話があったの全然知りませんでした。久しぶりにFSWikiのVer.UPしに来たら、みかけまして。。ということで、修正したものが置かれていなかったようなので置いておきます。 - kapapa (2007年01月06日 00時31分52秒)
  • fswikiから吐き出される全てのアンカーを、このid値にするのは難しいのでしょうか…(本体のvar4.0を待つほか無い?) - MRB (2007年03月02日 08時16分17秒)
お名前: コメント:
pageid_20050322.lzh pageid_20070105.zip

最終更新時間:2014年08月16日 17時30分15秒