プラグイン開発を便利に

プラグインを開発している際に感じたことですが、プラグインを利用するなかで 構成定義を順次変更や追加を行っていくような場合には、その定義ファイルの取り扱い に関して悩みました。サーバ管理者(自宅サーバなど)は、設定ファイルを、好きな ディレクトリに配置することはできますが、管理者ではないような場合には、そうも できません。ということで、プラグインを開発する側にとって有用な具を、気が付いた ときに、みなさんが追加していくページを作りました。-- upk 2002-12-10 (火) 23:34:45



pconfig.php by upk

機能
プラグインで必要となる構成定義ファイルに関する取り扱いを行う。
コンセプト
基本的には、PukiWiki としての自然な文章となるようなイメージでいて、 でも、構成定義ファイルとして成り立つスタイルとする。
構成定義ファイルのネーミングルール
[[:config/plugin/プラグイン名/... 自由]]
  • 英字部分は、小文字とする。
  • 名前は、ブラケット名で統一する。
  • ここで定義できるのは、利用者が編集したり順次更新する要件がある定義に限る。
    • しかし、必要であれば凍結機能を利用すれば阻止はできるので、限定はしない。
    • ※通常は、define して定義する。ユーザに設定させる初期値などについては、define で定義する。とあります。(PukiWiki/Plug-inの仕様を参照。)
  • 構成定義ファイル例
    [[:config/plugin/プラグイン名/区分]]
    [[:config/plugin/プラグイン名/会議室]]
    [[:config/plugin/プラグイン名/行き先]]
    • 区分 - 年休、公出、...など
    • 会議室 - 5階第2会議室、6階第4研修室 ...など
    • 行き先 - よく行き出先情報 ... など
ダウンロード
  • pconfig.php (削除されました)

pconfig_read

機能
プラグイン用構成定義ファイルを読み込みテーブルにデータを貯め込む
引数
構成定義ファイル名 ,プラグイン名

スクリプト名は取得できても、プラグイン名を取得する変数が無いようなので、 今後、そのような変数が本体から取得できるようになった場合も考え、 引数としては、後ろにしています。本当は、指定なし時は、自プラグイン名 としたかったんですけども。(知らないだけかなぁ?)

  • いまのところ、実行中のプラグイン名を外部関数から知る確実な方法はありません。 XD -- ぱんだ
構成ファイル書式
これは、利用者が PukiWiki を通して編集していくファイルの書式です。
書式説明
**array 用のキーワード用定義
***array 用のキーワード用定義
--** で定義したキーワードの値を定義
---*** で定義したキーワードの値を定義
表定義表定義の場合は、順次貯めこむ
※ * は、構成定義ファイル自身の表題として
利用可能なようにするために利用していません。
[[:config/plugin/プラグイン名/test1]]
  • ダイレクトアクセスタイプ
    **5-5
    --10
    
    $ret = pconfig_read("test1","プラグイン名");
    $ret['5-5'] = 10;
    
    [[:config/plugin/プラグイン名/test2]]
    **5-6
    ***1
    ---3
    
    $ret = pconfig_read("test2","プラグイン名");
    $ret['5-6']['1'] = 3;
  • シーケンシャルタイプ
    [[:config/plugin/プラグイン名/会議室]]
    *会議室定義テーブル
    |会議室名|人数|
    |5階第2会議室|20|
    |6階第4研修室|40|
    
    $ret = pconfig_read("会議室","プラグイン名");
    $ret[0][0] = "会議室名";
    $ret[0][1] = "人数";
    $ret[1][0] = "5階第2会議室"
    $ret[1][1] = "20";
    $ret[2][0] = "6階第4研修室";
    $ret[2][1] = "40";
  • 注意事項
     if (array_key_exists("title", $ret)) {
       array_shift($ret);
     }
     foreach($ret as $x) {
       ...
     }
    更新対応のために、"title" を追加したため、単純に foreach で回すとおかしくなります。

pconfig_write

機能
プラグイン用構成定義ファイルを書き戻す
引数
構成定義ファイル名 ,プラグイン名, pconfig_readデータ, データタイプ
データタイプ
引数説明
s,S,縦棒表形式(シーケンシャルタイプ)
d,D,*ダイレクトアクセスタイプ

