<?php
-/////////////////////////////////////////////////
// PukiWiki - Yet another WikiWikiWeb clone.
+// $Id: backup.inc.php,v 1.23 2005/09/22 13:45:02 henoheno Exp $
//
-// $Id: backup.inc.php,v 1.16 2004/09/20 02:14:00 henoheno Exp $
-//
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×
+// Backup plugin
+
+// Prohibit rendering old wiki texts (suppresses load, transfer rate, and security risk)
+define('PLUGIN_BACKUP_DISABLE_BACKUP_RENDERING', PKWK_SAFE_MODE || PKWK_OPTIMISE);
+
function plugin_backup_action()
{
- global $script, $vars, $do_backup, $hr;
+ global $vars, $do_backup, $hr;
global $_msg_backuplist, $_msg_diff, $_msg_nowdiff, $_msg_source, $_msg_backup;
global $_msg_view, $_msg_goto, $_msg_deleted;
global $_title_backupdiff, $_title_backupnowdiff, $_title_backupsource;
global $_title_backup, $_title_pagebackuplist, $_title_backuplist;
- if (!$do_backup)
- return;
+ if (! $do_backup) return;
- $page = isset($vars['page']) ? $vars['page'] : '';
- $s_page = $r_page = '';
- if ($page) {
- check_readable($page, true, true);
- $s_page = htmlspecialchars($page);
- $r_page = rawurlencode($page);
- } else {
- return array('msg'=>$_title_backuplist, 'body'=>get_backup_list_all());
- }
+ $page = isset($vars['page']) ? $vars['page'] : '';
+ if ($page == '') return array('msg'=>$_title_backuplist, 'body'=>plugin_backup_get_list_all());
+
+ check_readable($page, true, true);
+ $s_page = htmlspecialchars($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) {
- if ($action == 'delete') {
- return plugin_backup_delete($page);
- }
+ if ($action != '') {
$s_action = htmlspecialchars($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'=>get_backup_list($page));
- }
+ if ($s_age == 0) return array( 'msg'=>$_title_pagebackuplist, 'body'=>plugin_backup_get_list($page));
+
+ $script = get_script_uri();
- $body = "<ul>\n";
- $body .= " <li><a href=\"$script?cmd=backup\">$_msg_backuplist</a></li>\n";
+ $body = '<ul>' . "\n";
+ $body .= ' <li><a href="' . $script . '?cmd=backup">' . $_msg_backuplist . '</a></li>' ."\n";
- $href = "$script?cmd=backup&page=$r_page&age=$s_age";
+ $href = $script . '?cmd=backup&page=' . $r_page . '&age=' . $s_age;
$is_page = is_page($page);
- if ($is_page) {
- if ($action != 'diff')
- $body .= ' <li>' . str_replace('$1', "<a href=\"$href&action=diff\">$_msg_diff</a>", $_msg_view) . "</li>\n";
- if ($action != 'nowdiff')
- $body .= ' <li>' . str_replace('$1', "<a href=\"$href&action=nowdiff\">$_msg_nowdiff</a>", $_msg_view) . "</li>\n";
- }
+ if ($is_page && $action != 'diff')
+ $body .= ' <li>' . str_replace('$1', '<a href="' . $href .
+ '&action=diff">' . $_msg_diff . '</a>',
+ $_msg_view) . '</li>' . "\n";
+
+ if ($is_page && $action != 'nowdiff')
+ $body .= ' <li>' . str_replace('$1', '<a href="' . $href .
+ '&action=nowdiff">' . $_msg_nowdiff . '</a>',
+ $_msg_view) . '</li>' . "\n";
if ($action != 'source')
- $body .= ' <li>' . str_replace('$1', "<a href=\"$href&action=source\">$_msg_source</a>", $_msg_view) . "</li>\n";
+ $body .= ' <li>' . str_replace('$1', '<a href="' . $href .
+ '&action=source">' . $_msg_source . '</a>',
+ $_msg_view) . '</li>' . "\n";
if ($action)
- $body .= ' <li>' . str_replace('$1', "<a href=\"$href\">$_msg_backup</a>", $_msg_view) . "</li>\n";
+ $body .= ' <li>' . str_replace('$1', '<a href="' . $href .
+ '">' . $_msg_backup . '</a>',
+ $_msg_view) . '</li>' . "\n";
if ($is_page) {
- $body .= ' <li>' . str_replace('$1', "<a href=\"$script?$r_page\">$s_page</a>", $_msg_goto) . "\n";
+ $body .= ' <li>' . str_replace('$1',
+ '<a href="' . $script . '?' . $r_page . '">' . $s_page . '</a>',
+ $_msg_goto) . "\n";
} else {
$body .= ' <li>' . str_replace('$1', $s_page, $_msg_deleted) . "\n";
}
$backups = get_backup($page);
- if (count($backups) > 0)
- {
- $body .= " <ul>\n";
- foreach($backups as $age => $val)
- {
- $date = format_date($val['time'],TRUE);
+ if (! empty($backups)) {
+ $body .= ' <ul>' . "\n";
+ foreach($backups as $age => $val) {
+ $date = format_date($val['time'], TRUE);
$body .= ($age == $s_age) ?
- " <li><em>$age $date</em></li>\n" :
- " <li><a href=\"$script?cmd=backup&action=$r_action&page=$r_page&age=$age\">$age $date</a></li>\n";
+ ' <li><em>' . $age . ' ' . $date . '</em></li>' . "\n" :
+ ' <li><a href="' . $script . '?cmd=backup&action=' .
+ $r_action . '&page=' . $r_page . '&age=' . $age .
+ '">' . $age . ' ' . $date . '</a></li>' . "\n";
}
- $body .= " </ul>\n";
- }
- $body .= " </li>\n";
- $body .= "</ul>\n";
-
- if ($action == 'diff')
- {
- $old = ($s_age > 1) ? join('',$backups[$s_age - 1]['data']) : '';
- $cur = join('',$backups[$s_age]['data']);
- $body .= plugin_backup_diff(do_diff($old,$cur));
-
- return array('msg'=>str_replace('$2',$s_age,$_title_backupdiff),'body'=>$body);
- }
- else if ($s_action == 'nowdiff')
- {
- $old = join('',$backups[$s_age]['data']);
- $cur = join('',get_source($page));
- $body .= plugin_backup_diff(do_diff($old,$cur));
-
- return array('msg'=>str_replace('$2',$s_age,$_title_backupnowdiff),'body'=>$body);
+ $body .= ' </ul>' . "\n";
}
- else if ($s_action == 'source')
- {
- $body .= "<pre>".htmlspecialchars(join('',$backups[$s_age]['data']))."</pre>\n";
-
- return array('msg'=>str_replace('$2',$s_age,$_title_backupsource),'body'=>$body);
+ $body .= ' </li>' . "\n";
+ $body .= '</ul>' . "\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 .= '<pre>' . htmlspecialchars(join('', $backups[$s_age]['data'])) .
+ '</pre>' . "\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']));
+ }
}
- // else
- $body .= "$hr\n".drop_submit(convert_html($backups[$s_age]['data']));
- return array('msg'=>str_replace('$2',$s_age,$_title_backup),'body'=>$body);
+ return array('msg'=>str_replace('$2', $s_age, $title), 'body'=>$body);
}
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×¤òºï½ü
+// Delete backup
function plugin_backup_delete($page)
{
- global $script, $vars;
- global $_title_backup_delete, $_title_pagebackuplist, $_msg_backup_deleted;
+ 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'=>get_backup_list($page)); // Say "is not found"
+ 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);
+ _backup_delete($page);
return array(
'msg' => $_title_backup_delete,
- 'body' => str_replace('$1',make_pagelink($page),$_msg_backup_deleted)
+ 'body' => str_replace('$1', make_pagelink($page), $_msg_backup_deleted)
);
} else {
- $body = "<p><strong>$_msg_invalidpass</strong></p>\n";
+ $body = '<p><strong>' . $_msg_invalidpass . '</strong></p>' . "\n";
}
}
+ $script = get_script_uri();
$s_page = htmlspecialchars($page);
$body .= <<<EOD
<p>$_msg_backup_adminpass</p>
</div>
</form>
EOD;
- return array('msg'=>$_title_backup_delete,'body'=>$body);
+ return array('msg'=>$_title_backup_delete, 'body'=>$body);
}
function plugin_backup_diff($str)
return $str;
}
-// ¥Ð¥Ã¥¯¥¢¥Ã¥×°ìÍ÷¤ò¼èÆÀ
-function get_backup_list($page)
+function plugin_backup_get_list($page)
{
- global $script;
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 = htmlspecialchars($page);
$retval = array();
</ul>
EOD;
- $backups = backup_file_exists($page) ? get_backup($page) : array();
- if (count($backups) == 0)
- {
- $msg = str_replace('$1',make_pagelink($page), $_msg_nobackup);
- $retval[1] .= " <li>$msg</li>\n";
- return join('',$retval);
+ $backups = _backup_file_exists($page) ? get_backup($page) : array();
+ if (empty($backups)) {
+ $msg = str_replace('$1', make_pagelink($page), $_msg_nobackup);
+ $retval[1] .= ' <li>' . $msg . '</li>' . "\n";
+ return join('', $retval);
}
- $retval[1] .= " <li><a href=\"$script?cmd=backup&action=delete&page=$r_page\">";
- $retval[1] .= str_replace('$1',$s_page,$_title_backup_delete);
- $retval[1] .= "</a></li>\n";
+
+ if (! PKWK_READONLY) {
+ $retval[1] .= ' <li><a href="' . $script . '?cmd=backup&action=delete&page=' .
+ $r_page . '">';
+ $retval[1] .= str_replace('$1', $s_page, $_title_backup_delete);
+ $retval[1] .= '</a></li>' . "\n";
+ }
+
+ $href = $script . '?cmd=backup&page=' . $r_page . '&age=';
+ $_anchor_from = $_anchor_to = '';
foreach ($backups as $age=>$data) {
- $date = format_date($data['time'],TRUE);
- $href = "$script?cmd=backup&page=$r_page&age=$age";
+ if (! PLUGIN_BACKUP_DISABLE_BACKUP_RENDERING) {
+ $_anchor_from = '<a href="' . $href . $age . '">';
+ $_anchor_to = '</a>';
+ }
+ $date = format_date($data['time'], TRUE);
$retval[1] .= <<<EOD
- <li><a href="$href">$age $date</a>
- [ <a href="$href&action=diff">$_msg_diff</a>
- | <a href="$href&action=nowdiff">$_msg_nowdiff</a>
- | <a href="$href&action=source">$_msg_source</a>
+ <li>$_anchor_from$age $date$_anchor_to
+ [ <a href="$href$age&action=diff">$_msg_diff</a>
+ | <a href="$href$age&action=nowdiff">$_msg_nowdiff</a>
+ | <a href="$href$age&action=source">$_msg_source</a>
]
</li>
EOD;
}
- return join('',$retval);
+
+ return join('', $retval);
}
-// Á´¥Ú¡¼¥¸¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×°ìÍ÷¤ò¼èÆÀ
-function get_backup_list_all($withfilename = FALSE)
+// 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 (count($pages) == 0)
+ if (empty($pages)) {
return '';
-
- return page_list($pages,'backup',$withfilename);
+ } else {
+ return page_list($pages, 'backup', $withfilename);
+ }
}
?>