サマリ | 編集可能テーブル |
リビジョン | 1.18 |
対応バージョン | 1.4.5_1, 1.4.6, 1.4.7 |
投稿者 | qinf |
投稿日 | |
説明 †
http://wiki.trick-with.net/TableEdit?.html みたいな表の編集が楽にできるプラグイン
設置方法 †
- table_edit.inc.phpをpluginディレクトリに入れる
- pngファイルをimageディレクトリに入れる
使用方法 †
あらかじめ「ほげふが」という表専用ページを作っておきます。
このとき、少なくとも表のヘッダは作成しておいてください。
#table_edit(ほげふが)
とすることで使用できます。
- 設置数の初期設定は4つです。お好みに応じて設定し直して下さい。
書式 †
#table_edit(表ページの名前 [, ソート文字列])
ソート文字列は次のように指定します。
[ソートしたい列の番号1][追加指定記号1] : [ソートしたい列の番号2][追加指定記号2] ...
- ソートしたい列の番号: 「編集」を押したときの、1から始まる数値
- 追加指定記号: n, r, s
- n: 数字順に並び換えます
- s: 辞書順に並び換えます
- r: ソートの順序を逆にします
- nとsは同時に指定できません
- nとsを省略したときにはs(辞書順)として扱います
例を下にいくつか挙げておきます。
- ソートを行わない
#table_edit(ほげふが)
- 2列目でソート
#table_edit(ほげふが, 2)
- 2列目で数値順ソート
#table_edit(ほげふが, 2n)
- 2列目で数値順ソート('2n'のときと逆の順序)
#table_edit(ほげふが, 2nr)
- 1列目で数値順ソートし、数値が同じ場合はさらに3列目でソート(主キーが1列目で、副キーが3列目)
#table_edit(ほげふが, 2n:3)
また、次の点に注意してください。
- 行方向でのソート機能はありません
- ソートを使用した場合は、書式指定行による効果が意図した結果にならない可能性があります
- ソート文字列の指定を省略した場合や、read.inc.phpの代わりに使用する場合にはPLUGIN_TABLE_EDIT_DEFAULT_SORT_STRINGに指定されている文字列が使用されます
プラグイン内設定 †
- PLUGIN_TABLE_EDIT_MAX : 設置数の上限(初期値: 4)
- PLUGIN_TABLE_EDIT_FIELD_WIDTH : 編集画面の編集フィールドサイズ指定(初期値: 100)
- PLUGIN_TABLE_EDIT_FORCE_TIME_UPDATE : 編集時に常に日付を更新するかどうか(初期値: false)
- PLUGIN_TABLE_EDIT_DEFAULT_SORT_STRING : デフォルトのソート方法(初期値: '')
- PLUGIN_TABLE_EDIT_USE_MULTIROW : 複数行編集を可能にするかどうか(初期値: false)
- PLUGIN_TABLE_EDIT_IMAGE_BASEURL : 画像のあるURLの位置。空文字列なら自動推測する (初期値: '')
- PLUGIN_TABLE_EDIT_FORM_SELECTION_MAX_ITEM : 既知の項目を選択可能にするときの最大項目数。これを越えると従来通りのテキストボックスが表示される (初期値:0)
- PLUGIN_TABLE_EDIT_FORM_SELECTION_RADIO : 既知の項目を選択時の表示。trueならラジオボタン、falseならプルダウンメニュー (初期値: true)
ダウンロード †
ダウンロード -> http://muffin.cias.osakafu-u.ac.jp/wiki/?plugin=attach&refer=FrontPage&pcmd=open&file=table_edit-1.18.zip
(現在、attachプラグインによるXSSのためファイルを添付できないので、1.2以降のファイルはpukiwiki本家ではなく外部に置かれています)
ダウンロード
table_edit-1.18.zip
制限 / バグ †
- HTTPのGETメソッドを使用しているので文字数制限がある (2000byte程度)
- ひとつの項目(セル)に ' と " を混在させている場合、編集画面でその項目の文字列が正しく表示/更新されません
- 複数行編集 (PLUGIN_TABLE_EDIT_USE_MULTIROW) を可能にしているならこの問題はなくなるかも
- これはpukiwikiの制約ではなく、エスケープシーケンスを理解しないブラウザ(もしくはHTML自体)の制限によるものです
ライセンス †
PukiWikiと同じライセンスです(内部にPukiwikiソースを使用しているため)。
TODO †
- 書式指定行を有効にする
- 現状では2行目あたりにおいてください
- 対応はやや面倒
read.inc.phpの代わりに使用する †
注意: この方法は次のような問題が生じるかもしれません。
- セキュリティ上の問題などの重大な問題が発生する可能性があります。
- read.inc.phpの完全な互換がないかもしれません。
read.inc.phpはplugin=やcmd=が指定されていない場合に内部で暗黙に呼び出されるプラグインです。
このプラグインが呼び出されるときに、代わりにtable_edit.inc.phpが呼び出されるようにすることで、
通常のページの表が編集可能になり、表専用ページが不要になります。
方法1 †
方法2 (バージョン1.18以前まで可能) †
プラグインの置き換えは、具体的には次のような手順で行います。
- table_edit.inc.phpを次のように修正する(左の数値は1.16での行番号)。
24 //define('PLUGIN_TABLE_EDIT_PLUGIN_NAME', 'read');
25 define('PLUGIN_TABLE_EDIT_PLUGIN_NAME', 'table_edit');
を
24 define('PLUGIN_TABLE_EDIT_PLUGIN_NAME', 'read');
25 //define('PLUGIN_TABLE_EDIT_PLUGIN_NAME', 'table_edit');
にする。
553 //function plugin_read_action()
554 function plugin_table_edit_action()
を
553 function plugin_read_action()
554 //function plugin_table_edit_action()
にする。
- 元に戻すことができるようにread.inc.phpをリネーム(例: read.inc.php.org)する
- table_edit.inc.phpをread.inc.phpにリネームする
その後、てきとうなページに表を作成してみて、
表の右の列に「追加」や「削除」が追加されているか確認してください。
http://pukiwiki.sourceforge.jp/?%E8%87%AA%E4%BD%9C%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3/table_edit.inc.php
&ref(): File not found: "table_edit-1.18.zip" at page "table_edit";