ja:plugin:struct:filters
Struct プラグイン:フィルター
フィルターは集約を抽出処理するために使用します。
固定フィルタ
固定フィルタは filter
と filteror
オプションを使って追加します。
固定フィルタは列名、比較演算子、比較する値を要求します。
例:
---- struct table ---- schemas : projects A cols : %pageid%, product, budget, team filter : product = "Fantastico Basic" filteror : product = "Fantastico Professional" ----
列名はもちろん完全列名(例:projects.product
)を参照するか定義済みのエリアス(例:A.product
)を使用できます。
比較演算子
抽出処理するために複数の比較演算子を使用できます:
比較演算子 | 意味 |
---|---|
= | 完全に一致 |
!= 又は <> | 完全には一致しない |
< | 未満 |
<= | 以下 |
> | より多い |
>= | 以上 |
~ | ワイルドカードと一致する。* をワイルドカードとして使用します。例えば Apple Pie と Apple Computer に一致する Apple* 。例:dessert~ *Pie 。大文字小文字は区別しません。 |
*~ | ワイルドカードと一致する。検索語を含む一致を探します。例:dessert*~ Pi は Apple Pie と一致します。 |
!~ | 負のワイルドカード一致。表現に一致しないすべてを選択します。 |
値のプレースホルダー
固定フィルタを定義する場合、半自動的な値と比較すると便利な場合があります。 値のプレースホルダーが便利です。 フィルタを作成するときは、単に値の代わりにプレースホルダーを使用します。
以下の例では、現在のユーザーがチームのメンバーであるすべてのプロジェクトを印刷します:
---- struct table ---- schemas : projects A cols : %pageid%, product, budget, team filter : team = %USER% ----
プレースホルダー | 説明 |
---|---|
$USER$ | 現在ログインしているユーザー |
$TODAY$ | Y-m-d 形式の今日日付 |
$ID$ | ページの全ページ ID (of the page the aggregation is defined on) |
$PAGE$ | ページの名前空間以外のページ名 |
$NS$ | ページの名前空間 |
$STRUCT.<schema>.<field>$ | The struct data saved for the current page in given field. |
動的フィルター
dynfilters
オプションを追加するか妥当な URL パラメータを渡すことで集約を「動的に」抽出することができます。
以下の例では、選択されたすべての列に抽出用の入力フィールドを追加します。
---- struct table ---- schemas : projects A cols : %pageid%, product, budget, team dynfilters : 1 ----
この方法を使って作成したフィルターは、常に *~
比較演算子を使用します。
つまり、列データ内のどこでも検索語を探します。
動的フィルターは flt
パラメータを使用して追加することもできます。
パラメータは、キーの中に列名と比較演算子の組み合わせを入れ、値の中に比較値を入れた配列型です。
例:?flt[projects.budget>]=10000
ja/plugin/struct/filters.txt · 最終更新: 2016-08-06 10:07 by sawachan