2008年01月21日

nicocale.inc.php

ニコニコカレンダーっぽいものをPukiWikiで実現するためのプラグインです。

使い方次第では簡易的な行き先掲示板や在席確認表に使えるかも知れません。

ダウンロードはこちらから↓

※2010/03/25 document.allを使っていたところをdocument.getElementByIdに差し替えた

まず、導入方法ですが、上記のファイルをダウンロードして「nicocale.inc.php」と言う名前にリネームしてPukiWikiのpluginフォルダにアップロードしてください。

なお、デフォルトではEUCになっていますのでUTFで運用している方は、アップロードまでにUTF-8への文字コード変換が必要です。

また、入力値の凡例が必要になりますので、「:config/plugin/nicocale」と言う名称で以下の内容を記載した表を準備してください。

|表示するアイコンや顔文字|その説明|
↓例です
|  (^^) |普通|
|  (^_- |好調|
|  (^-^ |絶好調|
|  (..; |体調悪い|
|  (--; |イライラ|
|  (^^; |不調|
|  (T-T |絶不調|
|  (^Q^ |やる気無し|
なお、表の左側はPukiWikiの書式にしたがった物なら何でも大丈夫です。
(上記の例の場合はinputtoolbar.inc.phpを導入しているPukiWikiで画像アイコン置換の書式を利用して画像を表示します。
この機能を利用する場合は、顔文字の前に「全角スペース半角スペース」の順番で置かないとPukiWikiがうまくアイコン変換してくれません)

また、凡例の表の右側はテキストのみを想定していますので、テキスト以外(たとえばPukiWikiの書式)で内容が変換される物が記載されていると入力欄が化けますので注意してください。

なお、もっとニコニコカレンダーっぽくしたい場合は、好きな顔アイコンなどを自分のサーバに事前にアップロードしてそれを表示する設定にして利用してください。

で、プラグインの使い方ですが、導入後以下のブロックプラグインで入力欄を表示出来ます。

#nicocale(input,ページ名,prefix,コメント欄の有無< on/off>,凡例の一覧有無<on/off>)
太字の引数は必須の値(逆に言うと、それ以外は記入しなくても動きます)
※<>で覆われた値はどちらかを選択
※選択肢の斜字はデフォルト値です

で、それぞれの引数の解説ですが以下の通りです。
(先頭の番号は引数の番号です)

  1. input動作に切り換えるスイッチです
  2. 記載するユーザ名を記載してください。何も指定されない場合は、設置したページ名にプレフィックスをつけたページに記載します
  3. ニコカレを記載するページの基本名を指定します。末尾は/にした方が動作がわかりやすくなりますが、あえてつけないことで色々遊べるかもしれません。何も指定しない場合は、デフォルトのプレフィックス「ニコカレ/」となります。
  4. コメント欄の有無。「on」か「off」で指定してください。デフォルトはoffになっています。
  5. 凡例の一覧表示の有無。JavaScriptが動作しない環境などで設置することを想定しています。
また、表示は以下のインライン書式で指定のページの本日の最新1件をインライン表示します。
&nicocale(ページ名,prefix,何日前を表示するか?);
※本日の最新1件が無い場合は「?」が表示されます。

インライン指定での引数についての説明は以下の通り。

  1. 読み出すユーザ名を記載してください。何も指定されない場合は、設置したページ名にプレフィックスをつけたページを読み出します
  2. 読み出すページの基本名を指定します。何も指定しない場合は、デフォルトのプレフィックス「ニコカレ/」となります。
  3. 今日以外の日付のデータを表示します。前日を表示する場合は1としてください。何も指定しなければもちろん本日分が表示されます。
また、ブロック書式で指定プレフィックス以下のプレフィックスを除いたページ名の一覧とそのページに記載されている本日の最新1件の一覧をテーブル形式で表示します。
#nicocale(list,prefix,表示起算日,表示終了日,表示するメンバー...);
※こちらは本日の最新1件が無い場合は「?」も表示されませんので注意してください。

リスト表示時の引数についての説明は以下の通り。

  1. list動作に切り換えるスイッチです。ブロックプラグインのデフォルト動作になっているので記載不要です。
  2. 読み出すページの基本名を指定します。何も指定しない場合は、デフォルトのプレフィックス「ニコカレ/」となります。
  3. 範囲表示する起算日を何日前にするか指定します。6を指定すると6日前から今日までのデータが表示されます。何も指定しないと今日になります。
  4. 範囲表示する終了日。何も指定しないと今日になります。
  5. 表示するメンバー名(プレフィックスを除いたページ名になります)。この引数のみ複数個設定できます。(つまり、以後の引数は全て表示するメンバー名として解釈されます)
※表示起算日と表示終了日は通常整数値しか受け取りませんが、表示起算日と表示終了日両方に「YYYY-MM-DD」形式で日付を指定すると、特定の期間のカレンダーを表示させることが出来ます。
(片側だけ「YYYY-MM-DD」で指定しても無視されますので注意してください。)

また、リスト形式では悪戯を防ぐために31日分以上は表示できなくしてあります。
この制限はプラグイン本体の設定値で指定していますので、変更したい場合はそちらを書き換えてください。

なお、リスト形式で表示した表ではテーブル自体にclassをつけてありますので、デザインの変えたい場合などはそちらを利用してください。

それから、表の段組が気に入らない場合は、インラインの方を配置して、うまいこと何とかするか、プラグインを改造してご利用下さい。

以下設置例です。

test2さんの今日の様子→&nicocale(test2);

#nicocale(list);
#nicocale(list,,14);
#nicocale(list,,14,8);
#nicocale(list,,2008-02-17,2008-02-23);

testさんのニコカレを入力。
#nicocale(input,test);

|test2さんのニコカレを入力。|
|#nicocale(input,test2,,on,on);|

#nicocale(list,,2008-02-16,2008-02-23,test);
これを設置するとこんな感じになります。
20080224.gif
20080229.gif

なお、このプラグインは各ユーザのホームページがどこかの階層の下でない(つまり直下にある)状態でもっともうまく動くように作成しています。
(コメントプラグインなどのデフォルト動作からもわかるように、各ユーザのホームページは直下にあるのがPukiWikiは理想だと思われます)

なので、それ以外の構成の場合は適宜ページ名を指定してプラグインを設置してください。

また、このプラグインを使い続けるとデフォルトで「ニコカレ/」以下のページに大量のデータが記載されて動作が重たくなったり処理できなくなる可能性がありますので、その場合は、各ページの内容を適度に削除して間引いてください。

最後にライセンスなど載せておきます
(ファイルのヘッダと同一のものです)

/////////////////////////////////////////////////////////////////////
// 【名    称】PukiWiki 1.4.x用 ニコニコカレンダー plug-in
// 【作 成 者】Takuchan 
// 【Virsion 】0.7.2
// 【作 成 日】2008/01/08
// 【動作 Ver】PukiWiki 1.4.7 でのみ動作確認
// 【License 】GPL v2 or (at your option) any later version
//             PukiWiki本体のライセンスと同一の条件でご利用下さい。
// 【備    考】
//  配布はEUC形式です。ご利用になる環境の文字コードがEUC以外の場合は
//  文字コード変換をしてからサーバにアップロードしないと正常に動作
//  しません。
//
// 【更新履歴】
// 2010/03/25 0.7.2
//   document.allを使っていたところをdocument.getElementByIdに差し替えた
// 2008/03/06 0.7.1
//   日付指定でスタート日が1日分ずれていたのを修正
// 2008/02/29 0.7.0
//   リスト表示で指定のメンバーのみの表示が出来るようにした
// 2008/02/24 0.6.0
//   インライン表示で日時を遡って表示する機能を実装。
//   リスト表示で範囲表示出来るようにした。
// 2008/01/20 0.2.0
//   ブロックプラグインとして一覧表示を可能にした。
//   このプラグイン単体でカレンダーの値の入力が出来るようにした。
//   日時を遡って表示する機能はまだ未実装。
// 2008/01/08 0.0.0
//   とりあえず、pcommentプラグインのデフォルトフォーマット(名前無し)
//   で入力した結果をインラインで表示するプラグインとして作成。
//
// 【ToDo】
//  ・calendar2プラグインのような形式で一覧表示出来るようにする
//    →ただ、便利さがあまり見いだせないので実装しないかも知れません
//
// 【参 考 元】
//  このプラグインはPukiWikiのいろいろなプラグインを参考に作成されて
//  います。
//  特にpcommentプラグインが無ければこのプラグインはありませんでした。
//
/////////////////////////////////////////////////////////////////////
Posted by Takuchan at 2008年01月21日 01:03 | トラックバック(0)