backup.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. <?php
  2. include 'common.php';
  3. include 'header.php';
  4. include 'menu.php';
  5. $actionUrl = $security->getTokenUrl(
  6. \Typecho\Router::url('do', array('action' => 'backup', 'widget' => 'Backup'),
  7. \Typecho\Common::url('index.php', $options->rootUrl)));
  8. $backupFiles = \Widget\Backup::alloc()->listFiles();
  9. ?>
  10. <div class="main">
  11. <div class="body container">
  12. <?php include 'page-title.php'; ?>
  13. <div class="row typecho-page-main" role="main">
  14. <div class="col-mb-12 col-tb-8">
  15. <div id="typecho-welcome">
  16. <form action="<?php echo $actionUrl; ?>" method="post">
  17. <h3><?php _e('备份您的数据'); ?></h3>
  18. <ul>
  19. <li><?php _e('此备份操作仅包含<strong>内容数据</strong>, 并不会涉及任何<strong>设置信息</strong>'); ?></li>
  20. <li><?php _e('如果您的数据量过大, 为了避免操作超时, 建议您直接使用数据库提供的备份工具备份数据'); ?></li>
  21. <li><strong class="warning"><?php _e('为了缩小备份文件体积, 建议您在备份前删除不必要的数据'); ?></strong></li>
  22. </ul>
  23. <p><button class="btn primary" type="submit"><?php _e('开始备份 &raquo;'); ?></button></p>
  24. <input tabindex="1" type="hidden" name="do" value="export">
  25. </form>
  26. </div>
  27. </div>
  28. <div id="backup-secondary" class="col-mb-12 col-tb-4" role="form">
  29. <h3><?php _e('恢复数据'); ?></h3>
  30. <ul class="typecho-option-tabs clearfix">
  31. <li class="active w-50"><a href="#from-upload"><?php _e('上传'); ?></a></li>
  32. <li class="w-50"><a href="#from-server"><?php _e('从服务器'); ?></a></li>
  33. </ul>
  34. <form action="<?php echo $actionUrl; ?>" id="from-upload" class="tab-content" method="post" enctype="multipart/form-data">
  35. <ul class="typecho-option">
  36. <li>
  37. <input tabindex="2" id="backup-upload-file" name="file" type="file" class="file">
  38. </li>
  39. </ul>
  40. <ul class="typecho-option typecho-option-submit">
  41. <li>
  42. <button tabindex="4" type="submit" class="btn primary"><?php _e('上传并恢复 &raquo;'); ?></button>
  43. <input type="hidden" name="do" value="import">
  44. </li>
  45. </ul>
  46. </form>
  47. <form action="<?php echo $actionUrl; ?>" id="from-server" class="tab-content hidden" method="post">
  48. <?php if (empty($backupFiles)): ?>
  49. <ul class="typecho-option">
  50. <li>
  51. <p class="description"><?php _e('将备份文件手动上传至服务器的 %s 目录下后, 这里会出现文件选项', __TYPECHO_BACKUP_DIR__); ?></p>
  52. </li>
  53. </ul>
  54. <?php else: ?>
  55. <ul class="typecho-option">
  56. <li>
  57. <label class="typecho-label" for="backup-select-file"><?php _e('选择一个备份文件恢复数据'); ?></label>
  58. <select tabindex="5" name="file" id="backup-select-file">
  59. <?php foreach ($backupFiles as $file): ?>
  60. <option value="<?php echo $file; ?>"><?php echo $file; ?></option>
  61. <?php endforeach; ?>
  62. </select>
  63. </li>
  64. </ul>
  65. <?php endif; ?>
  66. <ul class="typecho-option typecho-option-submit">
  67. <li>
  68. <button tabindex="7" type="submit" class="btn primary"><?php _e('选择并恢复 &raquo;'); ?></button>
  69. <input type="hidden" name="do" value="import">
  70. </li>
  71. </ul>
  72. </form>
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. <?php
  78. include 'copyright.php';
  79. include 'common-js.php';
  80. ?>
  81. <script>
  82. $('#backup-secondary .typecho-option-tabs li').click(function() {
  83. $('#backup-secondary .typecho-option-tabs li').removeClass('active');
  84. $(this).addClass('active');
  85. $(this).parents('#backup-secondary').find('.tab-content').addClass('hidden');
  86. var selected_tab = $(this).find('a').attr('href');
  87. $(selected_tab).removeClass('hidden');
  88. return false;
  89. });
  90. $('#backup-secondary form').submit(function (e) {
  91. if (!confirm('<?php _e('恢复操作将清除所有现有数据, 是否继续?'); ?>')) {
  92. return false;
  93. }
  94. });
  95. </script>
  96. <?php include 'footer.php'; ?>