deldel.inc.php

サマリ複数ページ一括削除プラグイン
リビジョン1.50
対応バージョン1.4.4以降
投稿者okkez
投稿日2005-03-31 (木) 01:23:06

概要

説明

  • 欲しいプラグイン/149 を見て作りました。
  • 複数のページやらなんやらをひと思いにバッサリ削除するプラグインです。
  • 現在消せるもの
    • 全てのページ
    • 全てのバックアップ
    • 全ての添付ファイル
    • カウンタープラグイン等で使用する*.countファイル
    • DIFF_DIR以下にある差分ファイル
    • 元ページの存在しないCACHE_DIR/*.ref,CACHE_DIR/*.rel
  • XHTML1.1 validation check済み*1

使用法

まず、以下をja.langに追加する。*2
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
その後は、画面の指示に従って操作していけばいいです。

動作イメージ

deldel.png

こんな感じです。

既知の問題

  • 添付ファイルは凍結されていると、削除できない。*3
  • ページは凍結されていても削除できる。*4
  • エラー処理が貧弱。*5
  • attach.inc.phpとbackup.inc.phpに依存している。

更新履歴

  • 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
    • 一覧で行末に*をつけて凍結ページ/ファイルがわかるようにした。
    • 一覧の生成方式を正規表現による置換ではなく、PukiWikiの標準関数/クラスを改造/継承したものを使うようにした。
    • メッセージの連想配列のキー名を大幅に変更した。
    • 冒険者の人達が導入しやすいようにCVS版でもそのままで動くようにした。
    • PHPdoc形式のコメントを入れた。*6
  • 1.10 2005-01-19
    • COUNTER_DIR以下にある*.countファイルにも対応した。
    • 上と関連して、ページが存在しない場合#を末尾に表示するようにした。
    • count関連のメッセージを追加した。
  • 1.20 2005-01-23
    • DIFF_DIR以下にある*.txtの削除に対応した。*7
    • diff関連のメッセージを追加した。
  • 1.30 2005-03-30
    • CACHE_DIR/*.ref,CACHE_DIR/*.relで元ページの存在しないものを削除する機能を追加
    • ただし、確認せずにいきなり削除するので注意が必要
    • cache関連のメッセージを追加した
  • 1.40 2005-03-31 filedeldel.inc.php-1.40.gz
    • 正規表現*8で削除対象を指定できるようにした
    • それに関連したメッセージを追加
  • 1.50 2005-06-07
    • 新機能追加。TRACKBACK_DIR/*.refを削除出来るようにした。テストが不十分なので注意して使ってください。

ダウンロード

最新版は作者のサイトからどうぞ。 PukiWiki関連サイトは閉鎖?

コメント

  • 面白そうなプラグインなので試してみました。解凍して出てくるファイル名が「deldel_inc.php」となっているので、呼び出そうとするとエラーが出ますね。「deldel.inc.php」にリネームしたら正常動作しました。
    Wiki上でページ削除する場合に、削除したいページ表示→編集ボタン→編集ボックス内全選択→削除→更新ボタンという従来の方法と比べるとかなり便利ですね。⌣ -- sagen 2004-11-22 (月) 14:34:58
  • 一括で削除できるのは便利ですね。ただ$non_listのページは出さない方が良いかもしれません。ファイル名の件は展開するソフトのせいかも。私のところは正しいファイル名で展開されました。 -- teanan 2004-11-22 (月) 15:28:09
  • 使ってるソフト*9をバージョンアップしてもう一度試してみたら、正しいファイル名で解凍されました。失礼しました。&worried;
    $non_listのページを出さないというのは、このプラグインを使って見られたくないページを訪問者に見られてしまう可能性があるからでしょうか。それは分かるのですが、$non_listのページを除外されるとそのページを消したい時には使えなくなってしまいますね。それよりは最初に表示されるページで検索ボタンを押す時に、削除用パスワードを要求する=管理者以外は先へ進めなくする、ようにした方が良いような気がします。 -- sagen 2004-11-22 (月) 16:01:39
  • 確かに、最初のページで認証かけといた方がいいみたいですね。 -- okkez 2004-11-22 (月) 18:36:37
  • 一覧表示前と、削除ボタンを押すときの二回認証でどうでしょうか?二回認証するのは、操作する人に重大な操作をしてるって意識をしっかりと持って貰うためなんですがどうでしょう?良ければ今晩中に修正したファイルをupします。 -- okkez 2004-11-22 (月) 18:46:32
  • とりあえず、ただ反応を待つのもアレなので新しいのをupしました。 -- okkez 2004-11-23 (火) 00:01:10
  • 凍結されたページも凍結を解除して削除できるようにして欲しいです。もちろんチェックボックスなどでYes/Noを選択できるようにしてですが。 -- 2004-11-24 (水) 10:51:17
    • 凍結は、一覧ですぐ分かれば便利だなーとは思うんですけど、ちょっとややこしいので考えさせてください。 -- okkez 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は最新の物を利用しています。
    • 2004-11-24 (水) 11:02:38
    • backup_file_exists()はlib/backup.phpで定義されているので、
      require_once(LIB_DIR.'backup.php');
      してみてください。 -- okkez 2004-11-24 (水) 11:43:33
  • diffの削除にも対応して欲しいですね。 -- 2004-11-24 (水) 11:04:13
    • diffは内容があんまりよく分かってないので、保留です。*10 -- okkez 2004-11-24 (水) 11:47:07
  • 便利そうなので、思わずダウンロードして使ったら、1.4.4用なんですね。Fatal errorがでました。1.4.3用を作っていただけないですか? -- KABUKI? 2004-12-05 (日) 12:55:08
    • pkwk_login()という関数が1.4.3に無いのが原因のようです。1.4.4のアーカイブに含まれるlib/func.phpからコピーしてdeldel.inc.phpの最後にでも書き加えてやると動きます。で、ページの一括削除は出来ます。他のは確認してません*11。またトラブルがあれば言ってください。元気があれば対応します。 -- okkez 2004-12-11 (土) 03:14:14
  • 便利に使わせていただいています。これってcounterデータの削除にも対応できますか? -- doara? 2005-01-17 (月) 17:31:40
    • 多分、出来ると思いますが、ちょっと必要性を説明して頂けますか?納得できたら作ります。
      ページ削除と同時に同ページの*.countも削除されるハズだと思って調べてみたらページと同時には削除されないみたいなので・・・。単に*.countが削除されることが無いからだったらdev:BugTrack行きだと思います。 -- okkez 2005-01-18 (火) 00:57:40
    • 仰る通り、deldel.inc.phpでページをまとめて削除した後に、countがバリバリ残っている事に気付いたので、単純に「こっちも消したいなぁ…文字コード調べるの骨だなぁ…」と思ったのです。countだけを個別に消したいと言う訳ではないです。 -- doara? 2005-01-18 (火) 10:25:24
    • でも、ページ削除と同時に本体側でcountの削除をされてしまうと、荒らされたり、誤操作で消した場合、カウントの復旧が難しいですね。カウントってバックアップされてましたっけ? -- doara? 2005-01-18 (火) 10:42:37
    • わかりました。ちょっと調べてから作るのでまったりとお待ちください。 -- okkez 2005-01-18 (火) 18:57:10
  • 確かcounterlistプラグインで消せたような。 -- 2005-01-18 (火) 19:24:53
    • 自作/プラグイン/counterlist.inc.php - JO1UPKコレのことですね。情報ありがとうございます。 -- okkez 2005-01-18 (火) 20:15:52
    • ホントだ。counterlistプラグインは知っていましたが、気付きませんでした。
      ただ、これ、ひとつひとつ…ですね (^^; deldelの様な実装の方が嬉しいんですが…(欲張りですか?)。とりあえず目的は果たせそうなので、okkezさんのご判断にお任せします。 -- doara? 2005-01-18 (火) 21:06:15
    • 完成したのでアップしました。あまりテストしてない*12ので気を付けて使ってください。 -- okkez 2005-01-19 (水) 00:53:23
    • 試させていただきます。全然まったり待つ暇もありませんでした⌣。ありがとうございました。 -- doara? 2005-01-19 (水) 10:18:27
    • 割と作業が早かったのは、元々拡張しやすいように作ったからです&bigsmile;それから、試して不具合があるかないか、報告して頂けると助かります。 -- okkez 2005-01-19 (水) 23:25:09
    • 試させていただいています。今のところは不具合らしき現象には出会っていません。また何かありましたらご報告します。ありがとうございました。 -- doara? 2005-01-19 (水) 23:28:36
      • 了解しました。こちらこそありがとうございました。 -- okkez 2005-01-20 (木) 00:01:27
  • dev:開発日記/2005-01-22を見て、やっとPukiWikiにおけるdiffの意味がわかったので、新機能としてdiffの一括削除をつけました。一応、ゴミファイルの削除が目的なので#が行末に付いていないものを消すことは非推奨です。 -- okkez 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? 2005-02-11 (金) 07:27:56
    • pukiwiki-1.4.4より前のものではないでしょうか? -- teanan 2005-02-11 (金) 09:19:47
  • ありがとうございます。大量のテキストを貼り付けたページ(改行なし)が重たすぎてフリーズしてしまっていたのを削除できました。-- ISOガバ 2005-02-26 (土) 16:15:13
  • 「ある階層より下にあるページを、親ページを指定することによって一括削除する」というような機能を組み込んでいただくことは可能でしょうか? また、指定ページを削除するためのリンクが作れるようになると便利だと思いました。[ [ このページを削除:pukiwiki.php?cmd=deldel&target=this&del=all ] ]こんな感じで。どうでしょうか。 -- sng2? 2005-03-25 (金) 01:45:17
    • 前者は可能だと思うのですが、後者がちょっとイメージわきません。単に削除のリンクが欲しいだけならコンバートプラグイン*13とかにするのが良さそうな気がします。ちょっと今、個人的な事情で忙しいので手はつけられませんが、夏までにはやってみようと思います。 -- okkez 2005-03-25 (金) 02:19:58
    • 正確な動作を把握せずに発言して申し訳ないのですが、リンクはInterWikiでできそうな気がします :) -- teanan 2005-03-25 (金) 08:56:39
    • コンバートプラグインの意味がようやくわかりました。"コンバートプラグイン"というプラグインを探してしまいました... :P 対応ありがとうございます。 -- sng2? 2005-03-25 (金) 13:58:41
    • teananさん: 今のところdeldelには、targetとか、delとかいうオプションが無いので、リンクを作ることが不可能なんです。で、これらのオプションが追加されれば、リンクを作ることで簡単にページを削除することができるようになるなと思ったんですが、「コンバートプラグインという形式になればもっと楽になりますね。」という話でした。話ずれてたらすみません。 -- sng2? 2005-03-25 (金) 14:04:12
      • うーん。よく考えたら、ページを削除するリンクというものが必要な状況が見えてきません。私にも納得できる理由があれば作ろうかなと思います。 -- okkez 2005-03-31 (木) 03:17:33
      • 今自分は、pukiwikiを「自分以外の人にはめったに見せない、ネットを通じて使える便利で高機能な一人用メモ帳」として使えないか? ということを実験しいて、その関係で、要らないメモを手軽に消すための削除リンクがあるとさらに便利になると感じたわけです。もしかしたらpukiwikiの使い方としてはかなり特殊な部類に入るかもしれません。 -- sng2? 2005-04-01 (金) 03:26:01
    • 失礼致しました。 -- teanan 2005-03-25 (金) 19:52:54
  • なんとなく気が向いたので、新機能追加です。とりあえず、うちのサイトで公開します。 -- okkez 2005-03-30 (水) 22:35:45
    • 元ページの存在しないCACHE_DIR/*.refとCACHE_DIR/*.relの削除が出来ます。 -- okkez 2005-03-30 (水) 22:37:48
  • ver.1.40をupしました。正規表現で削除対象を指定できます。これで、sng2さんの要望に応えることが出来たと思います。 -- okkez 2005-03-31 (木) 01:36:06
  • 早速試してみました。かなり理想の動作をする感じになって便利度アップです! ありがとうございます!! -- sng2? 2005-04-01 (金) 03:19:16
  • 質問箱3/96 -- 2005-06-12 (日) 21:01:53
  • うちのサイトで最新版を公開しています。何かありましたら、こちらでも私のサイトでも良いのでコメントよろしくお願いします。 -- okkez 2005-06-19 (日) 19:04:26
  • 作者サイトにて新ver公開しました。 -- okkez 2005-06-28 (火) 22:10:00
  • sng2さんの要望を受けて自作プラグイン/delpage.inc.php を作ってみました。 -- okkez 2005-07-10 (日) 13:48:23
  • 欲しかったプラグインなのでダウンロードしようかと思ったのですが、リンクの「作者のサイト」をクリックすると、
    503 Service Unavailable
    Failed to connect to the server fullmetal.dip.jp
    と出て出来ないんですが....。 -- 通りすがり? 2006-02-28 (火) 16:27:27
    • 自宅サーバーで運営しているので、たまにつながらないときがあります。今は大丈夫だと思います。 -- okkez 2006-02-28 (火) 20:00:51
    • アクセスできました。ダウンロード出来ました。活用させていただきます。 -- 通りすがり? 2006-03-01 (水) 11:11:16
  • パターンを検索後にも、チェックボタンで削除ページの選択ができるようになったらいいなぁと思いました。よろしくお願いします -- こんこん? 2006-04-24 (月) 15:32:52
  • ある単語(文字列)を含んだページの一括削除ってできますか? パターン検索のところで試しましたが出来ませんでした。正規表現を使うと言うことであれば、どのようにすればいいでしょうか? -- 2006-08-28 (月) 13:02:57
    • ページ名に含まれている文字列しか対象にはできません。ページ内容には対応してません。ごめんなさい。 -- okkez 2006-09-24 (日) 14:17:29
  • 作者サイトで新版を公開しました。 -- okkez 2006-09-24 (日) 16:46:41
  • 作者さんのサイトにアクセスできないんですが、もう公開していないんですか? -- hogeo? 2007-08-16 (木) 13:15:02
    • 今見たらアクセスできましたよ :) 一時的なものだったのでは。 -- 2007-08-16 (木) 14:51:52
  • 作者サイト okkez:memo/自作/プラグイン/deldel.inc.php が見えないのですが、閉鎖しましたか? -- 成松 勇? 2008-01-04 (金) 11:32:51
    • 1年ほど前のコメントを見ると、「自宅サーバーで運営しているので、たまにつながらないときがあります。」とあるので、そのうち再起動するのでは? -- 2008-01-04 (金) 14:25:25
  • つながらねぇ。。。 -- で? 2009-02-27 (金) 16:33:14
    • リンク(InterWikiName)を新サイトに修正したので、アクセスできるようになったと思いますよ。 -- 2009-05-03 (日) 16:58:44
  • 最終確認のページで日本語が文字化け。なぜ? -- tosi? 2009-08-20 (木) 11:35:26
    • どのバージョンを使っていますか?1.62 から「ソースの文字コードをUTF-8に変更」とあるので、EUC-JP なPukiWiki で使うにはプラグインのファイルの文字コードをEUC-JP に変換しないとだめですよ。 -- 2009-08-20 (木) 15:06:47
    • 文字コードは変えてあります。ファイルを一覧させるところまでは正常なのですが,チェックしたファイル名を引き渡す時に文字化けするようです。 -- tosi? 2009-08-20 (木) 20:49:05

*1 Another HTML-lint(http://openlab.ring.gr.jp/k16/htmllint/index.html)とThe W3C Markup Validation Service(http://validator.w3.org/)を使いました。
*2 ゴメンナサイ。書くの忘れてました。2004-11-22 (月) 03:31:16
*3 削除できない方がいいですよね
*4 0.92で修正
*5 0.92で割とまともになったと思います
*6 中途半端だけど
*7 あくまで使われていないファイルのお掃除用と割り切って使ってください
*8 mb_ereg()を使用
*9 Lhaplus
*10 最初はやろうとしていたのですが
*11 1.4.3と1.4.4の関係ありそうなファイルで適当にdiff取ってみましたが何となく動きそうな気はします
*12 というかこのプラグインをテストできる程立派なPukiWikiを持っていないorz
*13 #deldel(pagename)のような感じで

添付ファイル: filedeldel.inc.php-1.40.gz 2904件 [詳細] filedeldel.inc.php-1_20.gz 1386件 [詳細] filedeldel.inc.php-1_10.gz 1258件 [詳細] filedeldel.inc.php-1_00.gz 1236件 [詳細] filedeldel.inc.php_0.93.gz 1301件 [詳細] filedeldel.inc.php_0.92.gz 1215件 [詳細] filedeldel.inc-0_91.php.gz 1237件 [詳細] filedeldel.png 1211件 [詳細] filedeldel.inc.php.gz 1259件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-01-26 (火) 22:24:49
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.497 sec.

OSDN