Top > PukiWiki > make > union_table.inc.php

union_table.inc.php Edit

目的特定のページ群から表組を収集、結合します
対応バージョン1.4.7plus-i18nで確認
作成者taru
公開日2006-12-8 (金) 22:57:52(仮公開)
ライセンスGPL2(意味わかっていませんorz)

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

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

進行状況 Edit

予定(案)状況発案日完了日Ver
読取制限ページの対応対応していると実験に不都合が生じるので暫く未対応'06/11/23
行数制限(指定行数をオーバーした場合は、次ページとし1,2,3・・・とリンクを作成)'06/11/23
集計機能(sum,count,avg)'06/11/23
フィルタ機能ページや見出しに対してのフィルタ。(完了)
表組みに対してのフィルタ。(完了)
アクションプラグイン表示からのフィルタ(完了)
'06/11/2306/11/250.4
並び替え機能微妙に完了…、なんかカッコワルイですね… (^^;  06/11/24
インラインプラグイン機能を使う。
その他遊びを幾つか追加。 06/11/25
'06/11/2306/11/250.2

仕様 Edit

  • 基本としてツリー構造で作成されたページ群の親ページ基点にその配下の全子ページを取込んで結合します。
  • 1ページだけであってもページ内に複数の表組が存在するならそれらを結合して結合します。
  • h付き表組み書式行をヘッダとします。逆に言えばhが無いヘッダ行はデータ行として扱います。

オプション Edit

オプション引数説明
pageページ名を指定します。表組みを設置している親ページを指定します。
page=ページ名 を指定しない場合は、#union_tableを設置したページの下層ページから表組みを取得します。
page_linkoff参照ページのリンクを表示しない
shortページ名が××/○○/△△としたら後ろの△△の部分だけを表示する。
section無し見出しを列に加える
sort列番号並び替える列を左から数えた数値で指定します。
sort_adaSORT_ASCをセットします。昇順ソート
dSORT_DESCをセットします。降順ソート
filter_0*1正規表現filter_列番号=正規表現 の形式で目的の列に対してフィルタ条件を指定する事が出来ます。
セクション表示をしないでセクションフィルタを利用する時は
filter_section=正規表現としてください。
except_0正規表現filter_と同じ形式で指定します。指定した文字を含む行を除外します。(あまりテストできていません)
set_filter_form無し表組の先頭にフィルタ条件を指定するためのフォームを表示します。
※セレクトボックスに表示する項目に\や " の文字が含まれている場合、処理をしないように規制しています。これはhtmlの仕様上問題が起きる(表示が崩れる)恐れがあるためです。
\を正規表現で捕らえられませんorz \\じゃないのかな?
form_text_off無しフィルタ指定フォーム上のテキストボックスを消す(セレクトボックスだけにします)

サンプル Edit

※セレクトボックスの内容に()や"がある場合、表示しないようにしています。
  " の文字記号がまずいのはわかるけど()は何故でしょう…orz
  \ があった場合に崩れるようです…。除外で試したはずなのに正規表現が効かない?

利用方法として Edit

 このプラグインの活用法はアイデア次第で無数にあると思います。もしよろしければ「こんな使い方あるよ」とご紹介頂ければ嬉しいです。

  • セクションに評価を作りフィルタで集計すれば
    作品名満足度リンク
    table_edit2.inc.php★★★☆☆PukiWiki/make/table_edit2.inc.php
    • このような一行表組みも収集して一覧表にします。
    • つまりセクションと|ほげ|を各ページに設置する事でページ目次を作る事が出来ます。
  • 各カテゴリ別に表を作って収集
    • ○○在庫/○月
      **A倉庫
      |品名|数量|
      |バット|2|
      ~ 略
      **B倉庫
      |品名|数量|
      |バット|1|
      ~ 略
    • #union_table(page=○○在庫/,section,filter_2=バット,sort=1)
      pageAsection<D>品名A数量A
      ○○在庫/○月A倉庫バット2
      ~略~略~略~略

設置例1 Edit

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

設置例2 Edit

  • 単純にページ名だけでも表示します。
    (もちろん親ページから子ページを表示する場合はページの指定も要りません)
  • ここの指定でページ名の最後に/を置いていますが、これは親ページを含めずという意味です。 もし/がなければdiary/2006-11-22のページにある表組みも含めます。
#union_table(page=diary/2006-11-22/)
+  設置例2

設置例3 Edit

  • 表組が存在するページがある規則に従って作られていれば取出すのは簡単です。
  • 但し、ヘッダが無いと別の表組みから取ってきてしまいます。ヘッダは最低限欲しいですね。又、ヘッダは最初に見つけたヘッダを利用します。この辺の改良が必要ですねぇ。
     (今のところヘッダの問題は放置しています。)
#union_table(page=PukiWiki/make/,section,page_link=off,filter_1=目的)
charts.inc.php 目的欲しいプラグイン/257で紹介されたmaanigraph.inc.phpを参考に作り直しました。(但し最終的にプログラムは全部変更しています。)
PHP/SWF Charts 4.5を利用する為のプラグイン
contents_table.inc.php 目的見出しのリンク一覧を表組みで作ります。(レベルは無視)
img_view.inc.php 目的ページに添付した複数の画像ファイルを、ページ更新することなくボタンで切替表示する
key_page.inc.php 目的ページ名、見出し、タイトル(TITLE:)のコンテンツに抽出条件を指定して簡単に一覧リンクを作れないかとの思いから作ってみました。
mini_c_s.inc.php 目的minicalendar_viewerの一覧表示に次ページ以降の一覧へ移動するリンク付ける
page_viewer.inc.php 目的Plus!公式で自作プラグインサンプルを表示できないかと考え作ってみました。つまりgreybox.inc.phpで利用するために作っています。
ref_s.inc.php 目的refプラグインでは添付ファイルを設置する時にファイルを参照するのが面倒なので作ってみました。
table_edit2.inc.php 目的表組編集の支援ツール
total_comment.inc.php 目的指定ページのコメント件数を集計します。
union_table.inc.php 目的特定のページ群から表組を収集、結合します


count10

ダウンロード Edit

  • 試験的にアップしてみます。
  • オプションや仕様が最終的に変わるかもしれません
  • 現在テスト中のため、読込制限をしているページからも表組を取込みます。
    ファイルVer日付コメント
    fileunion_table.inc.php.0.4.30.4.3'06/12/08-'06/12/10とりあえず、並べ替えとフィルタを実装
    (0.4の追加番号は微調整分)
    密かにPukiWiki1.4.7 UTF8に対応確認
    調整内容(postが不便なのでgetに、フィルタ対応ヘッダが動作不完全だったので修正)

開発状況 Edit

コメント Edit

  • pukiwiki:質問箱4/456 で利用者が1人増えた? -- 2009-05-17 (日) 08:02:27
  • このプラグインって、たしか開発中に「getで引き渡すデーターが多すぎると処理できない」という問題から解決策も出せないまま今に至っている状態なんですよね・・・。いずれ仕様を変更して作り直そうと考えてはいます。一応、このプラグインについての問題、修正依頼は簡単であれば対応します。 -- taru 2009-05-17 (日) 14:26:04
  • 長さ制限ってことは、OpenID v2化で話題になっていたPKWK_QUERY_STRING_MAX のせい? -- 2009-05-17 (日) 14:44:37
  • PKWK_QUERY_STRING_MAXですね、、、。こんな事してもエラーが出ないなんて・・・ (..; 。 -- taru 2009-05-17 (日) 16:23:01
  • はじめまして。大変便利に使わせて頂いてます。utf8環境なのですが、フィルタが何を指定しても0件となってしまい困っています。日本語がダメなのかと思ったのですが英数のみの表でも0件となります。table_filter辺りが関係すると思うのですがわかりません。何か解決のヒントでもいただけたら嬉しいのですが。。 -- irab? 2009-11-18 (水) 11:41:29
    • 一応、このページでは動いている機能なのですよね?。でしたら一度ノーマル環境のスペースを作ってテストしてみて頂けないでしょうか、どのような条件下でフィルタが働かなくなったか等の情報があればこちらも何らかの判断ができるかもしれません。 -- taru 2009-11-18 (水) 17:47:52
  • ソートで年代別に並べようとおもったんですが、紀元前や西暦まざっててきれいに並ばないことにきずいた (..; -- えるむ? 2010-01-13 (水) 16:51:09
  • こんにちは。このプラグ印便利ですね!いろいろ試しているのですが、セレクトボックスの表示ありでセル内の文字数が多いと表の右端が見切れてしまいますね。セレクトボックスの文字数を画面に合わせて少なくするか任意列のfilter_formをOFFに出来る様にする事は可能でしょうか? -- ages? 2011-10-03 (月) 22:52:51
  • こんにちは。このプラグ印便利ですね!いろいろ試しているのですが、セレクトボックスの表示ありでセル内の文字数が多いと表の右端が見切れてしまいますね。セレクトボックスの文字数を画面に合わせて少なくするか任意列のfilter_formをOFFに出来る様にする事は可能でしょうか? -- ages? 2011-10-03 (月) 22:57:51

URL B I U SIZE Black Maroon Green Olive Navy Purple Teal Gray Silver Red Lime Yellow Blue Fuchsia Aqua White

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