flexlist.inc.php
| サマリ | 別のページに記述されたデータを元に、ソート・検索・フィルター・グループ化・ページネーションといった諸機能を備えたテーブルを生成します。 |
|---|
| リビジョン | 1.0 |
|---|
| 対応バージョン | 1.5.4 |
|---|
| 投稿者 | 綾つむぎ(ゆいかせ) |
|---|
| 投稿日 | &new{2025-10-03 (金) 12:37:33}; |
|---|
特徴
- データと表示の完全な分離 データ管理用のページと、テーブルを表示するページを分けることで、大規模なデータのメンテナンスを容易にします。
- 強力なグルーピング 指定した列の値でデータを分類し、見出し付きで表示できます。
- 完全なカスタム順序 ソート、グループ化、フィルターの項目の並び順を、論理的な(意味のある)順番で自由に定義できます (例: 「大, 中, 小」)。
- &color(blue){ユーザーフレンドリーなUI}: 検索、複数列ソート(Ctrl/Cmd+クリック)、表示件数の動的な変更が可能です。
- 単一ファイルで完結 `flexlist.inc.php` を一つ置くだけで、すべての機能が利用できます。
インストール
1. 上記のリンクから `flexlist.inc.php` をダウンロードします。
2. PukiWikiの `plugin` ディレクトリに、ダウンロードしたファイルをアップロードします。
基本的な使い方
ステップ1: データページの作成
まず、データを格納するためのページ(例: Data/MyList)を作成し、以下の2つのブロックを記述します。
#code(pukiwiki){{
// 設定ブロック
#flexlist_config
|key|type|label|width|
|name|sort|名前|auto|
|category|group-filter-sort|分類|150px|
#flexlist_endconfig
// データブロック
#flexlist_data
|~名前|~分類|
|アイテムA|フルーツ|
|アイテムB|野菜|
|アイテムC|フルーツ|
#flexlist_enddata
}}
ステップ2: 表示ページでの呼び出し
テーブルを表示したいページで、以下のようにプラグインを呼び出します。
#code(pukiwiki){{
#flexlist(Data/MyList)
}}
設定の詳細 (#flexlist_config)
`#flexlist_config` ブロックでは、テーブルの全体設定と列ごとの詳細な設定を定義します。
全体設定
テーブルの上に、`キー:値` の形式で記述します。
| キー | 説明 | 例 |
| pagination_options | 表示件数ドロップダウンの選択肢をカンマ区切りで指定します。`All`は全件表示を意味します。 | `pagination_options: 25, 50, 100, All` |
| pagination_default | 初期状態で選択される表示件数を指定します。 | `pagination_default: 50` |
列設定
Wikiのテーブル形式で、1行がテーブルの1列に対応します。
| 列名 | 必須 | 説明 |
| `key` | ○ | データの内部的な名前。半角英数字を推奨します。 |
| `type` | ○ | 列の機能をハイフン区切りで指定します (例: `group-filter-sort`)。 - `sort`: ソート可能になります。 - `filter`: フィルター可能になります。 - `group`: グループ化の対象になります。 - `csv`: カンマ区切りの複数値をフィルター対象として扱います。 |
| `label` | ○ | テーブルヘッダーに実際に表示される名前。データブロックのヘッダーと一致させる必要があります。 |
| `width` | ○ | 列の幅をCSS形式で指定します (`auto`, `150px`, `30%` など)。 |
| `options` | ☓ | `キー:値`形式で、セミコロン区切りで高度な設定を行います。 |
高度な設定 (`options`列)
| オプション | 説明 | 例 |
| `sort_priority` | デフォルトのソート優先度。数値が小さいほど優先されます。 | `sort_priority:1` |
| `order` | ソート、グループ化、フィルターの項目に、意味のある順番を与えます。カンマ区切りで、優先したい順に値を記述します。 | `order:Yes,No` `order:高,中,低` |
既知の問題
データページ(例: Data/MyList)を直接ブラウザで表示した場合、`#flexlist_config` や `#flexlist_data` といったタグが、処理されずにそのまま表示されることがあります。
これは、単純な文字列を返すインラインプラグインに対するPukiWikiの表示仕様によるもので、プラグインの機能自体に影響はありません。`#flexlist(...)` で呼び出した際の表示は、正常に行われます。