Просмотр файла admin/design/import.php

Размер файла: 2.26Kb
  1. <?php
  2. include '../../engine/includes/start.php';
  3. if (!$creator)
  4. Core::stop();
  5.  
  6. $set['title'] = 'Импорт дизайна';
  7. include incDir.'head.php';
  8.  
  9. empty($_POST['url']) && !empty($_GET['url']) ? $_POST['url'] = $_GET['url'] : null;
  10.  
  11. if (!empty($_POST['url']))
  12. {
  13. if ($_POST['url'] == 'http://')
  14. {
  15. $error = 'Не введен адрес';
  16. }
  17. else
  18. {
  19. $headers = @get_headers($_POST['url'], 1);
  20.  
  21. if (!$headers)
  22. $error = 'Не удалось получить заголовки по указанному адресу';
  23. elseif (empty($_GET['url']) && !empty($headers['Content-Length']) && $headers['Content-Length'] >= 2097152)
  24. $error = 'Размер архива превышает 2 мб, <a href="?url='.htmlspecialchars($_POST['url']).'">продолжить?</a>';
  25.  
  26. elseif ($headers['Content-Type'] != 'application/zip')
  27. $error = 'Только zip архивы';
  28.  
  29. else
  30. {
  31. $design = pathinfo($_POST['url'], PATHINFO_FILENAME);
  32.  
  33. if (is_dir(H . 'style/themes/' . $design))
  34. $error = 'Такая тема уже установлена';
  35. else
  36. {
  37. file_put_contents(tmpDir . $design, file_get_contents($_POST['url']));
  38. Core::get('zip');
  39. $zip = new Pclzip(tmpDir . $design);
  40. $contents = $zip->listContent();
  41. if ($contents == 0)
  42. $error = 'Архив поврежден или пуст';
  43. elseif (!array_key_exists('theme.ini', $contents))
  44. $error = 'theme.ini не найден';
  45.  
  46. if (!isset($error))
  47. {
  48. $dir_install = H . 'style/themes/'.$design;
  49. if (is_dir($dir_install) || mkdir($dir_install))
  50. $zip->extract(PCLZIP_OPT_SUBSTITUE_FILE, $dir_install);
  51. unlink(tmpDir . $design);
  52. Core::msg_show('Тема установлена', 'menu_razd');
  53. }
  54. unset($zip, $config, $headers);
  55. }
  56. }
  57. }
  58. if (isset($error))
  59. Core::msg_show($error);
  60. }
  61.  
  62. ?>
  63. <form method = "post">
  64. Путь к zip архиву:<br />
  65. <input type="text" name="url" value="http://"/><br />
  66. <input value = "Импорт" type="submit" />
  67. </form>
  68. <a href='/admin/?act=design'><div class="link">Дизайн</div></a>
  69. <a href='/admin/'><div class="link">Админка</div></a>
  70. <?php
  71. include incDir.'foot.php';