plugin/backup.inc.phpの改良 paraedit

  • ページ: Develop/Modification1
  • 投稿者: ぃぉぃぉ
  • 優先順位: 低
  • 状態: 完了
  • カテゴリー: 新機能
  • 投稿日: 2008-02-28 (木) 19:39:47
  • バージョン:

メッセージ paraedit


巻き戻し機能(完) paraedit

特定の世代に巻き戻す。

  • 表示中の世代($vars['age']が設定されている)のソースをpage_write()するイメージかな。

表示形式変更(完) paraedit

表示形式によって一覧がことなったり、一覧時にそのページへ戻るリンクがなかったり、使いづらい。一覧を統一する。

バックアップの選択削除機能追加(完) paraedit

2008-03-05 デバッグメモ

function plugin_backup_rollback($page, $age)
{
	global $_title_backup_rollbacked, $_msg_backup_rollbacked, $_btn_rollback, $_title_backup_rollback;
	global $_msg_backup_adminpass, $_msg_invalidpass;
	global $vars;
 
	$body = '';
	if(PLUGIN_BACKUP_ROLLBACK_ADMINONLY) {
		$pass_exists = isset($vars['pass']);
		$passvalid = $pass_exists ? pkwk_login($vars['pass']) : FALSE;
	} else {
		$passvalid = TRUE;
	}
 
	if(!$passvalid) {
		if($pass_exists) {
			$body .= '<p><strong>' . $_msg_invalidpass . '</strong></p>' . "\n";
		}

pass入力前にpassエラー表示になることを防止しなきゃ。

現在はバックアップはページ丸ごと削除しか出来ない。世代毎に削除できてもいいよね。
一覧にチェックボックスを設けて、選択した世代だけ削除できるようにしよう。

  • plugin/backup.inc.php
  • lib/backup.php
    • function _backup_delete()を以下の様に置き換え。
      /**
       * _backup_delete
       * バックアップファイルを削除する
       *
       * @access    private
       * @param    String    $page    ページ名
       * @param    array    $ages    削除する世代。空なら全部。
       *
       * @return    Boolean   FALSE:失敗
       */
      function _backup_delete($page, $ages = array())
      {
          if($ages === array()) {
              return unlink(_backup_get_filename($page));
          } else {
              $backups = get_backup($page);
              foreach($ages as $age) {
                  unset($backups[$age]);
              }
              $strout = '';
              foreach($backups as $age=>$data) {
                  $strout .= PKWK_SPLITTER . ' ' . $data['time'] . "\n"; // Splitter format
                  $strout .= join('', $data['data']);
                  unset($backups[$age]);
              }
              $strout = preg_replace("/([^\n])\n*$/", "$1\n", $strout);
              $fp = _backup_fopen($page, 'wb')
                  or die_message('Cannot open ' . htmlspecialchars(_backup_get_filename($page)) .
                  '<br />Maybe permission is not writable or filename is too long');
              _backup_fputs($fp, $strout);
              _backup_fclose($fp);
          }
      } 
  • **.lng.php
    $_msg_backup_adminpass = 'パスワードを入力してください。';
$_msg_rollback			= 'このバックアップ(No. $1)を書き戻す';
$_button_selectdelete	= '選択したバックアップを削除';
$_title_backup_rollback = '$1 のバックアップを書き戻す';
$_title_backup_rollbacked = '$1 をバックアップに書き戻しました';
$_msg_backup_rollbacked = '$1に書き戻しました。';
$_btn_rollback			= 'バックアップを書き戻す';
$_msg_rollback			= 'Rollback this backup(No. $1)';

$_msg_deletedは削除。

  • conf/pkwkplugin.def.php
    /**
     * backup.inc.php
     */
    define('PLUGIN_BACKUP_USE_ROLLBACK', TRUE);
    define('PLUGIN_BACKUP_ROLLBACK_ADMINONLY', FALSE);

do_backの値による動作 paraedit

plugin_backup_action()にて、

if (! $do_backup) return;

としているが、現在のdo_backupの値と、backupプラグインの動作とは関係ないだろう。例えば現在do_backupが0でもbackupは作成されていて、その値を確認したいというのはありうる。なので削除。

PukiWiki 1.4.7(euc)用 paraedit

./backup modification for pukiwiki1.4.7




添付ファイル: filebackup.inc.php 185件 [詳細]

トップ 編集凍結差分バックアップ添付複製名前変更リロード 新規一覧 単語検索 最終更新  ヘルプ  最終更新のRSS
Last-modified: 2008-03-12 (水) 10:53:56 (4242d)