$_title_backuplist, 'body'=>plugin_backup_get_list_all()); check_readable($page, true, true); $s_page = htmlsc($page); $r_page = rawurlencode($page); $action = isset($vars['action']) ? $vars['action'] : ''; if ($action == 'delete') return plugin_backup_delete($page); $s_action = $r_action = ''; if ($action != '') { $s_action = htmlsc($action); $r_action = rawurlencode($action); } $s_age = (isset($vars['age']) && is_numeric($vars['age'])) ? $vars['age'] : 0; if ($s_age <= 0) return array( 'msg'=>$_title_pagebackuplist, 'body'=>plugin_backup_get_list($page)); $script = get_script_uri(); $body = '' . "\n"; if ($action == 'diff') { $title = & $_title_backupdiff; $old = ($s_age > 1) ? join('', $backups[$s_age - 1]['data']) : ''; $cur = join('', $backups[$s_age]['data']); $body .= plugin_backup_diff(do_diff($old, $cur)); } else if ($s_action == 'nowdiff') { $title = & $_title_backupnowdiff; $old = join('', $backups[$s_age]['data']); $cur = join('', get_source($page)); $body .= plugin_backup_diff(do_diff($old, $cur)); } else if ($s_action == 'source') { $title = & $_title_backupsource; $body .= '
' . htmlsc(join('', $backups[$s_age]['data'])) .
			'
' . "\n"; } else { if (PLUGIN_BACKUP_DISABLE_BACKUP_RENDERING) { die_message('This feature is prohibited'); } else { $title = & $_title_backup; $body .= $hr . "\n" . drop_submit(convert_html($backups[$s_age]['data'])); } } return array('msg'=>str_replace('$2', $s_age, $title), 'body'=>$body); } // Delete backup function plugin_backup_delete($page) { global $vars, $_title_backup_delete, $_title_pagebackuplist, $_msg_backup_deleted; global $_msg_backup_adminpass, $_btn_delete, $_msg_invalidpass; if (! _backup_file_exists($page)) return array('msg'=>$_title_pagebackuplist, 'body'=>plugin_backup_get_list($page)); // Say "is not found" $body = ''; if (isset($vars['pass'])) { if (pkwk_login($vars['pass'])) { _backup_delete($page); return array( 'msg' => $_title_backup_delete, 'body' => str_replace('$1', make_pagelink($page), $_msg_backup_deleted) ); } else { $body = '

' . $_msg_invalidpass . '

' . "\n"; } } $script = get_script_uri(); $s_page = htmlsc($page); $body .= <<$_msg_backup_adminpass

EOD; return array('msg'=>$_title_backup_delete, 'body'=>$body); } function plugin_backup_diff($str) { global $_msg_addline, $_msg_delline, $hr; $ul = <<
  • $_msg_addline
  • $_msg_delline
  • EOD; return $ul . '
    ' . diff_style_to_css(htmlsc($str)) . '
    ' . "\n"; } function plugin_backup_get_list($page) { global $_msg_backuplist, $_msg_diff, $_msg_nowdiff, $_msg_source, $_msg_nobackup; global $_title_backup_delete; $script = get_script_uri(); $r_page = rawurlencode($page); $s_page = htmlsc($page); $retval = array(); $retval[0] = <<
  • $_msg_backuplist
      EOD; $retval[1] = "\n"; $retval[2] = <<
    EOD; $backups = _backup_file_exists($page) ? get_backup($page) : array(); if (empty($backups)) { $msg = str_replace('$1', make_pagelink($page), $_msg_nobackup); $retval[1] .= '
  • ' . $msg . '
  • ' . "\n"; return join('', $retval); } if (! PKWK_READONLY) { $retval[1] .= '
  • '; $retval[1] .= str_replace('$1', $s_page, $_title_backup_delete); $retval[1] .= '
  • ' . "\n"; } $href = $script . '?cmd=backup&page=' . $r_page . '&age='; $_anchor_from = $_anchor_to = ''; foreach ($backups as $age=>$data) { if (! PLUGIN_BACKUP_DISABLE_BACKUP_RENDERING) { $_anchor_from = ''; $_anchor_to = ''; } $date = format_date($data['time'], TRUE); $author_info = ''; if (isset($data['author'])) { $author_info = htmlsc('by ' . $data['author_fullname'] . '(' . $data['author'] . ')'); } $retval[1] .= <<$_anchor_from$age $date$_anchor_to [ $_msg_diff | $_msg_nowdiff | $_msg_source ] $author_info EOD; } return join('', $retval); } // List for all pages function plugin_backup_get_list_all($withfilename = FALSE) { global $cantedit; $pages = array_diff(get_existpages(BACKUP_DIR, BACKUP_EXT), $cantedit); if (empty($pages)) { return ''; } else { return page_list($pages, 'backup', $withfilename); } }