Remove subfolder storage of templates ... a safe-mode thang, you can delete any existing cache/templates folder

git-svn-id: file:///svn/phpbb/trunk@4273 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Paul S. Owen 2003-07-17 15:16:25 +00:00
parent 947c81b3db
commit bf70fee152
3 changed files with 17 additions and 21 deletions

View file

@ -37,7 +37,7 @@ class acm
function load() function load()
{ {
global $phpEx; global $phpEx;
@include($this->cache_dir . 'global.' . $phpEx); @include($this->cache_dir . 'data_global.' . $phpEx);
} }
function unload() function unload()
@ -58,7 +58,7 @@ class acm
global $phpEx; global $phpEx;
$file = '<?php $this->vars=' . $this->format_array($this->vars) . ";\n\$this->vars_ts=" . $this->format_array($this->vars_ts) . ' ?>'; $file = '<?php $this->vars=' . $this->format_array($this->vars) . ";\n\$this->vars_ts=" . $this->format_array($this->vars_ts) . ' ?>';
if ($fp = @fopen($this->cache_dir . 'global.' . $phpEx, 'wb')) if ($fp = @fopen($this->cache_dir . 'data_global.' . $phpEx, 'wb'))
{ {
@flock($fp, LOCK_EX); @flock($fp, LOCK_EX);
fwrite($fp, $file); fwrite($fp, $file);
@ -74,16 +74,18 @@ class acm
$dir = opendir($this->cache_dir); $dir = opendir($this->cache_dir);
while ($entry = readdir($dir)) while ($entry = readdir($dir))
{ {
if ($entry{0} == '.' || is_dir($this->cache_dir . $entry)) if ($entry{0} == '.' || substr($entry, 0, 4) != 'sql_')
{ {
continue; continue;
} }
if (time() - $expire_time >= filemtime($this->cache_dir . $entry)) if (time() - $expire_time >= filemtime($this->cache_dir . $entry))
{ {
unlink($this->cache_dir . $entry); unlink($this->cache_dir . $entry);
} }
} }
if (file_exists($this->cache_dir . 'global.' . $phpEx))
if (file_exists($this->cache_dir . 'data_global.' . $phpEx))
{ {
foreach ($this->vars_ts as $varname => $timestamp) foreach ($this->vars_ts as $varname => $timestamp)
{ {
@ -173,13 +175,13 @@ class acm
// Remove extra spaces and tabs // Remove extra spaces and tabs
$query = preg_replace('/[\n\r\s\t]+/', ' ', $query); $query = preg_replace('/[\n\r\s\t]+/', ' ', $query);
$filemtime = intval(@filemtime($this->cache_dir . md5($query) . '.' . $phpEx)); $filemtime = intval(@filemtime($this->cache_dir . 'sql_' . md5($query) . '.' . $phpEx));
if (time() - $filemtime > $expire_time) if (time() - $filemtime > $expire_time)
{ {
return FALSE; return FALSE;
} }
include($this->cache_dir . md5($query) . '.' . $phpEx); include($this->cache_dir . 'sql_' . md5($query) . '.' . $phpEx);
$query_id = 'Cache id #' . count($this->sql_rowset); $query_id = 'Cache id #' . count($this->sql_rowset);
$this->sql_rowset[$query_id] = $rowset; $this->sql_rowset[$query_id] = $rowset;
@ -194,7 +196,7 @@ class acm
// Remove extra spaces and tabs // Remove extra spaces and tabs
$query = preg_replace('/[\n\r\s\t]+/', ' ', $query); $query = preg_replace('/[\n\r\s\t]+/', ' ', $query);
if ($fp = @fopen($this->cache_dir . md5($query) . '.' . $phpEx, 'wb')) if ($fp = @fopen($this->cache_dir . 'sql_' . md5($query) . '.' . $phpEx, 'wb'))
{ {
@flock($fp, LOCK_EX); @flock($fp, LOCK_EX);

View file

@ -50,7 +50,7 @@ class template
// Root dir and hash of filenames for each template handle. // Root dir and hash of filenames for each template handle.
var $tpl = ''; var $tpl = '';
var $root = ''; var $root = '';
var $cache_root = 'cache/templates/'; var $cachepath = '';
var $files = array(); var $files = array();
// this will hash handle names to the compiled/uncompiled code for that handle. // this will hash handle names to the compiled/uncompiled code for that handle.
@ -72,24 +72,18 @@ class template
{ {
// $this->tpl = 'primary'; // $this->tpl = 'primary';
$this->root = $phpbb_root_path . 'styles/templates/' . $user->theme['primary']['template_path']; $this->root = $phpbb_root_path . 'styles/templates/' . $user->theme['primary']['template_path'];
$this->cachedir = $phpbb_root_path . $this->cache_root . $user->theme['primary']['template_path'] . '/'; $this->cachepath = $phpbb_root_path . 'cache/tpl_' . $user->theme['primary']['template_path'] . '_';
} }
else else
{ {
// $this->tpl = 'secondary'; // $this->tpl = 'secondary';
$this->root = $phpbb_root_path . 'styles/templates/' . $user->theme['secondary']['template_path']; $this->root = $phpbb_root_path . 'styles/templates/' . $user->theme['secondary']['template_path'];
$this->cachedir = $phpbb_root_path . $this->cache_root . $user->theme['secondary']['template_path'] . '/'; $this->cachepath = $phpbb_root_path . 'cache/tpl_' . $user->theme['secondary']['template_path'] . '_';
} }
$this->static_lang = $static_lang; $this->static_lang = $static_lang;
$this->force_recompile = $force_recompile; $this->force_recompile = $force_recompile;
if (!file_exists($this->cachedir))
{
@umask(0);
mkdir($this->cachedir, 0777);
}
return true; return true;
} }
@ -148,7 +142,7 @@ class template
{ {
global $phpEx, $user; global $phpEx, $user;
$filename = $this->cachedir . $this->filename[$handle] . '.' . (($this->static_lang) ? $user->data['user_lang'] . '.' : '') . $phpEx; $filename = $this->cachepath . $this->filename[$handle] . '.' . (($this->static_lang) ? $user->data['user_lang'] . '.' : '') . $phpEx;
// Recompile page if the original template is newer, otherwise load the compiled version // Recompile page if the original template is newer, otherwise load the compiled version
if (file_exists($filename) && !$this->force_recompile) if (file_exists($filename) && !$this->force_recompile)
@ -182,7 +176,7 @@ class template
trigger_error("template->_tpl_load(): File $filename does not exist or is empty", E_USER_ERROR); trigger_error("template->_tpl_load(): File $filename does not exist or is empty", E_USER_ERROR);
} }
$str = fread($fp, filesize($this->files[$handle])); $str = @fread($fp, filesize($this->files[$handle]));
@fclose($fp); @fclose($fp);
// Actually compile the code now. // Actually compile the code now.
@ -718,7 +712,7 @@ class template
{ {
global $phpEx, $user; global $phpEx, $user;
$filename = $this->cachedir . $this->filename[$handle] . '.' . (($this->static_lang) ? $user->data['user_lang'] . '.' : '') . $phpEx; $filename = $this->cachepath . $this->filename[$handle] . '.' . (($this->static_lang) ? $user->data['user_lang'] . '.' : '') . $phpEx;
if ($fp = @fopen($filename, 'w+')) if ($fp = @fopen($filename, 'w+'))
{ {

View file

@ -413,7 +413,7 @@ if ($stage == 0)
foreach ($locations as $location) foreach ($locations as $location)
{ {
if (file_exists($location . 'convert' . $exe) && is_readable($location . 'convert' . $exe)) if (@file_exists($location . 'convert' . $exe) && @is_readable($location . 'convert' . $exe))
{ {
$img_imagick = str_replace('\\', '/', $location); $img_imagick = str_replace('\\', '/', $location);
continue; continue;
@ -445,7 +445,7 @@ if ($stage == 0)
<table cellspacing="1" cellpadding="4" border="0"> <table cellspacing="1" cellpadding="4" border="0">
<?php <?php
$directories = array('cache/', 'cache/templates/', 'cache/themes/', 'cache/tmp/', 'files/'); $directories = array('cache/', 'files/');
umask(0); umask(0);