* Add feed widget * add feed render * Add CommentPage widget * New theme (#1390) * 调整忽略目录 * add theme * fix theme scss build Co-authored-by: fen <f3nb0x@gmail.com> * s/is_writeable/is_writable/g * New upgrade method * merge new fixes from master * add pgsql ssl mode support (ref #1600) (#1623) * Feat/code refactor (#1626) * remove all magic methods, add type for class properties * refactor codes * fix all * refactor code * fix type * fix all * fix request is method * fix all * fix router * fix get page * fix 1.3.0 upgrade * [feat] support high resolution avatar * fix types in i18n component * Implement Ctrl+S or Command+S for save draft (#1628) * Implement Ctrl+S or Command+S for save draft * rename * add Typecho.savePost * fix upload file size * add new uploader * replace new uploader * fix textarea change * fix preview * refactor post edit * fix issue * fix page edit --------- Co-authored-by: joyqi <joyqi@segmentfault.com> Co-authored-by: joyqi <magike.net@gmail.com> * fix #1632 * Add svg to image types * Feat/tree pages (#1646) * add tree trait * finish category tree trait * support select fields * fix select fields * refactor admin trait * fix draft status * Add new contents type "revision" * minor refactor * add more tree view abstracts * add tree trait to pages * get ready for tree view pages * improve page edit * fix revision * fix slug * add router params delegate * fix params delegate * fix * fix * fix all * fix all * fix tree * fix page link * fix feed * fix page * fix permalink * fix permalink input * fix offset query * Support IDN (#1629) * Support IDN * use js * Optimize code * Optimize code * fix URL script * remove unnecessary use --------- Co-authored-by: joyqi <joyqi@segmentfault.com> * fix input element * fix #1651, close #1653 * Use json instead of serialize (#1624) * Use json instead of serialize * Fix Upgrade code * add tree trait * finish category tree trait * support select fields * fix select fields * refactor admin trait * fix draft status * Add new contents type "revision" * minor refactor * add more tree view abstracts * add tree trait to pages * get ready for tree view pages * improve page edit * fix revision * fix slug * add router params delegate * fix params delegate * fix * fix * fix all * fix all * fix tree * fix page link * fix feed * fix page * fix permalink * fix permalink input * fix offset query * Fix typo * remove proxy methods * remove unnecessary useage --------- Co-authored-by: joyqi <joyqi@segmentfault.com> Co-authored-by: joyqi <magike.net@gmail.com> * Fix Prevent XSS vulnerability in default theme (#1654) * Fix Prevent XSS vulnerability in default theme * Update var/Typecho/Db/Adapter/Pdo.php * fix the getter --------- Co-authored-by: joyqi <joyqi@segmentfault.com> * add throwCallback to widget response * fix: cut down fields when selecting recent posts * fix typo errors * fix typo errors * fix http client cookie * add throw finish * fix theme lang * fix default theme * fix query * add open graph and twitter card support add canonical link * fix canonical link meta * fix theme classic-22 * remove unnecessary scss file when packaging * init plugin signal * improve: remove feather-icon js file * fix: typo * improve: post detail layout * fix tags saving * improve: nav search * fix: theme screenshot * fix: theme page layout * remove php 7.2/7.3 env --------- Co-authored-by: fen <f3nb0x@gmail.com> Co-authored-by: Lu Fei <52o@qq52o.cn>
108 lines
4.9 KiB
PHP
108 lines
4.9 KiB
PHP
<?php
|
|
include 'common.php';
|
|
include 'header.php';
|
|
include 'menu.php';
|
|
|
|
$actionUrl = $security->getTokenUrl(
|
|
\Typecho\Router::url('do', array('action' => 'backup', 'widget' => 'Backup'),
|
|
\Typecho\Common::url('index.php', $options->rootUrl)));
|
|
|
|
$backupFiles = \Widget\Backup::alloc()->listFiles();
|
|
?>
|
|
|
|
<div class="main">
|
|
<div class="body container">
|
|
<?php include 'page-title.php'; ?>
|
|
<div class="row typecho-page-main" role="main">
|
|
<div class="col-mb-12 col-tb-8">
|
|
<div id="typecho-welcome">
|
|
<form action="<?php echo $actionUrl; ?>" method="post">
|
|
<h3><?php _e('备份您的数据'); ?></h3>
|
|
<ul>
|
|
<li><?php _e('此备份操作仅包含<strong>内容数据</strong>, 并不会涉及任何<strong>设置信息</strong>'); ?></li>
|
|
<li><?php _e('如果您的数据量过大, 为了避免操作超时, 建议您直接使用数据库提供的备份工具备份数据'); ?></li>
|
|
<li><strong class="warning"><?php _e('为了缩小备份文件体积, 建议您在备份前删除不必要的数据'); ?></strong></li>
|
|
</ul>
|
|
<p><button class="btn primary" type="submit"><?php _e('开始备份 »'); ?></button></p>
|
|
<input tabindex="1" type="hidden" name="do" value="export">
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="backup-secondary" class="col-mb-12 col-tb-4" role="form">
|
|
<h3><?php _e('恢复数据'); ?></h3>
|
|
<ul class="typecho-option-tabs clearfix">
|
|
<li class="active w-50"><a href="#from-upload"><?php _e('上传'); ?></a></li>
|
|
<li class="w-50"><a href="#from-server"><?php _e('从服务器'); ?></a></li>
|
|
</ul>
|
|
|
|
<form action="<?php echo $actionUrl; ?>" id="from-upload" class="tab-content" method="post" enctype="multipart/form-data">
|
|
<ul class="typecho-option">
|
|
<li>
|
|
<input tabindex="2" id="backup-upload-file" name="file" type="file" class="file">
|
|
</li>
|
|
</ul>
|
|
<ul class="typecho-option typecho-option-submit">
|
|
<li>
|
|
<button tabindex="4" type="submit" class="btn primary"><?php _e('上传并恢复 »'); ?></button>
|
|
<input type="hidden" name="do" value="import">
|
|
</li>
|
|
</ul>
|
|
</form>
|
|
|
|
<form action="<?php echo $actionUrl; ?>" id="from-server" class="tab-content hidden" method="post">
|
|
<?php if (empty($backupFiles)): ?>
|
|
<ul class="typecho-option">
|
|
<li>
|
|
<p class="description"><?php _e('将备份文件手动上传至服务器的 %s 目录下后, 这里会出现文件选项', __TYPECHO_BACKUP_DIR__); ?></p>
|
|
</li>
|
|
</ul>
|
|
<?php else: ?>
|
|
<ul class="typecho-option">
|
|
<li>
|
|
<label class="typecho-label" for="backup-select-file"><?php _e('选择一个备份文件恢复数据'); ?></label>
|
|
<select tabindex="5" name="file" id="backup-select-file">
|
|
<?php foreach ($backupFiles as $file): ?>
|
|
<option value="<?php echo $file; ?>"><?php echo $file; ?></option>
|
|
<?php endforeach; ?>
|
|
</select>
|
|
</li>
|
|
</ul>
|
|
<?php endif; ?>
|
|
<ul class="typecho-option typecho-option-submit">
|
|
<li>
|
|
<button tabindex="7" type="submit" class="btn primary"><?php _e('选择并恢复 »'); ?></button>
|
|
<input type="hidden" name="do" value="import">
|
|
</li>
|
|
</ul>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<?php
|
|
include 'copyright.php';
|
|
include 'common-js.php';
|
|
include 'form-js.php';
|
|
?>
|
|
<script>
|
|
$('#backup-secondary .typecho-option-tabs li').click(function() {
|
|
$('#backup-secondary .typecho-option-tabs li').removeClass('active');
|
|
$(this).addClass('active');
|
|
$(this).parents('#backup-secondary').find('.tab-content').addClass('hidden');
|
|
|
|
var selected_tab = $(this).find('a').attr('href');
|
|
$(selected_tab).removeClass('hidden');
|
|
|
|
return false;
|
|
});
|
|
|
|
$('#backup-secondary form').submit(function (e) {
|
|
if (!confirm('<?php _e('恢复操作将清除所有现有数据, 是否继续?'); ?>')) {
|
|
return false;
|
|
}
|
|
});
|
|
</script>
|
|
<?php include 'footer.php'; ?>
|