+++ /dev/null
-<?php\r
-\r
-/***************************************************************************\r
- * xs_cache.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_cache.'.$phpEx) . '">' . $lang['xs_manage_cache'] . '</a>'));\r
-\r
-$data = '';\r
-\r
-$skip_files = array(\r
- '.',\r
- '..',\r
- '.htaccess',\r
- 'index.htm',\r
- 'index.html',\r
- 'index.php',\r
- 'attach_config.php',\r
- );\r
-\r
-//\r
-// clear cache\r
-//\r
-if(isset($HTTP_GET_VARS['clear']) && !defined('DEMO_MODE'))\r
-{\r
- @set_time_limit(XS_MAX_TIMEOUT);\r
- $clear = $HTTP_GET_VARS['clear'];\r
- if(!$clear)\r
- {\r
- // clear all cache\r
- $match = '';\r
- }\r
- else\r
- {\r
- $match = XS_TPL_PREFIX . $clear . XS_SEPARATOR;\r
- }\r
- $match_len = strlen($match);\r
- $style_len = strlen(STYLE_EXTENSION);\r
- $backup_len = strlen(XS_BACKUP_EXT);\r
- $dir = $template->cachedir;\r
- $res = @opendir($dir);\r
- if(!$res)\r
- {\r
- $data = $lang['xs_cache_nowrite'];\r
- }\r
- else\r
- {\r
- $num = 0;\r
- $num_error = 0;\r
- while(($file = readdir($res)) !== false)\r
- {\r
- $len = strlen($file);\r
- // delete only files that match pattern, that aren't in exclusion list and that aren't downloaded styles.\r
- if(substr($file, 0, $match_len) === $match && !xs_in_array($file, $skip_files))\r
- if(substr($file, $len - $style_len) !== STYLE_EXTENSION && substr($file, $len - $backup_len) !== XS_BACKUP_EXT)\r
- {\r
- $res2 = @unlink($dir . $file);\r
- if($res2)\r
- {\r
- $data .= str_replace('{FILE}', $file, $lang['xs_cache_log_deleted']) . "<br />\n";\r
- $num ++;\r
- }\r
- elseif(@is_file($dir . $file))\r
- {\r
- $data .= str_replace('{FILE}', $file, $lang['xs_cache_log_nodelete']) . "<br />\n";\r
- $num_error ++;\r
- }\r
- }\r
- }\r
- closedir($res);\r
- if(!$num && !$num_error)\r
- {\r
- if($clear)\r
- {\r
- $data .= str_replace('{TPL}', $clear, $lang['xs_cache_log_nothing']) . "<br />\n";\r
- }\r
- else\r
- {\r
- $data .= $lang['xs_cache_log_nothing2'] . "<br />\n";\r
- }\r
- }\r
- else\r
- {\r
- $data .= str_replace('{NUM}', $num, $lang['xs_cache_log_count']) . "<br />\n";\r
- if($num_error)\r
- {\r
- $data .= str_replace('{NUM}', $num_error, $lang['xs_cache_log_count2']) . "<br />\n";\r
- }\r
- }\r
- }\r
-}\r
-\r
-\r
-//\r
-// compile cache\r
-//\r
-if(isset($HTTP_GET_VARS['compile']) && !defined('DEMO_MODE'))\r
-{\r
- $tpl = $HTTP_GET_VARS['compile'];\r
- @set_time_limit(XS_MAX_TIMEOUT);\r
- $num_errors = 0;\r
- $num_compiled = 0;\r
- if($tpl)\r
- {\r
- $dir = $template->tpldir . $tpl . '/';\r
- compile_cache($dir, '', $tpl);\r
- }\r
- else\r
- {\r
- $res = opendir('../templates');\r
- while(($file = readdir($res)) !== false)\r
- {\r
- if($file !== '.' && $file !== '..' && is_dir('../templates/'.$file) && @file_exists('../templates/'.$file.'/overall_header.tpl'))\r
- {\r
- compile_cache('../templates/'.$file.'/', '', $file);\r
- }\r
- }\r
- closedir($res);\r
- }\r
- $data .= str_replace('{NUM}', $num_compiled, $lang['xs_cache_log_compiled']) . "<br />\n";\r
- $data .= str_replace('{NUM}', $num_errors, $lang['xs_cache_log_errors']) . "<br />\n";\r
-}\r
-\r
-function compile_cache($dir, $subdir, $tpl)\r
-{\r
- global $data, $template, $num_errors, $num_compiled, $lang;\r
- $str = $dir . $subdir;\r
- $res = @opendir($dir . $subdir);\r
- if(!$res)\r
- {\r
- $data .= str_replace('{DIR}', $dir.$subdir, $lang['xs_cache_log_noaccess']) . "<br />\n";\r
- $num_errors ++;\r
- return;\r
- }\r
- while(($file = readdir($res)) !== false)\r
- {\r
- if(@is_dir($str . $file) && $file !== '.' && $file !== '..' && $file !== 'CVS')\r
- {\r
- compile_cache($dir, $subdir . $file . '/', $tpl);\r
- }\r
- elseif(substr($file, strlen($file) - 4) === '.tpl')\r
- {\r
- $res2 = $template->precompile($tpl, $subdir . $file);\r
- if($res2)\r
- {\r
- $data .= str_replace('{FILE}', $dir.$subdir.$file, $lang['xs_cache_log_compiled2']) . "<br />\n";\r
- $num_compiled ++;\r
- }\r
- else\r
- {\r
- $data .= str_replace('{FILE}', $dir.$subdir.$file, $lang['xs_cache_log_nocompile']) . "<br />\n";\r
- $num_errors ++;\r
- }\r
- }\r
- }\r
- closedir($res);\r
-}\r
-\r
-//\r
-// get list of installed styles\r
-//\r
-$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY template_name';\r
-if(!$result = $db->sql_query($sql))\r
-{\r
- xs_error($lang['xs_no_style_info'], __LINE__, __FILE__);\r
-}\r
-$style_rowset = $db->sql_fetchrowset($result);\r
-\r
-$template->set_filenames(array('body' => XS_TPL_PATH . 'cache.tpl'));\r
-\r
-$prev_id = -1;\r
-$prev_tpl = '';\r
-$style_names = array();\r
-$j = 0;\r
-for($i=0; $i<count($style_rowset); $i++)\r
-{\r
- $item = $style_rowset[$i];\r
- if($item['template_name'] === $prev_tpl)\r
- {\r
- $style_names[] = htmlspecialchars($item['style_name']);\r
- }\r
- else\r
- {\r
- if($prev_id > 0)\r
- {\r
- $str = implode('<br />', $style_names);\r
- $str2 = urlencode($prev_tpl);\r
- $row_class = $xs_row_class[$j % 2];\r
- $j++;\r
- $template->assign_block_vars('styles', array(\r
- 'ROW_CLASS' => $row_class,\r
- 'TPL' => $prev_tpl,\r
- 'STYLES' => $str,\r
- 'U_CLEAR' => "xs_cache.{$phpEx}?clear={$str2}&sid={$userdata['session_id']}",\r
- 'U_COMPILE' => "xs_cache.{$phpEx}?compile={$str2}&sid={$userdata['session_id']}",\r
- )\r
- );\r
- }\r
- $prev_id = $item['themes_id'];\r
- $prev_tpl = $item['template_name'];\r
- $style_names = array(htmlspecialchars($item['style_name']));\r
- }\r
-}\r
-if($prev_id > 0)\r
-{\r
- $str = implode('<br />', $style_names);\r
- $str2 = urlencode($prev_tpl);\r
- $row_class = $xs_row_class[$j % 2];\r
- $j++;\r
- $template->assign_block_vars('styles', array(\r
- 'ROW_CLASS' => $row_class,\r
- 'TPL' => $prev_tpl,\r
- 'STYLES' => $str,\r
- 'U_CLEAR' => "xs_cache.{$phpEx}?clear={$str2}&sid={$userdata['session_id']}",\r
- 'U_COMPILE' => "xs_cache.{$phpEx}?compile={$str2}&sid={$userdata['session_id']}",\r
- )\r
- );\r
-}\r
-\r
-$template->assign_vars(array(\r
- 'U_CLEAR_ALL' => "xs_cache.{$phpEx}?clear=&sid={$userdata['session_id']}",\r
- 'U_COMPILE_ALL' => "xs_cache.{$phpEx}?compile=&sid={$userdata['session_id']}",\r
- 'RESULT' => '<br /><br />' . $data\r
- )\r
-);\r
-\r
-$template->pparse('body');\r
-xs_exit();\r
-\r
-?>
\ No newline at end of file