CSVページからレコードを読み込んでページを自動生成するプラグイン [#v30e7bcc]
サマリ | CSVページからレコードを読み込んでページを自動生成するプラグイン |
---|---|
リビジョン | 0.14 |
対応バージョン | 1.4.3 |
投稿者 | sha |
投稿日 | 2003-08-08 (FRI) 00:28:00 |
「質問箱/234」を受けて試しに作成。ユーザは若干1名以下かもしんないけど(^_^;)。という事情から、バージョンアップは、なるべくしない予定。。。需要があるなら考えますが。。。とか言ってるうちに、なかなか使い勝手の良いプラグインになってしまったようです。これで誰も使ってくれなかったらどうしよう。。。
例えば、以下のようにデータが記録されているCSVファイルがあるとします。
"商品名","価格","メーカー名","備考" "商品A","5000円","ABC","サンプル" ・ ・
このCSVファイルを読み込み、
■ページ名:商品A ○価格:5000円 ○メーカー名:ABC ○備考:サンプル ○コメント欄
といった新規ページを一括して作ることはできないでしょうか?
カード型データベースのためのプラグインでできないかと思ったのですが、ファイルから読み込むことができないようなので……。
なるほど、質問が分かりにくいと思ったらPukiWikiで書かれていなかったのですね。見やすくしておきました。あと、「カード型データベースのためのプラグイン」とは何のことでしょうか?と思って検索してみたら、FreeStyleWiki内にありました。Wiki違いですね。もし既にお使いのWikiがFreeStyleWikiなのだとしたら、ここはPukiWikiのサイトなので問い合わせ先が間違っています。また、もしこれから採用するWikiを選ぶのだとしたら、phpが使える環境ならこのPukiWikiは結構いいですよ。
定型ページを作成するなら「しろくろのへや:tracker.inc.php」が流用できそうです。CSVの各フィールドから引数を生成して、1行毎にplugin_tracker_action()を叩くようなプラグインを作ると可能かも!?
ブロック型プラグイン
#csv2newpage(設定名,[upload,<num_of_skiped_lines>], <CSV第1fieldのパラメータ名>,<CSV第2…>,...)
設定名:tracker.inc.php用に自分で用意する設定ページの名前 upload: 「アップロード&実行」モードの指定。このとき、次の指定が必須。 <num_of_skiped_lines>: CSVファイルのヘッダー飛ばし。先頭からのスキップ行数 <CSV第1フィールドのパラメータ名>:tracker用に定義するパラメータ名 <CSV第Nフィールドのパラメータ名>:上記と同様。フィールドの数だけ追記
AAA,BBB,CCC → 「AAA」「BBB」「CCC」
"AAA,B"BB,"C""CC" →「AAA,BBB」「C"CC」「」
"AAA,B"BB, "C""CC" →「"AAA」「B"BB」「"C""CC"」
AAA,"B →「AAA」「B BB",CCC BB」「CCC」
AAA, "B →「AAA」「"B」 BB",CCC →「BB"」「CCC」
:config/plugin/tracker/製品テーブル :config/plugin/tracker/製品テーブル/form :config/plugin/tracker/製品テーブル/page :config/plugin/tracker/製品テーブル/listとその中身を事前に用意したものとする。そこで定義したパラメータ名と、CSVの各フィールドを#csv2newpageの引数で対応付けする。
製品名,モデル名,販売価格,担当者,電話番号 オレンジPC,3H0123P,100000,担当A,03-1111-xxxx パイナップルPC,3H0124P,100000,担当B,03-1111-xxxx 愛媛みかんPC,3H0125P,100000,担当C,03-1111-xxxx ごーやPC,3H0126P,100000,担当D,03-1111-xxxx ..... と続く .....
#csv2newpage(製品テーブル, upload, 1, product, model, price, name, phone)
#csv2newpage(製品テーブル, product, model, price, name, phone) ,オレンジPC,3H0123P,100000,担当A,03-1111-xxxx ,パイナップルPC,3H0124P,100000,担当B,03-1111-xxxx ,愛媛みかんPC,3H0125P,100000,担当C,03-1111-xxxx ,ごーやPC,3H0126P,100000,担当D,03-1111-xxxx ..... と続く .....
【表示例】↓
新規ページ生成:[実行]
オレンジPC | 3H0123P | 100000 | 担当A | 03-1111-xxxx |
パイナップルPC | 3H0124P | 100000 | 担当B | 03-1111-xxxx |
愛媛みかんPC | 3H0125P | 100000 | 担当C | 03-1111-xxxx |
ごーやPC | 3H0126P | 100000 | 担当D | 03-1111-xxxx |
*Newpages under [[ページA]] + [[ページA/1]] --- オレンジPC,3H0123P,100000,担当A,03-1111-xxxx + [[ページA/2]] --- パイナップルPC,3H0124P,100000,担当B,03-1111-xxxx + [[ページA/3]] --- 愛媛みかんPC,3H0125P,100000,担当C,03-1111-xxxx + [[ページA/4]] --- ごーやPC,3H0126P,100000,担当D,03-1111-xxxx
#csv2newpage(製品テーブル, product, model, price, name, phone) //,オレンジPC,3H0123P,100000,担当A,03-1111-xxxx //,パイナップルPC,3H0124P,100000,担当B,03-1111-xxxx //,愛媛みかんPC,3H0125P,100000,担当C,03-1111-xxxx //,ごーやPC,3H0126P,100000,担当D,03-1111-xxxx
バージョン | 作成日 | 内容 |
&ref(): File not found: "csv2newpage.inc.php.14" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-csv2newpage.inc.php"; | 2004/09/02 | debug/行末空行で行が接続される。空フィールドでデフォルト値とならず前行の値となる。 |
&ref(): File not found: "csv2newpage.inc.php.13" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-csv2newpage.inc.php"; | 2004/08/29 | debug/アップロード使用で最大ファイルサイズ表示が0KB |
&ref(): File not found: "csv2newpage.inc.php.12" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-csv2newpage.inc.php"; | 2004/08/24 | debug/空フィールドに対応 |
&ref(): File not found: "csv2newpage.inc.php.11" at page "Web Collaboration by PukiWiki-付録3 自作プラグイン一覧-csv2newpage.inc.php"; | 2003/11/07 | PukiWiki1.4final対応。CSVのダブルクオート対応 |
v0.10 | 2003/10/08 | XHTML1.1 validation check済み |
v0.9 | 2003/09/07 | 固有アンカーを削除しない |
v0.8 | 2003/08/23 | :configのデフォルト値に対応 |
v0.7 | 2003/08/09 | debug/アップロード時に空白行をスキップ |
v0.6 | 2003/08/09 | #csv2newpageの直後のCSVを処理。縦棒による処理は止め。細かいdebug |
v0.5 | 2003/08/09 | debug/添付出来てなかった。他 |
v0.4 | 2003/08/09 | メッセージを一部修正 |
v0.3 | 2003/08/09 | CSVファイルをアップロード&実行 |
v0.2 | 2003/08/08 | debug/tracker.inc.php v1.7で動かなかった |
v0.1 | 2003/08/08 | tracker.inc.phpを利用して新規作成 |