** deldel.inc.php [#v3bfe03c] |RIGHT:100|LEFT:360|c |~サマリ|複数ページ一括削除プラグイン| |~リビジョン|1.50| |~対応バージョン|1.4.4以降| |~投稿者|[[okkez]]| |~投稿日|&new{2005-03-31 (木) 01:23:06};| ***概要 [#w13a9704] -複数ページを一括削除するプラグインです。 -ライセンスはPukiWiki本体と同じGPLです。 #contents ***説明 [#g7998b53] -[[欲しいプラグイン/149]] を見て作りました。 -複数のページやらなんやらをひと思いにバッサリ削除するプラグインです。 -現在消せるもの --全てのページ --全てのバックアップ --全ての添付ファイル --カウンタープラグイン等で使用する*.countファイル --DIFF_DIR以下にある差分ファイル --元ページの存在しないCACHE_DIR/*.ref,CACHE_DIR/*.rel -XHTML1.1 validation check済み((Another HTML-lint(http://openlab.ring.gr.jp/k16/htmllint/index.html)とThe W3C Markup Validation Service(http://validator.w3.org/)を使いました。)) ***使用法 [#wc2c12eb] まず、以下をja.langに追加する。((ゴメンナサイ。書くの忘れてました。2004-11-22 (月) 03:31:16))~ ver.1.00で連想配列のキーが大幅に変更されています。以前のバージョンをお使いの方は忘れずアップデートして下さい。~ ver.1.10でcount関連のメッセージを追加しました。~ ver.1.20でdiff関連のメッセージを追加しました。~ ver.1.30でcache関連のメッセージを追加しました。~ ver.1.40で新機能関連のメッセージを追加しました。~ ver.1.50でreferer削除関連のメッセージを追加しました。~ ////////////////////////////////////// // deldel.inc.php $_deldel_messages = array( 'title_deldel' => '複数ページ一括削除プラグイン', 'title_list' => 'ページの一覧', 'title_backuplist' => 'バックアップの一覧', 'title_attachlist' => '添付ファイルの一覧', 'title_difflist' => '差分ファイルの一覧', 'title_cachelist' => '元ページの存在しないキャッシュファイルを削除しました', 'title_counterlist' => 'カウントファイルの一覧', 'title_refererlist' => 'リンク元ファイル一覧', 'title_delete_page' => 'ページを一括削除しました', 'title_delete_backup' => 'バックアップを一括削除しました', 'title_delete_attach' => '添付ファイルを一括削除しました', 'title_delete_diff' => '差分ファイルを一括削除しました', 'title_delete_counter' => 'カウントファイルを一括削除しました', 'title_delete_referer' => 'リンク元ファイルを一括削除しました', 'title_delete_error' => 'エラー', 'title_select_list' => '選択された一覧', 'msg_error' => 'ちゃんと削除するページを選んで下さい!', 'msg_body_start' => '操作したいデータを選んで、管理者パスワードを入力して検索ボタンを押して下さい。', 'msg_check' => '削除したいものにチェックを入れるか、パターンを入力して確認ボタンを押して下さい。', 'msg_auth' => 'これらのファイルを削除してよければ、削除用パスワードを入力して削除ボタンを押して下さい。', 'msg_backup' => '複数のバックアップファイルを一括削除しました。', 'msg_page' => '複数のページを一括削除しました。', 'msg_auth_error' => '管理者パスワードが一致しません。', 'msg_delete_error' => '削除しようとしたファイルはもう既にないか、何らかの理由で削除できませんでした。確認して下さい。', 'msg_delete_success' => '以上のファイルを削除しました。', 'msg_fatal_error' => '何か変です!何が変かはわかりません。', 'msg_back_word' => '戻る', 'msg_regexp_label' => 'パターン:', 'msg_regexp_error' => 'そんなパターンを含むページありません!', 'btn_exec' => '削除', 'btn_search' => '検索', 'btn_concern' => '確認'); そして、コマンド型プラグインなので以下のようにコマンドをうちこむ。~ http://hogehoge/pukiwiki.php?cmd=deldel ~ その後は、画面の指示に従って操作していけばいいです。 ***動作イメージ [#o7e3b9e8] #ref(deldel.png,nolink) こんな感じです。 ***既知の問題 [#tdafb9d2] -添付ファイルは凍結されていると、削除できない。((削除できない方がいいですよね)) -%%ページは凍結されていても削除できる。%%((0.92で修正)) -%%エラー処理が貧弱。%%((0.92で割とまともになったと思います)) -attach.inc.phpとbackup.inc.phpに依存している。 ***更新履歴 [#y65b37e2] -0.9 2004-11-21 --最初のリリース -0.91 2004-11-22 --最初の画面でも認証するようにした。 --認証後$vars['pass']を消去するようにした。 -0.92 2004-11-24 --設定によっては添付ファイルを削除できなかった問題を修正した。 --凍結されているページは削除できないようにした。 --メッセージを少し変更した。 --重複してる処理をまとめたりして、コードを読みやすいように全面的に書き直した。 --エラー時に削除できたものと、削除できなかったものをわかるようにした。etc -0.93 2004-11-24 --HTMLエンティティを実体参照に直した。 --削除するものが未選択時のエラー処理が抜けていた問題を修正した。 -1.00 2005-01-11 --一覧で行末に&color(red){*};をつけて凍結ページ/ファイルがわかるようにした。 --一覧の生成方式を正規表現による置換ではなく、PukiWikiの標準関数/クラスを改造/継承したものを使うようにした。 --メッセージの連想配列のキー名を大幅に変更した。 --冒険者の人達が導入しやすいようにCVS版でも''そのままで''動くようにした。 --PHPdoc形式のコメントを入れた。((中途半端だけど)) -1.10 2005-01-19 --COUNTER_DIR以下にある*.countファイルにも対応した。 --上と関連して、ページが存在しない場合&color(blue){#};を末尾に表示するようにした。 --count関連のメッセージを追加した。 -1.20 2005-01-23 --DIFF_DIR以下にある*.txtの削除に対応した。((あくまで使われていないファイルのお掃除用と割り切って使ってください)) --diff関連のメッセージを追加した。 -1.30 &new{2005-03-30}; --CACHE_DIR/*.ref,CACHE_DIR/*.relで元ページの存在しないものを削除する機能を追加 --ただし、確認せずにいきなり削除するので注意が必要 --cache関連のメッセージを追加した -1.40 &new{2005-03-31}; &ref(./deldel.inc.php-1.40.gz); --正規表現((mb_ereg()を使用))で削除対象を指定できるようにした --それに関連したメッセージを追加 -1.50 &new{2005-06-07}; --新機能追加。TRACKBACK_DIR/*.refを削除出来るようにした。テストが不十分なので注意して使ってください。 ***ダウンロード [#l7c0c2e1] %% 最新版は[[作者のサイト>okkez:memo/自作/プラグイン/deldel.inc.php]]からどうぞ。 %% PukiWiki関連サイトは閉鎖? ***コメント [#cdd7b228] -面白そうなプラグインなので試してみました。%%解凍して出てくるファイル名が「deldel_inc.php」となっているので、呼び出そうとするとエラーが出ますね。「deldel.inc.php」にリネームしたら正常動作しました。%%&br;Wiki上でページ削除する場合に、削除したいページ表示→編集ボタン→編集ボックス内全選択→削除→更新ボタンという従来の方法と比べるとかなり便利ですね。⌣ -- [[sagen]] &new{2004-11-22 (月) 14:34:58}; -一括で削除できるのは便利ですね。ただ$non_listのページは出さない方が良いかもしれません。ファイル名の件は展開するソフトのせいかも。私のところは正しいファイル名で展開されました。 -- [[teanan]] &new{2004-11-22 (月) 15:28:09}; -使ってるソフト((Lhaplus))をバージョンアップしてもう一度試してみたら、正しいファイル名で解凍されました。失礼しました。&worried;&br;$non_listのページを出さないというのは、このプラグインを使って見られたくないページを訪問者に見られてしまう可能性があるからでしょうか。それは分かるのですが、$non_listのページを除外されるとそのページを消したい時には使えなくなってしまいますね。それよりは最初に表示されるページで検索ボタンを押す時に、削除用パスワードを要求する=管理者以外は先へ進めなくする、ようにした方が良いような気がします。 -- [[sagen]] &new{2004-11-22 (月) 16:01:39}; -確かに、最初のページで認証かけといた方がいいみたいですね。 -- [[okkez]] &new{2004-11-22 (月) 18:36:37}; -一覧表示前と、削除ボタンを押すときの二回認証でどうでしょうか?二回認証するのは、操作する人に重大な操作をしてるって意識をしっかりと持って貰うためなんですがどうでしょう?良ければ今晩中に修正したファイルをupします。 -- [[okkez]] &new{2004-11-22 (月) 18:46:32}; -とりあえず、ただ反応を待つのもアレなので新しいのをupしました。 -- [[okkez]] &new{2004-11-23 (火) 00:01:10}; -凍結されたページも凍結を解除して削除できるようにして欲しいです。もちろんチェックボックスなどでYes/Noを選択できるようにしてですが。 -- &new{2004-11-24 (水) 10:51:17}; --凍結は、一覧ですぐ分かれば便利だなーとは思うんですけど、ちょっとややこしいので考えさせてください。 -- [[okkez]] &new{2004-11-24 (水) 11:50:29}; -backup削除時に以下のエラーが出ました。 Fatal error: Call to undefined function: backup_file_exists() in /plugin/deldel.inc.php on line 135 backup.inc.phpは最新の物を利用しています。 -- &new{2004-11-24 (水) 11:02:38}; --backup_file_exists()はlib/backup.phpで定義されているので、 require_once(LIB_DIR.'backup.php'); してみてください。 -- [[okkez]] &new{2004-11-24 (水) 11:43:33}; -diffの削除にも対応して欲しいですね。 -- &new{2004-11-24 (水) 11:04:13}; --diffは内容があんまりよく分かってないので、保留です。((最初はやろうとしていたのですが)) -- [[okkez]] &new{2004-11-24 (水) 11:47:07}; -便利そうなので、思わずダウンロードして使ったら、1.4.4用なんですね。Fatal errorがでました。1.4.3用を作っていただけないですか? -- [[KABUKI]] &new{2004-12-05 (日) 12:55:08}; --pkwk_login()という関数が1.4.3に無いのが原因のようです。1.4.4のアーカイブに含まれるlib/func.phpからコピーしてdeldel.inc.phpの最後にでも書き加えてやると動きます。で、ページの一括削除は出来ます。他のは確認してません((1.4.3と1.4.4の関係ありそうなファイルで適当にdiff取ってみましたが何となく動きそうな気はします))。またトラブルがあれば言ってください。元気があれば対応します。 -- [[okkez]] &new{2004-12-11 (土) 03:14:14}; -便利に使わせていただいています。これってcounterデータの削除にも対応できますか? -- [[doara]] &new{2005-01-17 (月) 17:31:40}; --多分、出来ると思いますが、ちょっと必要性を説明して頂けますか?納得できたら作ります。&br;ページ削除と同時に同ページの*.countも削除されるハズだと思って調べてみたらページと同時には削除されないみたいなので・・・。単に*.countが削除されることが無いからだったら[[dev:BugTrack]]行きだと思います。 -- [[okkez]] &new{2005-01-18 (火) 00:57:40}; --仰る通り、deldel.inc.phpでページをまとめて削除した後に、countがバリバリ残っている事に気付いたので、単純に「こっちも消したいなぁ…文字コード調べるの骨だなぁ…」と思ったのです。countだけを個別に消したいと言う訳ではないです。 -- [[doara]] &new{2005-01-18 (火) 10:25:24}; --でも、ページ削除と同時に本体側でcountの削除をされてしまうと、荒らされたり、誤操作で消した場合、カウントの復旧が難しいですね。カウントってバックアップされてましたっけ? -- [[doara]] &new{2005-01-18 (火) 10:42:37}; --わかりました。ちょっと調べてから作るのでまったりとお待ちください。 -- [[okkez]] &new{2005-01-18 (火) 18:57:10}; -確かcounterlistプラグインで消せたような。 -- &new{2005-01-18 (火) 19:24:53}; --[[自作/プラグイン/counterlist.inc.php - JO1UPK>upk:Plugin/counterlist.inc.php]]コレのことですね。情報ありがとうございます。 -- [[okkez]] &new{2005-01-18 (火) 20:15:52}; --ホントだ。counterlistプラグインは知っていましたが、気付きませんでした。&br;ただ、これ、ひとつひとつ…ですね (^^; deldelの様な実装の方が嬉しいんですが…(欲張りですか?)。とりあえず目的は果たせそうなので、okkezさんのご判断にお任せします。 -- [[doara]] &new{2005-01-18 (火) 21:06:15}; --完成したのでアップしました。あまりテストしてない((というかこのプラグインをテストできる程立派なPukiWikiを持っていないorz))ので気を付けて使ってください。 -- [[okkez]] &new{2005-01-19 (水) 00:53:23}; --試させていただきます。全然まったり待つ暇もありませんでした⌣。ありがとうございました。 -- [[doara]] &new{2005-01-19 (水) 10:18:27}; --割と作業が早かったのは、元々拡張しやすいように作ったからです&bigsmile;それから、試して不具合があるかないか、報告して頂けると助かります。 -- [[okkez]] &new{2005-01-19 (水) 23:25:09}; --試させていただいています。今のところは不具合らしき現象には出会っていません。また何かありましたらご報告します。ありがとうございました。 -- [[doara]] &new{2005-01-19 (水) 23:28:36}; ---了解しました。こちらこそありがとうございました。 -- [[okkez]] &new{2005-01-20 (木) 00:01:27}; -[[dev:開発日記/2005-01-22]]を見て、やっとPukiWikiにおけるdiffの意味がわかったので、新機能としてdiffの一括削除をつけました。一応、ゴミファイルの削除が目的なので&color(blue){#};が行末に付いていないものを消すことは非推奨です。 -- [[okkez]] &new{2005-01-23 (日) 18:18:49}; -パスワードを入れて検索すると、 Fatal error: Call to undefined function: pkwk_login() in /Users/nagu/Sites/pukiwiki/plugin/deldel.inc.php on line 45となります。 -- [[nagu]] &new{2005-02-11 (金) 07:27:56}; --pukiwiki-1.4.4より前のものではないでしょうか? -- [[teanan]] &new{2005-02-11 (金) 09:19:47}; -ありがとうございます。大量のテキストを貼り付けたページ(改行なし)が重たすぎてフリーズしてしまっていたのを削除できました。-- [[ISOガバ]] &new{2005-02-26 (土) 16:15:13}; -「ある階層より下にあるページを、親ページを指定することによって一括削除する」というような機能を組み込んでいただくことは可能でしょうか? また、指定ページを削除するためのリンクが作れるようになると便利だと思いました。[ [ このページを削除:pukiwiki.php?cmd=deldel&target=this&del=all ] ]こんな感じで。どうでしょうか。 -- [[sng2]] &new{2005-03-25 (金) 01:45:17}; --前者は可能だと思うのですが、後者がちょっとイメージわきません。単に削除のリンクが欲しいだけならコンバートプラグイン((#deldel(pagename)のような感じで))とかにするのが良さそうな気がします。ちょっと今、個人的な事情で忙しいので手はつけられませんが、夏までにはやってみようと思います。 -- [[okkez]] &new{2005-03-25 (金) 02:19:58}; --正確な動作を把握せずに発言して申し訳ないのですが、リンクはInterWikiでできそうな気がします :) -- [[teanan]] &new{2005-03-25 (金) 08:56:39}; --コンバートプラグインの意味がようやくわかりました。"コンバートプラグイン"というプラグインを探してしまいました... :P 対応ありがとうございます。 -- [[sng2]] &new{2005-03-25 (金) 13:58:41}; --teananさん: 今のところdeldelには、targetとか、delとかいうオプションが無いので、リンクを作ることが不可能なんです。で、これらのオプションが追加されれば、リンクを作ることで簡単にページを削除することができるようになるなと思ったんですが、「コンバートプラグインという形式になればもっと楽になりますね。」という話でした。話ずれてたらすみません。 -- [[sng2]] &new{2005-03-25 (金) 14:04:12}; ---うーん。よく考えたら、ページを削除するリンクというものが''必要な状況''が見えてきません。私にも納得できる理由があれば作ろうかなと思います。 -- [[okkez]] &new{2005-03-31 (木) 03:17:33}; ---今自分は、pukiwikiを「自分以外の人にはめったに見せない、ネットを通じて使える便利で高機能な一人用メモ帳」として使えないか? ということを実験しいて、その関係で、要らないメモを手軽に消すための削除リンクがあるとさらに便利になると感じたわけです。もしかしたらpukiwikiの使い方としてはかなり特殊な部類に入るかもしれません。 -- [[sng2]] &new{2005-04-01 (金) 03:26:01}; --失礼致しました。 -- [[teanan]] &new{2005-03-25 (金) 19:52:54}; -なんとなく気が向いたので、新機能追加です。とりあえず、[[うちのサイト>okkez:memo/自作/プラグイン/deldel.inc.php]]で公開します。 -- [[okkez]] &new{2005-03-30 (水) 22:35:45}; --元ページの存在しないCACHE_DIR/*.refとCACHE_DIR/*.relの削除が出来ます。 -- [[okkez]] &new{2005-03-30 (水) 22:37:48}; -ver.1.40をupしました。正規表現で削除対象を指定できます。これで、sng2さんの要望に応えることが出来たと思います。 -- [[okkez]] &new{2005-03-31 (木) 01:36:06}; -早速試してみました。かなり理想の動作をする感じになって便利度アップです! ありがとうございます!! -- [[sng2]] &new{2005-04-01 (金) 03:19:16}; -[[質問箱3/96]] -- &new{2005-06-12 (日) 21:01:53}; -[[うちのサイト>okkez:memo/自作/プラグイン/deldel.inc.php]]で最新版を公開しています。何かありましたら、こちらでも私のサイトでも良いのでコメントよろしくお願いします。 -- [[okkez]] &new{2005-06-19 (日) 19:04:26}; -作者サイトにて新ver公開しました。 -- [[okkez]] &new{2005-06-28 (火) 22:10:00}; -sng2さんの要望を受けて[[自作プラグイン/delpage.inc.php]] を作ってみました。 -- [[okkez]] &new{2005-07-10 (日) 13:48:23}; - 欲しかったプラグインなのでダウンロードしようかと思ったのですが、リンクの「作者のサイト」をクリックすると、&br;503 Service Unavailable&br;Failed to connect to the server fullmetal.dip.jp&br;と出て出来ないんですが....。 -- [[通りすがり]] &new{2006-02-28 (火) 16:27:27}; -- 自宅サーバーで運営しているので、たまにつながらないときがあります。今は大丈夫だと思います。 -- [[okkez]] &new{2006-02-28 (火) 20:00:51}; -- アクセスできました。ダウンロード出来ました。活用させていただきます。 -- [[通りすがり]] &new{2006-03-01 (水) 11:11:16}; - パターンを検索後にも、チェックボタンで削除ページの選択ができるようになったらいいなぁと思いました。よろしくお願いします -- [[こんこん]] &new{2006-04-24 (月) 15:32:52}; - ある単語(文字列)を含んだページの一括削除ってできますか? パターン検索のところで試しましたが出来ませんでした。正規表現を使うと言うことであれば、どのようにすればいいでしょうか? -- &new{2006-08-28 (月) 13:02:57}; -- ページ名に含まれている文字列しか対象にはできません。ページ内容には対応してません。ごめんなさい。 -- [[okkez]] &new{2006-09-24 (日) 14:17:29}; - 作者サイトで新版を公開しました。 -- [[okkez]] &new{2006-09-24 (日) 16:46:41}; - 作者さんのサイトにアクセスできないんですが、もう公開していないんですか? -- [[hogeo]] &new{2007-08-16 (木) 13:15:02}; -- 今見たらアクセスできましたよ :) 一時的なものだったのでは。 -- &new{2007-08-16 (木) 14:51:52}; - 作者サイト [[okkez:memo/自作/プラグイン/deldel.inc.php]] が見えないのですが、閉鎖しましたか? -- [[成松 勇]] &new{2008-01-04 (金) 11:32:51}; -- 1年ほど前のコメントを見ると、「自宅サーバーで運営しているので、たまにつながらないときがあります。」とあるので、そのうち再起動するのでは? -- &new{2008-01-04 (金) 14:25:25}; - つながらねぇ。。。 -- [[で]] &new{2009-02-27 (金) 16:33:14}; -- リンク(InterWikiName)を新サイトに修正したので、アクセスできるようになったと思いますよ。 -- &new{2009-05-03 (日) 16:58:44}; - 最終確認のページで日本語が文字化け。なぜ? -- [[tosi]] &new{2009-08-20 (木) 11:35:26}; -- どのバージョンを使っていますか?1.62 から「ソースの文字コードをUTF-8に変更」とあるので、EUC-JP なPukiWiki で使うにはプラグインのファイルの文字コードをEUC-JP に変換しないとだめですよ。 -- &new{2009-08-20 (木) 15:06:47}; -- 文字コードは変えてあります。ファイルを一覧させるところまでは正常なのですが,チェックしたファイル名を引き渡す時に文字化けするようです。 -- [[tosi]] &new{2009-08-20 (木) 20:49:05}; //#comment