- <?php
-
-
- $theme = urldecode(htmlspecialchars($_GET['file']));
- $format = explode('.', $theme);
- $type = '.' . strtolower($format[count($format) - 1]);
- $name = 'screen/' . time() . '.gif';
- $location = 'http://' . str_replace(array('\\', '//'), array('/', '/'), $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/' . $name);
-
-
- if (file_exists($name)) {
- header('Location: ' . $location, true, 301);
- exit;
- }
-
-
- $size = explode('*', $setup['prev_size']);
- $g_preview_image_w = 100; // ширина картинки
- $g_preview_image_h = 100; // высота картинки
-
-
- if ($type == '.nth') {
- include '../incfiles/pclzip.php';
-
- $nth = &new PclZip($theme);
-
- $content = $nth->extract(PCLZIP_OPT_BY_NAME, 'theme_descriptor.xml', PCLZIP_OPT_EXTRACT_AS_STRING);
- if (!$content) {
- $content = $nth->extract(PCLZIP_OPT_BY_PREG, '\.xml$', PCLZIP_OPT_EXTRACT_AS_STRING);
- }
-
-
- $teg = simplexml_load_string($content[0]['content'])->wallpaper['src'] or $teg = simplexml_load_string($content[0]['content'])->wallpaper['main_display_graphics'];
- $image = $nth->extract(PCLZIP_OPT_BY_NAME, trim($teg), PCLZIP_OPT_EXTRACT_AS_STRING);
-
-
- $im = array_reverse(explode('.', $teg));
- $im = 'imageCreateFrom' . str_ireplace('jpg', 'jpeg', trim($im[0]));
-
- file_put_contents($name, $image[0]['content']);
- $f = $im($name);
-
- $h = imagesy($f);
- $w = imagesx($f);
-
- $ratio = $w / $h;
- if ($g_preview_image_w / $g_preview_image_h > $ratio) {
- $g_preview_image_w = $g_preview_image_h * $ratio;
- }
- else {
- $g_preview_image_h = $g_preview_image_w / $ratio;
- }
-
-
- $new = imagecreatetruecolor($g_preview_image_w, $g_preview_image_h);
- imagecopyresampled($new, $f, 0, 0, 0, 0, $g_preview_image_w, $g_preview_image_h, $w, $h);
-
- imageGif($new, $name);
- } elseif ($type == '.thm') {
- include 'include/class_tar.php';
-
- $thm = &new Archive_Tar($theme);
- if (!$file = $thm->extractInString('Theme.xml') or !$file = $thm->extractInString(pathinfo($theme, PATHINFO_FILENAME) . '.xml')) {
-
- $list = $thm->listContent();
-
- $all = sizeof($list);
- for ($i = 0; $i < $all; ++$i) {
- if (pathinfo($list[$i]['filename'], PATHINFO_EXTENSION) == 'xml') {
- $file = $thm->extractInString($list[$i]['filename']);
- break;
- }
- }
-
- }
-
- // fix bug in tar.php
- if (!$file) {
- preg_match('/<\?\s*xml\s*version\s*=\s*"1\.0"\s*\?>(.*)<\/.+>/isU', file_get_contents($theme), $arr);
- $file = trim($arr[0]);
- }
-
-
- $load = trim((string )simplexml_load_string($file)->Standby_image['Source']);
-
- if (strtolower(strrchr($load, '.')) == '.swf') {
- $load = '';
- }
-
- if (!$load) {
- $load = trim((string )simplexml_load_string($file)->Desktop_image['Source']);
- }
-
- if (strtolower(strrchr($load, '.')) == '.swf') {
- $load = '';
- }
-
-
- if (!$load) {
- $load = trim((string )simplexml_load_string($file)->Desktop_image['Source']);
- }
-
- if (strtolower(strrchr($load, '.')) == '.swf') {
- $load = '';
- }
-
- if (!$load) {
- exit;
- }
-
-
- $image = $thm->extractInString($load);
-
-
- $im = array_reverse(explode('.', $load));
- $im = 'imageCreateFrom' . str_ireplace('jpg', 'jpeg', trim($im[0]));
-
- file_put_contents($name, $image);
- $f = $im($name);
-
- $h = imagesy($f);
- $w = imagesx($f);
-
- $ratio = $w / $h;
- if ($g_preview_image_w / $g_preview_image_h > $ratio) {
- $g_preview_image_w = $g_preview_image_h * $ratio;
- }
- else {
- $g_preview_image_h = $g_preview_image_w / $ratio;
- }
-
-
- $new = imagecreatetruecolor($g_preview_image_w, $g_preview_image_h);
- imagecopyresampled($new, $f, 0, 0, 0, 0, $g_preview_image_w, $g_preview_image_h, $w, $h);
-
- imageGif($new, $name);
- }
-
- ?>