+++ /dev/null
-<?php\r
-\r
-/***************************************************************************\r
- * xs_import.php\r
- * -------------\r
- * copyright : (C) 2003 - 2005 CyberAlien\r
- * support : http://www.phpbbstyles.com\r
- *\r
- * version : 2.3.1\r
- *\r
- * file revision : 72\r
- * project revision : 78\r
- * last modified : 05 Dec 2005 13:54:54\r
- *\r
- ***************************************************************************/\r
-\r
-/***************************************************************************\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- *\r
- ***************************************************************************/\r
-\r
-define('IN_PHPBB', 1);\r
-$phpbb_root_path = "./../";\r
-$no_page_header = true;\r
-require($phpbb_root_path . 'extension.inc');\r
-require('./pagestart.' . $phpEx);\r
-\r
-// check if mod is installed\r
-if(empty($template->xs_version) || $template->xs_version !== 8)\r
-{\r
- message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php');\r
-}\r
-\r
-define('IN_XS', true);\r
-include_once('xs_include.' . $phpEx);\r
-\r
-$template->assign_block_vars('nav_left',array('ITEM' => '» <a href="' . append_sid('xs_import.'.$phpEx) . '">' . $lang['xs_import_styles'] . '</a>'));\r
-\r
-$lang['xs_import_back'] = str_replace('{URL}', append_sid('xs_import.'.$phpEx), $lang['xs_import_back']);\r
-\r
-$return_url = isset($HTTP_POST_VARS['return']) ? stripslashes($HTTP_POST_VARS['return']) : (isset($HTTP_GET_VARS['return']) ? stripslashes($HTTP_GET_VARS['return']) : '');\r
-$return = $return_url ? '&return=' . urlencode($return_url) : '';\r
-if($return)\r
-{\r
- $lang['xs_import_back'] = str_replace('{URL}', $return_url, $lang['xs_import_back_download']);\r
- $HTTP_POST_VARS['return'] = $HTTP_GET_VARS['return'] = addslashes($return_url);\r
-}\r
-\r
-//\r
-// Check required functions\r
-//\r
-if(!@function_exists('gzcompress'))\r
-{\r
- xs_error($lang['xs_import_nogzip']);\r
-}\r
-\r
-$tpl_filename = $template->make_filename('_xs_test.tpl');\r
-$cache_filename = $template->make_filename_cache($tpl_filename);\r
-$str = '';\r
-if(!xs_check_cache($cache_filename))\r
-{\r
- xs_error(str_replace(array('{URL1}', '{URL2}'), array(append_sid('xs_chmod.'.$phpEx), append_sid('xs_import.'.$phpEx)), $lang['xs_import_nowrite_cache']));\r
-}\r
-\r
-//\r
-// include all functions\r
-//\r
-include_once('xs_include_import.'.$phpEx);\r
-\r
-// remove timeout\r
-@set_time_limit(XS_MAX_TIMEOUT);\r
-\r
-//\r
-// check if need to download style\r
-//\r
-if(!empty($HTTP_GET_VARS['get_remote']))\r
-{\r
- $HTTP_POST_VARS['action'] = 'web';\r
- $HTTP_POST_VARS['source'] = $HTTP_GET_VARS['get_remote'];\r
-}\r
-\r
-//\r
-// delete style\r
-//\r
-if(isset($HTTP_GET_VARS['del']) && !defined('DEMO_MODE'))\r
-{\r
- $str = xs_tpl_name($HTTP_GET_VARS['del']);\r
- @unlink(XS_TEMP_DIR.$str);\r
-}\r
-\r
-//\r
-// import style\r
-//\r
-if(isset($HTTP_GET_VARS['import']) || isset($HTTP_POST_VARS['import']))\r
-{\r
- $list_only = isset($HTTP_GET_VARS['list']) ? true : false;\r
- $get_file = isset($HTTP_GET_VARS['get_file']) ? stripslashes($HTTP_GET_VARS['get_file']) : '';\r
- $filename = isset($HTTP_POST_VARS['import']) ? $HTTP_POST_VARS['import'] : $HTTP_GET_VARS['import'];\r
- $filename = xs_tpl_name($filename);\r
- $write_local = false;\r
- if(!$list_only)\r
- {\r
- if(defined('DEMO_MODE'))\r
- {\r
- xs_error($lang['xs_permission_denied'] . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- $params = array('import' => $filename);\r
- $total = intval($HTTP_POST_VARS['total']);\r
- $params['total'] = $total;\r
- $params['import_default'] = isset($HTTP_POST_VARS['import_default']) && strlen($HTTP_POST_VARS['import_default']) ? intval($HTTP_POST_VARS['import_default']) : -1;\r
- for($i=0; $i<$total; $i++)\r
- {\r
- $install = empty($HTTP_POST_VARS['import_install_'.$i]) ? 0 : 1;\r
- $default = $install ? ($params['import_default'] == $i ? 1 : 0) : 0;\r
- $params['import_install_'.$i] = $install;\r
- }\r
- if($return_url)\r
- {\r
- $params['return'] = $return_url;\r
- }\r
- if(!get_ftp_config(append_sid('xs_import.'.$phpEx), $params, true))\r
- {\r
- xs_exit();\r
- }\r
- xs_ftp_connect(append_sid('xs_import.'.$phpEx), $params, true);\r
- if($ftp === XS_FTP_LOCAL)\r
- {\r
- $write_local = true;\r
- $write_local_dir = '../templates/';\r
- }\r
- }\r
- include('xs_include_import2.' . $phpEx); \r
-}\r
-\r
-//\r
-// Download from web\r
-//\r
-if(isset($HTTP_GET_VARS['get_web']))\r
-{\r
- $HTTP_POST_VARS['action'] = 'web';\r
- $HTTP_POST_VARS['source'] = $HTTP_GET_VARS['get_web'];\r
-}\r
-if(isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'web' && !defined('DEMO_MODE'))\r
-{\r
- $src = stripslashes($HTTP_POST_VARS['source']);\r
- $dst = generate_style_name('web');\r
- $str = @implode('', @file($src));\r
- if(empty($str))\r
- {\r
- xs_error(str_replace('{URL}', $src, $lang['xs_import_nodownload']) . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- $header = xs_get_style_header('', substr($str, 0, 10240));\r
- if($header === false)\r
- {\r
- xs_error($lang['xs_style_header_error_reason'] . $xs_header_error . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- if($header['filesize'] != strlen($str))\r
- {\r
- xs_error($lang['xs_style_header_error_incomplete2'] . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- $f = @fopen(XS_TEMP_DIR . $dst, 'wb');\r
- if(!$f)\r
- {\r
- xs_error(str_replace('{FILE}', $dst, $lang['xs_error_cannot_create_tmp']) . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- fwrite($f, $str);\r
- fclose($f);\r
- xs_message($lang['Information'], str_replace('{URL}', append_sid('xs_import.'.$phpEx.'?importstyle=' . urlencode($dst) . $return), $lang['xs_import_uploaded2']) . '<br /><br />' . $lang['xs_import_back']);\r
-}\r
-\r
-//\r
-// Copy from file\r
-//\r
-if(isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'copy' && !defined('DEMO_MODE'))\r
-{\r
- $src = stripslashes($HTTP_POST_VARS['source']);\r
- $dst = generate_style_name('copy');\r
- $str = @implode('', @file($src));\r
- if(empty($str))\r
- {\r
- xs_error(str_replace('{URL}', $src, $lang['xs_import_nodownload2']) . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- if(substr($str, 0, strlen(STYLE_HEADER_START)) !== STYLE_HEADER_START)\r
- {\r
- xs_error($lang['xs_style_header_error_invalid2'] . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- $header = xs_get_style_header('', substr($str, 0, 10240));\r
- if($header === false)\r
- {\r
- xs_error($lang['xs_style_header_error_reason'] . $xs_header_error . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- if($header['filesize'] != strlen($str))\r
- {\r
- xs_error($lang['xs_style_header_error_incomplete2'] . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- $f = @fopen(XS_TEMP_DIR . $dst, 'wb');\r
- if(!$f)\r
- {\r
- xs_error(str_replace('{FILE}', $dst, $lang['xs_error_cannot_create_tmp']) . $lang['xs_import_back']);\r
- }\r
- fwrite($f, $str);\r
- fclose($f);\r
- xs_message($lang['Information'], str_replace('{URL}', append_sid('xs_import.'.$phpEx.'?importstyle=' . urlencode($dst)), $lang['xs_import_uploaded3']) . '<br /><br />' . $lang['xs_import_back']);\r
-}\r
-\r
-\r
-//\r
-// Upload\r
-//\r
-if(isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'upload' && !defined('DEMO_MODE'))\r
-{\r
- if(empty($HTTP_POST_FILES['source']['tmp_name']) || !@file_exists($HTTP_POST_FILES['source']['tmp_name']))\r
- {\r
- xs_error($lang['xs_import_nodownload3'] . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- $src = $HTTP_POST_FILES['source']['tmp_name'];\r
- $dst = generate_style_name('upload');\r
- $str = @implode('', @file($src));\r
- if(empty($str))\r
- {\r
- xs_error(str_replace('{URL}', $src, $lang['xs_import_nodownload2']) . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- if(substr($str, 0, strlen(STYLE_HEADER_START)) !== STYLE_HEADER_START)\r
- {\r
- xs_error($lang['xs_style_header_error_invalid2'] . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- $header = xs_get_style_header('', substr($str, 0, 10240));\r
- if($header === false)\r
- {\r
- xs_error($lang['xs_style_header_error_reason'] . $xs_header_error . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- if($header['filesize'] != strlen($str))\r
- {\r
- xs_error($lang['xs_style_header_error_incomplete2'] . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- $f = @fopen(XS_TEMP_DIR . $dst, 'wb');\r
- if(!$f)\r
- {\r
- xs_error(str_replace('{FILE}', $dst, $lang['xs_error_cannot_create_tmp']) . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- fwrite($f, $str);\r
- fclose($f);\r
- xs_error(str_replace('{URL}', append_sid('xs_import.'.$phpEx.'?importstyle=' . urlencode($dst)), $lang['xs_import_uploaded4']) . '<br /><br />' . $lang['xs_import_back']);\r
-}\r
-\r
-\r
-//\r
-// Show import page\r
-//\r
-if(!empty($HTTP_GET_VARS['importstyle']))\r
-{\r
- $file = xs_tpl_name($HTTP_GET_VARS['importstyle']);\r
- $header = xs_get_style_header(XS_TEMP_DIR.$file);\r
- if($header === false)\r
- {\r
- xs_error($lang['xs_style_header_error_reason'] . $xs_header_error . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- if(@filesize(XS_TEMP_DIR.$file) != $header['filesize'])\r
- {\r
- xs_error($lang['xs_style_header_error_incomplete2'] . '<br /><br />' . $lang['xs_import_back']);\r
- }\r
- $template->set_filenames(array('import' => XS_TPL_PATH . 'import2.tpl'));\r
- $template->assign_vars(array(\r
- 'FORM_ACTION' => append_sid('xs_import.'.$phpEx),\r
- 'S_RETURN' => $return_url ? '<input type="hidden" name="return" value="' . htmlspecialchars($return_url) . '" />' : '',\r
- 'IMPORT_FILENAME' => htmlspecialchars($file),\r
- 'STYLE_TEMPLATE' => htmlspecialchars($header['template']),\r
- 'STYLE_FILENAME' => htmlspecialchars($file),\r
- 'STYLE_COMMENT' => htmlspecialchars($header['comment']),\r
- 'DATE' => create_date($board_config['default_dateformat'], $header['date'], $board_config['board_timezone']),\r
- 'STYLE_SIZE' => $header['filesize'],\r
- 'STYLE_NAME' => htmlspecialchars($header['styles'][0]),\r
- 'TOTAL' => count($header['styles']),\r
- 'L_XS_IMPORT_TPL' => str_replace('{TPL}', htmlspecialchars($header['template']), $lang['xs_import_tpl'])\r
- ));\r
- if(count($header['styles']) > 1)\r
- {\r
- $template->assign_block_vars('switch_select_style', array());\r
- for($i=0; $i<count($header['styles']); $i++)\r
- {\r
- $template->assign_block_vars('switch_select_style.style', array(\r
- 'NUM' => $i,\r
- 'NAME' => htmlspecialchars($header['styles'][$i]),\r
- ));\r
- }\r
- }\r
- else\r
- {\r
- $template->assign_block_vars('switch_select_nostyle', array());\r
- }\r
- $template->pparse('import');\r
- xs_exit();\r
-}\r
-\r
-\r
-$template->set_filenames(array('body' => XS_TPL_PATH . 'import.tpl'));\r
-//\r
-// Get list of available styles\r
-//\r
-$dir = @opendir(XS_TEMP_DIR);\r
-$files = array();\r
-if($dir)\r
-{\r
- while(($file = readdir($dir)) !== false)\r
- {\r
- if(substr($file, strlen($file) - strlen(STYLE_EXTENSION)) === STYLE_EXTENSION)\r
- {\r
- $items = xs_get_style_header(XS_TEMP_DIR.$file);\r
- if(is_array($items))\r
- {\r
- $items['file'] = $file;\r
- $items['file2'] = substr($file, 0, strlen($file) - strlen(STYLE_EXTENSION));\r
- if(@filesize(XS_TEMP_DIR.$file) != $items['filesize'])\r
- {\r
- $items['error'] = $lang['xs_import_incomplete_file'];\r
- }\r
- $files[] = $items;\r
- }\r
- else\r
- {\r
- $items = array(\r
- 'filename' => XS_TEMP_DIR.$file,\r
- 'filesize' => @filesize(XS_TEMP_DIR.$file),\r
- 'date' => filemtime(XS_TEMP_DIR.$file),\r
- 'file' => $file,\r
- 'file2' => substr($file, 0, strlen($file) - strlen(STYLE_EXTENSION)),\r
- 'error' => $lang['xs_import_invalid_file'],\r
- 'template' => '-',\r
- 'styles' => array('-'),\r
- 'comment' => '',\r
- 'offset' => 0\r
- );\r
- $files[] = $items;\r
- }\r
- }\r
- }\r
- closedir($dir);\r
-}\r
-\r
-if(count($files))\r
-{\r
-\r
- for($i=0; $i<count($files); $i++)\r
- {\r
- $item = $files[$i];\r
- $row_class = $xs_row_class[$i % 2];\r
- $template->assign_block_vars('styles', array(\r
- 'ROW_CLASS' => $row_class,\r
- 'FILE' => htmlspecialchars($item['file']),\r
- 'FILE2' => htmlspecialchars($item['file2']),\r
- 'FILENAME' => htmlspecialchars($item['filename']),\r
- 'TEMPLATE' => htmlspecialchars($item['template']),\r
- 'DATE' => create_date($board_config['default_dateformat'], $item['date'], $board_config['board_timezone']),\r
- 'COMMENT' => htmlspecialchars($item['comment']),\r
- 'U_DELETE' => append_sid('xs_import.' . $phpEx . '?del=' . urlencode($item['file'])),\r
- 'U_IMPORT' => append_sid('xs_import.' . $phpEx . '?importstyle=' . urlencode($item['file'])),\r
- 'U_DOWNLOAD' => append_sid('xs_download.' . $phpEx),\r
- 'U_LIST' => append_sid('xs_import.' . $phpEx . '?list=1&import=' . urlencode($item['file'])),\r
- ));\r
- if(empty($item['error']))\r
- {\r
- for($j=0; $j<count($item['styles']); $j++)\r
- {\r
- $template->assign_block_vars('styles.list', array(\r
- 'STYLE' => $item['styles'][$j]\r
- ));\r
- }\r
- $template->assign_block_vars('styles.valid', array());\r
- }\r
- else\r
- {\r
- $template->assign_block_vars('styles.error', array('ERROR' => htmlspecialchars($item['error'])));\r
- }\r
- }\r
-}\r
-else\r
-{\r
- $template->assign_block_vars('nostyles', array());\r
-}\r
-$template->assign_vars(array(\r
- 'U_SCRIPT' => append_sid('xs_import.'.$phpEx),\r
- ));\r
-\r
-$template->pparse('body');\r
-xs_exit();\r
-\r
-?>
\ No newline at end of file