コメント

  • trim() が入っていない箇所があったので、入れました。 -- upk 2003-01-02 (木) 03:25:15
  • 定義の分割を strtok() で行っているため、連続する | は、1個と見做してしまうバグ対応版の更新です。 -- upk 2003-01-05 (日) 03:34:37
  • 書き戻す機能を追加しました -- upk 2003-01-07 (火) 00:37:32
  • 1.4対応しました。(1.3環境下でも入れ替え可能です。) -- upk 2003-02-23 (日) 01:18:49
  • 本体 config.php にマージされた関係で、pconfigを利用しているプラグインの全面書き換え作業中です。 -- upk 2003-03-24 (月) 08:48:21

public_holiday.php by upk

機能
祝日の算出

public_holiday

機能
日本における祝日の算出
引数
Unix Time
戻値
array
name祝日の名前
rc0:平日 1:祝日 2:振替休日 3:国民の休日
dbord(行き先掲示板)用にコーディングしましたが、calendar プラグインでも、 祝日は判定してくれてないし、今後、スケジュール的なプラグインなどの作成には 祝日は避けて通れないと思い、外だしにしました。
utime だと 1970 からではあるものの、無駄なロジックも入っています。
ダウンロード
  • public_holiday.php.3 (削除されました)

コメント

  • 国民の祝日の名称に一部間違いがありました。元旦→元日、建国記念日→建国記念の日、子供の日→こどもの日など。国民の祝日に関する法律によると下記の通りです。 -- reimy 2003-03-05 (水) 18:37:26
元日

1月1日 年のはじめを祝う。

成人の日

1月の第2月曜日 おとなになったことを自覚し、みずから生き抜こうとする青年を祝いはげます。

建国記念の日

政令で定める日 建国をしのび、国を愛する心を養う。

春分の日

春分日 自然をたたえ、生物をいつくしむ。

みどりの日

4月29日 自然に親しむとともにその恩恵に感謝し、豊かな心をはぐくむ。

憲法記念日

5月3日 日本国憲法の施行を記念し、国の成長を期する。

こどもの日

5月5日 こどもの人格を重んじ、こどもの幸福をはかるとともに、母に感謝する。

海の日

7月の第3月曜日 海の恩恵に感謝するとともに、海洋国日本の繁栄を願う。

敬老の日

9月の第3月曜日 多年にわたり社会につくしてきた老人を敬愛し、長寿を祝う。

秋分の日

秋分日 祖先をうやまい、なくなった人々をしのぶ。

体育の日

10月の第2月曜日 スポーツにしたしみ、健康な心身をつちかう。

文化の日

11月3日 自由と平和を愛し、文化をすすめる。

勤労感謝の日

11月23日 勤労をたっとび、生産を祝い、国民たがいに感謝しあう。

天皇誕生日

12月23日 天皇の誕生日を祝う。

  • ご指摘を反映するのは簡単なものの、UTIMEを抹殺しようとも考えているので、と書きながら、その関数はできあがっているんですが、マージしていないもんで、まだ更新できていません。というか、どこまでマージしようかなぁ?というところです。なので、無視しているわけではありません。ご容赦。 -- upk 2003-03-24 (月) 08:45:54
  • public_holiday.php.2 をアップしました。これは、zellerの公式により曜日判定を行っていますので、UnixTimeに左右されません。したがって、UTC定義以前である1970年以前(1582-10-15以降)の曜日も判定できます。また、いい加減ながらも合衆国の祝日も入れてみました。これは、いい加減です。 -- upk 2003-05-21 (水) 21:55:53
    • dbord で、この新版を利用する場合には修正が一部必要です。従来からのものを利用中の場合には、更新しないようにしてください。
    • dbord の対応版を添付しました。-- upk 2003-06-18 (水) 12:30:06
  • public_holiday.php.3 をアップしました。何を考えていたのか?というバグがありまして、敬老の日の月を間違えていました。-- upk 2003-09-15 (月) 01:26:21
    • 今日は、かのとう,三碧,敬老の日,中潮,友引,やぶる,張,神吉日,復日,十方暮,一粒万倍日でした。 XD -- upk 2003-09-15 (月) 01:32:28
    • ご苦労さまでした -- merlin 2003-09-15 (月) 20:48:49
  • public_holiday.php って、PukiWiki 本体のファイルにしちゃって構わないんですけど、というか、しちゃってもらえませんかね?カレンダーでも、やはり祝日判定はやった方が良いんだろうと思いますからねぇ。 -- upk 2003-09-16 (火) 01:04:23


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-05-15 (金) 23:36:54
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.221 sec.

OSDN