Top > PukiWiki > make > union_table.inc.php

TITLE:表組結合プラグイン
*union_table.inc.php [#le581090]
#table_edit2(,table_mod=open){{
|SIZE(12):RIGHT:100|LEFT:360|c
|~目的|特定のページ群から表組を収集、結合します|
|~対応バージョン|1.4.7plus-i18nで確認|
|~作成者|taru|
|~公開日|&new{2006-12-8 (金) 22:57:52};(仮公開)|
|~ライセンス|GPL2(意味わかっていませんorz)|
}}

進行状況を整理するために、仮公開いたします。

> あるページの下位層に作られた表組みをかき集めて一つの表組みとして表示できないか、表組みは並び替えやフィルタ、集計なんかも出来たら良いですねぇ。diary/2006-11-22

#contentsx
*進行状況 [#h323a0ff]
#table_edit2(form=textarea|textarea,table_mod=open){{
|SIZE(12):|SIZE(12):|SIZE(12):|SIZE(12):|SIZE(12):|c
|~予定(案)|~状況|~発案日|~完了日|~Ver|h
|読取制限ページの対応|対応していると実験に不都合が生じるので暫く未対応|'06/11/23|||
|行数制限(指定行数をオーバーした場合は、次ページとし1,2,3・・・とリンクを作成)||[['06/11/23>diary/2006-11-22]]|||
|集計機能(sum,count,avg)||[['06/11/23>diary/2006-11-22]]|||
|フィルタ機能|ページや見出しに対してのフィルタ。(完了)&br;表組みに対してのフィルタ。(完了)&br;アクションプラグイン表示からのフィルタ(完了)|[['06/11/23>diary/2006-11-22]]|06/11/25|0.4|
|並び替え機能|微妙に完了…、なんかカッコワルイですね… (^^;  06/11/24&br;インラインプラグイン機能を使う。&br;その他遊びを幾つか追加。 06/11/25|[['06/11/23>diary/2006-11-22]]|06/11/25|0.2|
}}

*仕様 [#p0ce7564]

-基本としてツリー構造で作成されたページ群の親ページ基点にその配下の全子ページを取込んで結合します。
-1ページだけであってもページ内に複数の表組が存在するならそれらを結合して結合します。
-h付き表組み書式行をヘッダとします。逆に言えばhが無いヘッダ行はデータ行として扱います。
**オプション [#m73804e1]
#table_edit2(form=text|text|textarea,title_c=1,table_mod=open){{{
|オプション|引数|説明|h
|page|ページ名を指定します。|表組みを設置している親ページを指定します。&br;page=ページ名 を指定しない場合は、#union_tableを設置したページの下層ページから表組みを取得します。|
|page_link|off|参照ページのリンクを表示しない|
|~|short|ページ名が××/○○/△△としたら後ろの△△の部分だけを表示する。|
|section|無し|見出しを列に加える|
|sort|列番号|並び替える列を左から数えた数値で指定します。|
|sort_ad|a|SORT_ASCをセットします。昇順ソート|
|~|d|SORT_DESCをセットします。降順ソート|
|filter_0((0から始まる列番号です。))|正規表現|filter_列番号=正規表現 の形式で目的の列に対してフィルタ条件を指定する事が出来ます。&br;セクション表示をしないでセクションフィルタを利用する時は&br;filter_section=正規表現としてください。|
|except_0|正規表現|filter_と同じ形式で指定します。指定した文字を含む行を除外します。(あまりテストできていません)|
|set_filter_form|無し|表組の先頭にフィルタ条件を指定するためのフォームを表示します。&br;※セレクトボックスに表示する項目に\や " の文字が含まれている場合、処理をしないように規制しています。これはhtmlの仕様上問題が起きる(表示が崩れる)恐れがあるためです。&br;\を正規表現で捕らえられませんorz \\じゃないのかな?|
|form_text_off|無し|フィルタ指定フォーム上のテキストボックスを消す(セレクトボックスだけにします)|
}}}
*サンプル [#n8371105]
※セレクトボックスの内容に%%()や%%"がある場合、表示しないようにしています。&br;
  " の文字記号がまずいのはわかるけど%%()は何故でしょう%%…orz&br;
  \ があった場合に崩れるようです…。除外で試したはずなのに正規表現が効かない?

**利用方法として [#k8d617fb]
 このプラグインの活用法はアイデア次第で無数にあると思います。もしよろしければ「こんな使い方あるよ」とご紹介頂ければ嬉しいです。
-セクションに評価を作りフィルタで集計すれば
|作品名|満足度|リンク|h
|table_edit2.inc.php|★★★☆☆|PukiWiki/make/table_edit2.inc.php|
--このような一行表組みも収集して一覧表にします。
--つまりセクションと|ほげ|を各ページに設置する事でページ目次を作る事が出来ます。
-各カテゴリ別に表を作って収集
--○○在庫/○月
 **A倉庫
 |品名|数量|
 |バット|2|
 ~ 略
 **B倉庫
 |品名|数量|
 |バット|1|
 ~ 略
--#union_table(page=○○在庫/,section,filter_2=バット,sort=1)
|pageA|section<D>|品名A|数量A|h
|○○在庫/○月|A倉庫|バット|2|
|~略|~略|~略|~略|

***設置例1 [#h863e35b]
-フィルタフォームを表示
-2列目にSORTを行う
-1列目のhtmlの文字を含む行だけ表示する
-セクションを列として表示
-取込む表組みは、ページはPukiWiki/functionの1ページからのみ
-ページのリンク列は表示しない

#region(設置例1)
 #union_table(page=PukiWiki/function,set_filter_form,filter_0=html|func,sort=1,page_link=off,section)

#union_table(page=PukiWiki/function,set_filter_form,filter_0=html|func,sort=1,page_link=off,section)
#endregion
#clear
***設置例2 [#hd88e996]
-単純にページ名だけでも表示します。&br;
(もちろん親ページから子ページを表示する場合はページの指定も要りません)
-ここの指定でページ名の最後に/を置いていますが、これは親ページを含めずという意味です。
もし/がなければdiary/2006-11-22のページにある表組みも含めます。

 #union_table(page=diary/2006-11-22/)
#region(設置例2)
#union_table(page=diary/2006-11-22/)
#endregion

***設置例3 [#iaf5242d]
-表組が存在するページがある規則に従って作られていれば取出すのは簡単です。
-%%但し、ヘッダが無いと別の表組みから取ってきてしまいます。%%ヘッダは最低限欲しいですね。%%又、ヘッダは最初に見つけたヘッダを利用します。この辺の改良が必要ですねぇ。%%&br;
 (今のところヘッダの問題は放置しています。)

 #union_table(page=PukiWiki/make/,section,page_link=off,filter_1=目的)
#union_table(page=PukiWiki/make/,section,page_link=off,filter_1=目的)
*ダウンロード [#m9ded43d]
-試験的にアップしてみます。
-オプションや仕様が最終的に変わるかもしれません
-現在テスト中のため、読込制限をしているページからも表組を取込みます。
#table_edit2(form=text|textarea|text|textarea,table_mod=open){{
|SIZE(12):|SIZE(12):|SIZE(12):|SIZE(12):|c
|~ファイル|~Ver|~日付|~コメント|h
|&ref(union_table.inc.php.0.4.3);|0.4.3|'06/12/08-'06/12/10|とりあえず、並べ替えとフィルタを実装&br;(0.4の追加番号は微調整分)&br;密かにPukiWiki1.4.7 UTF8に対応確認&br;調整内容(postが不便なのでgetに、フィルタ対応ヘッダが動作不完全だったので修正)|
}}
*開発状況 [#q2250a96]
#key_page(diary,union_table,list,nosection)
*コメント [#g226817e]
- [[pukiwiki:質問箱4/456]] で利用者が1人増えた? --  &new{2009-05-17 (日) 08:02:27};
- このプラグインって、たしか開発中に「getで引き渡すデーターが多すぎると処理できない」という問題から解決策も出せないまま今に至っている状態なんですよね・・・。いずれ仕様を変更して作り直そうと考えてはいます。一応、このプラグインについての問題、修正依頼は簡単であれば対応します。 -- [[taru]] &new{2009-05-17 (日) 14:26:04};
- 長さ制限ってことは、OpenID v2化で話題になっていたPKWK_QUERY_STRING_MAX のせい? --  &new{2009-05-17 (日) 14:44:37};
- PKWK_QUERY_STRING_MAXですね、、、。[[こんな事しても>http://taru.s223.xrea.com/index.php?encode_hint=%E3%81%B7&plugin=union_table&refer=PukiWiki%2F1.4%2FManual%2FPlugin%2F&sort_ad=a-a-a-a-a-a&sort_type=r-r-r-r-r-r&sort=0&sort_sec=1&page_link=short&section=&set_filter_form=&main_page=PukiWiki%2F1.4%2FManual%2FPlugin&filter=set&text_filter_0=&filter_0=&text_filter_1=&filter_1=&text_filter_2=&filter_2=&text_filter_3=%E2%98%85%E2%98%85%E2%98%85%E2%98%85%E2%98%86&filter_3=&text_filter_4=%27%23attach%27%E3%81%A7%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AB%E6%B7%BB%E4%BB%98%E3%81%95%E3%82%8C%E3%81%9F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E6%8C%87%E5%AE%9A%E4%BD%8D%E7%BD%AE%E3%81%AB%E5%B1%95%E9%96%8B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%26br%3B%E6%B7%BB%E4%BB%98%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E7%94%BB%E5%83%8F%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AF%E7%94%BB%E5%83%8F%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%80%81%E3%81%9D%E3%82%8C%E4%BB%A5%E5%A4%96%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AF%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E7%94%A8%E3%81%AE%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%BE%E3%81%99%E3%80%82&filter_4=%27%23attach%27%E3%81%A7%E3%83%9A%E3%83%BC%E3%82%B8%E3%81%AB%E6%B7%BB%E4%BB%98%E3%81%95%E3%82%8C%E3%81%9F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%92%E6%8C%87%E5%AE%9A%E4%BD%8D%E7%BD%AE%E3%81%AB%E5%B1%95%E9%96%8B%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%26br%3B%E6%B7%BB%E4%BB%98%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%8C%E7%94%BB%E5%83%8F%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AF%E7%94%BB%E5%83%8F%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%80%81%E3%81%9D%E3%82%8C%E4%BB%A5%E5%A4%96%E3%81%AE%E5%A0%B4%E5%90%88%E3%81%AF%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%E7%94%A8%E3%81%AE%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%97%E3%81%BE%E3%81%99%E3%80%82&text_filter_5=&filter_5=]]エラーが出ないなんて・・・ (..; 。 -- [[taru]] &new{2009-05-17 (日) 16:23:01};
- はじめまして。大変便利に使わせて頂いてます。utf8環境なのですが、フィルタが何を指定しても0件となってしまい困っています。日本語がダメなのかと思ったのですが英数のみの表でも0件となります。table_filter辺りが関係すると思うのですがわかりません。何か解決のヒントでもいただけたら嬉しいのですが。。 -- [[irab]] &new{2009-11-18 (水) 11:41:29};
-- 一応、このページでは動いている機能なのですよね?。でしたら一度ノーマル環境のスペースを作ってテストしてみて頂けないでしょうか、どのような条件下でフィルタが働かなくなったか等の情報があればこちらも何らかの判断ができるかもしれません。 -- [[taru]] &new{2009-11-18 (水) 17:47:52};
- ソートで年代別に並べようとおもったんですが、紀元前や西暦まざっててきれいに並ばないことにきずいた (..;  -- [[えるむ]] &new{2010-01-13 (水) 16:51:09};
- こんにちは。このプラグ印便利ですね!いろいろ試しているのですが、セレクトボックスの表示ありでセル内の文字数が多いと表の右端が見切れてしまいますね。セレクトボックスの文字数を画面に合わせて少なくするか任意列のfilter_formをOFFに出来る様にする事は可能でしょうか? -- [[ages]] &new{2011-10-03 (月) 22:52:51};
- こんにちは。このプラグ印便利ですね!いろいろ試しているのですが、セレクトボックスの表示ありでセル内の文字数が多いと表の右端が見切れてしまいますね。セレクトボックスの文字数を画面に合わせて少なくするか任意列のfilter_formをOFFに出来る様にする事は可能でしょうか? -- [[ages]] &new{2011-10-03 (月) 22:57:51};

#comment

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup Referer   Help   RSS of recent changes