make_pages.inc.php†
サマリ | 複数ページを一括で作成するプラグイン |
リビジョン | 0.90 |
対応バージョン | 1.4.4 |
投稿者 | okkez |
投稿日 | |
- 複数ページを一括で作成します。
- ライセンスはPukiWiki本体と同じGPLです。
- prefix+数字で複数ページを一括で作成できる。
- 任意のセパレータ*1で区切ったリストからページを一括作成できる。
- prefixモードの場合のみ、prefixの末尾にあるスラッシュを削除する。
- 日記などで、とりあえず一ヶ月分ページを作るなんていうときに便利かも知れません。
- 一応、XHTML1.1 validation check済み
使用法†
まず、以下をja.lngに追加する。
///////////////////////////////////////
// make_pages.inc.php
$_make_pages_messages = array(
'title_make_pages' => '連番ページ作成プラグイン',
'title_success' => '成功',
'title_error' => 'エラー',
'msg_success' => '<p>以上のページを作成しました</p>',
'msg_auth_error' => '<p>認証エラー</p>',
'msg_error' => '<p>エラー。</p><p>引数の指定が間違ってませんか?</p>',
'msg_prefix' => 'ページ名プレフィクスを記入<span class="new1">*</span>',
'msg_first' => '始めの番号',
'msg_last' => '終わりの番号',
'msg_slash' => 'ページ名プレフィクスと連番の間の"/"の有無',
'msg_slash_true' => '有',
'msg_slash_false' => '無',
'msg_list' => 'ページ名リスト(セパレータで区切る)<span class="new1">*</span>',
'msg_post' => 'メッセージ',
'msg_password' => '管理者パスワード<span class="new1">*</span>',
'msg_body_start' => '必要事項を記入して実行ボタンを押してください。<span class="new1">*</span>印は省略できません。',
'btn_exec' => '実行');
そして、コマンド型プラグインなので以下のようにコマンドをうちこむ。
http://hogehoge/pukiwiki.php?cmd=make_pages
または
http://hogehoge/pukiwiki.php?cmd=make_pages&mode=list
make_pages.inc.phpの最初の方に定数が定義してあるのでそれらを変更することでプラグインの動作を少し変更できます。
- MAKE_PAGES_DEFAULT_FIRST_PAGE_NUM
- プラグインをprefixモードで呼び出したときに見えている始めの番号欄にある数字
- MAKE_PAGES_DEFAULT_LAST_PAGE_NUM
- プラグインをprefixモードで呼び出したときに見えている終わりの番号欄にある数字
- MAKE_PAGES_DEFAULT_SLASH
- あんまり意味ないけどprefixと数字の間にスラッシュを入れるかどうか。 TRUE or FALSE
- MAKE_PAGES_DEFAULT_MODE
- デフォルトのモードを指定する。'prefix' か 'list'
- MAKE_PAGES_SEPARATOR
- listモードで使うセパレータ
- MAKE_PAGES_DEFAULT_POSTDATA
- デフォルトでPOSTするデータ
動作イメージ†

こんな感じです。
既知の問題†
- 作成できるページ数は使用しているサーバーの設定と能力による*2
更新履歴†
ダウンロード†
make_pages.inc.php.gz
コメント†
- やっぱりあまり反応が無い。ついでにPukiWikiの内部関数を利用してシェルからN万件一気に作れるPHPスクリプトも書いたけど、プラグインじゃないからこっちには公開しづらい*3。 -- okkez
- 発想が面白いですね :) ベタな管理ツールというのは、そのような状況を望む管理者がいなくては成り立ちませんから、このプラグイン自体がどちらかといえばdev向けなのかもしれませんね。 -- henoheno
- 遅くなりましたが、リンク追加ありがとうございました。 -- okkez
- Trackerとlistbox3でデータベースを作っているのですが、これとても便利そうなので試させていただきます。 -- mkyan
- calendar2に対応させるページを作るときに便利そうですね。 -- yusu
- 社内Wikiを作っているのですが、やろうとしていた作業にドンピシャのプラグインでした。ありがとうございました。(ページ名指定で作れるのが大変ありがたいです) -- 名無しさん
おまけ†
- 上で書いてたシェルから一気に~というヤツです。
- 自分のPukiWikiのページ数の限界を知りたい人向け。
- コマンド一発で、数万頁作成可能です。*4
- ちなみに作者の環境*5では10万頁作成に20分以上かかりました。
- ベンチマークのお供にお一ついかがですか?
使用上の注意†
- あらゆるトラブルを自己解決する努力の出来る人のみ使用してください。
- ライセンスはPukiWiki本体と同じGPLです。
使い方†
- 一行に一つページ名を書いたテキストファイルを用意する。*6
- PukiWikiの整形ルールに従って書いたテキストファイルを用意する。
- スクリプト内の各種定数を適切に設定する。
- シェルから以下のコマンドを実行する。*7*8
$ php make_pages.php <list> <contents>
- 多分、出来上がったファイルはPukiWikiが読み書きできるようにchownかchmodしないとダメ。
既知の問題†
- スクリプトのusage*9の英語が適当。文法的に正しいのかさえ怪しい。
- 色々とコマンドラインから使うのに問題があったので、PukiWikiの標準の関数はコピペして一部書き換えてます。
- 追加したページが全部同じ内容になるのが玉に瑕。いつどこゲームみたいにフレーズを組み合わせてページ内容を作成できれば面白いんだろうけど。
おまけダウンロード†
omake.tar.gz
中身はmake_pages.phpとmake_list.phpです。
おまけに対するコメント†
- 本当にベンチマークにいいかもしれません :) 少なくとも私はきっと試します :) -- henoheno
- 是非、試してみて下さい。ちなみに負荷対策を全くしないでページ数を増やしてみたところ5000ページ程度で出力されるhtmlが途中で切れる等、何らかの不具合が出ました。 -- okkez
- I tested it with 10000 pages on Athlon(classic) 700Mhz/512M/FreeBSD 5.3/Apache 2.0.53/php 4.3.10(with eAccelerator)... doing ?cmd=links took 333.209sec, making & editing page takes few seconds, loading FrontPage with 10000 related pages takes 13~20sec(depends on cpu load), List of pages is same as FrontPage. -- xo
- test site is here: http://xo.1.vg/test/ feel free to play with it ;) -- xo
- forgot to test search.. it fails 30s execution time limit -- xo