캐시를 지우는 외부 툴 스크립트 추가. 파일을 핸들링할때 경로를 제대로 찾아서 처리할 수 있도록 코드 수정

git-svn-id: http://xe-core.googlecode.com/svn/sandbox@4331 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
zero 2008-06-27 08:23:23 +00:00
parent 5d19990111
commit bdc194ab1d
41 changed files with 246 additions and 95 deletions

View file

@ -12,6 +12,7 @@ RewriteRule ^(.+)/common/tpl/(.*) ./common/tpl/$2 [L]
RewriteRule ^(.+)/widgets/(.*) ./widgets/$2 [L] RewriteRule ^(.+)/widgets/(.*) ./widgets/$2 [L]
RewriteRule ^(.+)/layouts/(.*) ./layouts/$2 [L] RewriteRule ^(.+)/layouts/(.*) ./layouts/$2 [L]
RewriteRule ^(.+)/addons/(.*) ./addons/$2 [L] RewriteRule ^(.+)/addons/(.*) ./addons/$2 [L]
RewriteRule ^(.+)/tools/(.*) ./tools/$2 [L]
# page # page
RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)page$ ./index.php?mid=$1&page=$2 [L] RewriteRule ^([a-zA-Z0-9_]+)/([[:digit:]]+)page$ ./index.php?mid=$1&page=$2 [L]

View file

@ -33,7 +33,7 @@
$flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl); $flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl);
if(file_exists($flag_file)) { if(file_exists($flag_file)) {
@unlink($flag_file); FileHandler::removeFile($flag_file);
Context::loadLang('./addons/member_communication/lang'); Context::loadLang('./addons/member_communication/lang');
$script = sprintf('<script type="text/javascript"> xAddEventListener(window,"load", function() {if(confirm("%s")) { popopen("%s"); }}); </script>', Context::getLang('alert_new_message_arrived'), Context::getRequestUri().'?module=communication&act=dispCommunicationNewMessage'); $script = sprintf('<script type="text/javascript"> xAddEventListener(window,"load", function() {if(confirm("%s")) { popopen("%s"); }}); </script>', Context::getLang('alert_new_message_arrived'), Context::getRequestUri().'?module=communication&act=dispCommunicationNewMessage');

View file

@ -185,6 +185,14 @@
if(is_object($oDB)&&method_exists($oDB, 'close')) $oDB->close(); if(is_object($oDB)&&method_exists($oDB, 'close')) $oDB->close();
} }
/**
* @brief DB의 기타 정보 load
**/
function loadDBInfo() {
$oContext = &Context::getInstance();
return $oContext->_loadDBInfo();
}
/** /**
* @brief DB 정보를 설정하고 DB Type과 DB 정보를 return * @brief DB 정보를 설정하고 DB Type과 DB 정보를 return
**/ **/

View file

@ -496,7 +496,7 @@
if(!is_array($tables)) $tables = array($tables); if(!is_array($tables)) $tables = array($tables);
foreach($tables as $alias => $table) { foreach($tables as $alias => $table) {
$filename = sprintf('%s/cache.%s%s', $this->count_cache_path, $this->prefix, $table); $filename = sprintf('%s/cache.%s%s', $this->count_cache_path, $this->prefix, $table);
@unlink($filename); FileHandler::removeFile($filename);
FileHandler::writeFile( $filename, '' ); FileHandler::writeFile( $filename, '' );
} }

View file

@ -9,10 +9,21 @@
class FileHandler extends Handler { class FileHandler extends Handler {
/**
* @brief 대상 파일이름이나 디렉토리의 위치를 확인함
**/
function getRealPath($source) {
if(substr($source,0,1)=='/') return $source;
if(substr($source,0,2)=='./') $source = substr($source,2);
return _XE_PATH_.$source;
}
/** /**
* @brief 파일의 내용을 읽어서 return * @brief 파일의 내용을 읽어서 return
**/ **/
function readFile($file_name) { function readFile($file_name) {
$file_name = FileHandler::getRealPath($file_name);
if(!file_exists($file_name)) return; if(!file_exists($file_name)) return;
$filesize = filesize($file_name); $filesize = filesize($file_name);
if($filesize<1) return; if($filesize<1) return;
@ -35,6 +46,8 @@
* @brief $buff의 내용을 파일에 쓰기 * @brief $buff의 내용을 파일에 쓰기
**/ **/
function writeFile($file_name, $buff, $mode = "w") { function writeFile($file_name, $buff, $mode = "w") {
$file_name = FileHandler::getRealPath($file_name);
$pathinfo = pathinfo($file_name); $pathinfo = pathinfo($file_name);
$path = $pathinfo['dirname']; $path = $pathinfo['dirname'];
if(!is_dir($path)) FileHandler::makeDir($path); if(!is_dir($path)) FileHandler::makeDir($path);
@ -47,38 +60,58 @@
@chmod($file_name, 0644); @chmod($file_name, 0644);
} }
/**
* @brief 파일 삭제
**/
function removeFile($file_name) {
$file_name = FileHandler::getRealPath($file_name);
if(file_exists($file_name)) @unlink($file_name);
}
/**
* @brief 파일이름이나 디렉토리명이나 위치 변경
**/
function rename($source, $target) {
$source = FileHandler::getRealPath($source);
$target = FileHandler::getRealPath($target);
@rename($source, $target);
}
/** /**
* @brief 특정 디렉토리를 이동 * @brief 특정 디렉토리를 이동
**/ **/
function moveDir($source_dir, $target_dir) { function moveDir($source_dir, $target_dir) {
if(!is_dir($source_dir)) return; FileHandler::rename($source_dir, $target_dir);
if(!is_dir($target_dir)) {
FileHandler::makeDir($target_dir);
@unlink($target_dir);
}
@rename($source_dir, $target_dir);
} }
/** /**
* @brief $path내의 파일들을 return ('.', '..', '.로 시작하는' 파일들은 제외) * @brief $path내의 파일들을 return ('.', '..', '.로 시작하는' 파일들은 제외)
**/ **/
function readDir($path, $filter = '', $to_lower = false, $concat_prefix = false) { function readDir($path, $filter = '', $to_lower = false, $concat_prefix = false) {
$path = FileHandler::getRealPath($path);
if(substr($path,-1)!='/') $path .= '/'; if(substr($path,-1)!='/') $path .= '/';
if(!is_dir($path)) return array(); if(!is_dir($path)) return array();
$oDir = dir($path); $oDir = dir($path);
while($file = $oDir->read()) { while($file = $oDir->read()) {
if(substr($file,0,1)=='.') continue; if(substr($file,0,1)=='.') continue;
if($filter && !preg_match($filter, $file)) continue; if($filter && !preg_match($filter, $file)) continue;
if($to_lower) $file = strtolower($file); if($to_lower) $file = strtolower($file);
if($filter) $file = preg_replace($filter, '$1', $file); if($filter) $file = preg_replace($filter, '$1', $file);
else $file = $file; else $file = $file;
if($concat_prefix) $file = $path.$file; if($concat_prefix) {
$file = sprintf('%s%s', str_replace(_XE_PATH_, '', $path), $file);
}
$output[] = $file; $output[] = $file;
} }
if(!$output) return array(); if(!$output) return array();
return $output; return $output;
} }
@ -108,6 +141,7 @@
* @brief 지정된 디렉토리 이하 모두 파일을 삭제 * @brief 지정된 디렉토리 이하 모두 파일을 삭제
**/ **/
function removeDir($path) { function removeDir($path) {
$path = FileHandler::getRealPath($path);
if(!is_dir($path)) return; if(!is_dir($path)) return;
$directory = dir($path); $directory = dir($path);
while($entry = $directory->read()) { while($entry = $directory->read()) {
@ -145,6 +179,8 @@
* @brief 원격파일을 다운받아서 특정 위치에 저장 * @brief 원격파일을 다운받아서 특정 위치에 저장
**/ **/
function getRemoteFile($url, $target_filename) { function getRemoteFile($url, $target_filename) {
$target_filename = FileHandler::getRealPath($target_filename);
$url_info = parse_url($url); $url_info = parse_url($url);
if(!$url_info['port']) $url_info['port'] = 80; if(!$url_info['port']) $url_info['port'] = 80;
@ -191,6 +227,9 @@
* @brief 특정 이미지 파일을 특정 위치로 옮김 (옮길때 이미지의 크기를 리사이징할 있음..) * @brief 특정 이미지 파일을 특정 위치로 옮김 (옮길때 이미지의 크기를 리사이징할 있음..)
**/ **/
function createImageFile($source_file, $target_file, $resize_width = 0, $resize_height = 0, $target_type = '', $thumbnail_type = 'crop') { function createImageFile($source_file, $target_file, $resize_width = 0, $resize_height = 0, $target_type = '', $thumbnail_type = 'crop') {
$source_file = FileHandler::getRequestUri($source_file);
$target_file = FileHandler::getRequestUri($target_file);
if(!file_exists($source_file)) return; if(!file_exists($source_file)) return;
if(!$resize_width) $resize_width = 100; if(!$resize_width) $resize_width = 100;
if(!$resize_height) $resize_height = $resize_width; if(!$resize_height) $resize_height = $resize_width;

View file

@ -45,17 +45,17 @@
if(!$tpl_file) $tpl_file = $tpl_path.$tpl_filename; if(!$tpl_file) $tpl_file = $tpl_path.$tpl_filename;
// tpl_file이 비어 있거나 해당 파일이 없으면 return // tpl_file이 비어 있거나 해당 파일이 없으면 return
if(!$tpl_file || !file_exists($tpl_file)) return; if(!$tpl_file || !file_exists(FileHandler::getRealPath($tpl_file))) return;
$this->tpl_path = $tpl_path; $this->tpl_path = $tpl_path;
$this->tpl_file = $tpl_file; $this->tpl_file = $tpl_file;
// compiled된(or 될) 파일이름을 구함 // compiled된(or 될) 파일이름을 구함
$compiled_tpl_file = $this->_getCompiledFileName($tpl_file); $compiled_tpl_file = FileHandler::getRealPath($this->_getCompiledFileName($tpl_file));
// 일단 컴파일 // 일단 컴파일
$buff = $this->_compile($tpl_file, $compiled_tpl_file); $buff = $this->_compile($tpl_file, $compiled_tpl_file);
// Context와 compiled_tpl_file로 컨텐츠 생성 // Context와 compiled_tpl_file로 컨텐츠 생성
$output = $this->_fetch($compiled_tpl_file, $buff, $tpl_path); $output = $this->_fetch($compiled_tpl_file, $buff, $tpl_path);
@ -83,9 +83,9 @@
function _compile($tpl_file, $compiled_tpl_file) { function _compile($tpl_file, $compiled_tpl_file) {
if(!file_exists($compiled_tpl_file)) return $this->_compileTplFile($tpl_file, $compiled_tpl_file); if(!file_exists($compiled_tpl_file)) return $this->_compileTplFile($tpl_file, $compiled_tpl_file);
$source_ftime = filemtime($tpl_file); $source_ftime = filemtime(FileHandler::getRealPath($tpl_file));
$target_ftime = filemtime($compiled_tpl_file); $target_ftime = filemtime($compiled_tpl_file);
if($source_ftime>$target_ftime || $target_ftime < filemtime('./classes/template/TemplateHandler.class.php') ) return $this->_compileTplFile($tpl_file, $compiled_tpl_file); if($source_ftime>$target_ftime || $target_ftime < filemtime(_XE_PATH_.'classes/template/TemplateHandler.class.php') ) return $this->_compileTplFile($tpl_file, $compiled_tpl_file);
} }
/** /**

View file

@ -74,7 +74,7 @@
FileHandler::writeFile($cache_file, $widget_content); FileHandler::writeFile($cache_file, $widget_content);
// lock 파일 제거 // lock 파일 제거
@unlink($lock_file); FileHandler::removeFile($lock_file);
return $widget_content; return $widget_content;
} }

View file

@ -472,8 +472,13 @@
* 현재 요청받은 스크립트 경로를 return * 현재 요청받은 스크립트 경로를 return
**/ **/
function getScriptPath() { function getScriptPath() {
$url = $_SERVER['PHP_SELF']?$_SERVER['PHP_SELF']:($_SERVER['REQUEST_URI']?$_SERVER['REQUEST_URI']:$_SERVER['URL']); static $url = null;
return preg_replace('/index.php/i','',$url); if($url === null) {
$document_root = str_replace('\\','/',$_SERVER['DOCUMENT_ROOT']);
$file = str_replace('\\','/',__FILE__);
$url = preg_replace('/index.php/i','',str_replace('config/func.inc.php','',str_replace($document_root, '', $file)));
}
return $url;
} }
/** /**

View file

@ -46,9 +46,9 @@
FileHandler::removeFilesInDir("./files/cache/queries"); FileHandler::removeFilesInDir("./files/cache/queries");
// ./files/cache/news* 파일 삭제 // ./files/cache/news* 파일 삭제
$directory = dir("./files/cache/"); $directory = dir(_XE_PATH_."files/cache/");
while($entry = $directory->read()) { while($entry = $directory->read()) {
if(substr($entry,0,11)=='newest_news') @unlink("./files/cache/".$entry); if(substr($entry,0,11)=='newest_news') FileHandler::removeFile("./files/cache/".$entry);
} }
$directory->close(); $directory->close();
} }

View file

@ -67,7 +67,7 @@
$del_var = $obj->{"del_".$vars->name}; $del_var = $obj->{"del_".$vars->name};
unset($obj->{"del_".$vars->name}); unset($obj->{"del_".$vars->name});
if($del_var == 'Y') { if($del_var == 'Y') {
@unlink($module_info->{$vars->name}); FileHandler::removeFile($module_info->{$vars->name});
continue; continue;
} }

View file

@ -5,7 +5,7 @@
* @brief comment 모듈의 high class * @brief comment 모듈의 high class
**/ **/
require_once('./modules/comment/comment.item.php'); require_once(_XE_PATH_.'modules/comment/comment.item.php');
class comment extends ModuleObject { class comment extends ModuleObject {

View file

@ -285,7 +285,7 @@
} }
// 성공시 lock파일 제거 // 성공시 lock파일 제거
@unlink($lock_file); FileHandler::removeFile($lock_file);
} }
/** /**

View file

@ -78,7 +78,7 @@
// 플래그 삭제 // 플래그 삭제
$flag_path = './files/communication_extra_info/new_message_flags/'.getNumberingPath($logged_info->member_srl); $flag_path = './files/communication_extra_info/new_message_flags/'.getNumberingPath($logged_info->member_srl);
$flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl); $flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl);
@unlink($flag_file); FileHandler::removeFile($flag_file);
$this->setTemplateFile('new_message'); $this->setTemplateFile('new_message');
} }

View file

@ -397,7 +397,7 @@
$this->deleteThumbnailFile($path."/".$entry); $this->deleteThumbnailFile($path."/".$entry);
} else { } else {
if(!preg_match('/^thumbnail_([^\.]*)\.jpg$/i',$entry)) continue; if(!preg_match('/^thumbnail_([^\.]*)\.jpg$/i',$entry)) continue;
@unlink($path.'/'.$entry); FileHandler::removeFile($path.'/'.$entry);
} }
} }
} }

View file

@ -5,7 +5,7 @@
* @brief document 모듈의 high 클래스 * @brief document 모듈의 high 클래스
**/ **/
require_once('./modules/document/document.item.php'); require_once(_XE_PATH_.'modules/document/document.item.php');
class document extends ModuleObject { class document extends ModuleObject {
@ -31,7 +31,7 @@
$oDB->addIndex("documents","idx_module_voted_count", array("module_srl","voted_count")); $oDB->addIndex("documents","idx_module_voted_count", array("module_srl","voted_count"));
$oDB->addIndex("documents","idx_module_notice", array("module_srl","is_notice")); $oDB->addIndex("documents","idx_module_notice", array("module_srl","is_notice"));
$oDB->addIndex("documents","idx_module_document_srl", array("module_srl","document_srl")); $oDB->addIndex("documents","idx_module_document_srl", array("module_srl","document_srl"));
$oDB->addIndex("documents","idx_module_blamed_count", array("module_srl","blamed_count")); $oDB->addIndex("documents","idx_module_blamed_count", array("module_srl","blamed_count"));
// 2007. 10. 17 모듈이 삭제될때 등록된 글도 모두 삭제하는 트리거 추가 // 2007. 10. 17 모듈이 삭제될때 등록된 글도 모두 삭제하는 트리거 추가
$oModuleController->insertTrigger('module.deleteModule', 'document', 'controller', 'triggerDeleteModuleDocuments', 'after'); $oModuleController->insertTrigger('module.deleteModule', 'document', 'controller', 'triggerDeleteModuleDocuments', 'after');
@ -182,30 +182,27 @@
**/ **/
if(!$oDB->isIndexExists("documents","idx_module_document_srl")) $oDB->addIndex("documents","idx_module_document_srl", array("module_srl","document_srl")); if(!$oDB->isIndexExists("documents","idx_module_document_srl")) $oDB->addIndex("documents","idx_module_document_srl", array("module_srl","document_srl"));
// 2008. 04. 23 blamed count 컬럼 추가 // 2008. 04. 23 blamed count 컬럼 추가
if(!$oDB->isColumnExists("documents", "blamed_count")) if(!$oDB->isColumnExists("documents", "blamed_count")) {
{ $oDB->addColumn('documents', 'blamed_count', 'number', 11, 0, true);
$oDB->addColumn('documents', 'blamed_count', 'number', 11, 0, true); $oDB->addIndex('documents', 'idx_blamed_count', array('blamed_count'));
$oDB->addIndex('documents', 'idx_blamed_count', array('blamed_count')); }
}
if(!$oDB->isIndexExists("documents","idx_module_blamed_count")) if(!$oDB->isIndexExists("documents","idx_module_blamed_count")) {
{ $oDB->addIndex('documents', 'idx_module_blamed_count', array('module_srl', 'blamed_count'));
$oDB->addIndex('documents', 'idx_module_blamed_count', array('module_srl', 'blamed_count')); }
}
if(!$oDB->isColumnExists("document_voted_log", "point")) if(!$oDB->isColumnExists("document_voted_log", "point"))
$oDB->addColumn('document_voted_log', 'point', 'number', 11, 0, true); $oDB->addColumn('document_voted_log', 'point', 'number', 11, 0, true);
return new Object(0,'success_updated');
return new Object(0,'success_updated'); }
}
/** /**
* @brief 캐시 파일 재생성 * @brief 캐시 파일 재생성
**/ **/
function recompileCache() { function recompileCache() {
// 게시글 분류 캐시 파일 삭제 // 게시글 분류 캐시 파일 삭제
FileHandler::removeFilesInDir("./files/cache/document_category"); FileHandler::removeFilesInDir(_XE_PATH_."files/cache/document_category");
} }
/** /**

View file

@ -762,8 +762,8 @@
$category_list = $output->data; $category_list = $output->data;
if(!$category_list) { if(!$category_list) {
@unlink($xml_file); FileHandler::removeFile($xml_file);
@unlink($php_file); FileHandler::removeFile($php_file);
return false; return false;
} }
if(!is_array($category_list)) $category_list = array($category_list); if(!is_array($category_list)) $category_list = array($category_list);

View file

@ -455,7 +455,7 @@
if(file_exists($thumbnail_file)) { if(file_exists($thumbnail_file)) {
$file_created_time = date("YmdHis",filemtime($thumbnail_file)); $file_created_time = date("YmdHis",filemtime($thumbnail_file));
$modified_time = $this->get('last_update'); $modified_time = $this->get('last_update');
if($modified_time > $file_created_time) @unlink($thumbnail_file); if($modified_time > $file_created_time) FileHandler::removeFile($thumbnail_file);
} }
if(file_exists($thumbnail_file)&&filesize($thumbnail_file)<1) return; if(file_exists($thumbnail_file)&&filesize($thumbnail_file)<1) return;
@ -500,7 +500,7 @@
$tmp_file = sprintf('%sthumbnail_%d.tmp.jpg', $document_path, $width); $tmp_file = sprintf('%sthumbnail_%d.tmp.jpg', $document_path, $width);
FileHandler::getRemoteFile($target_src, $tmp_file); FileHandler::getRemoteFile($target_src, $tmp_file);
FileHandler::createImageFile($tmp_file, $thumbnail_file, $width, $height, 'jpg', $config->thumbnail_type); FileHandler::createImageFile($tmp_file, $thumbnail_file, $width, $height, 'jpg', $config->thumbnail_type);
@unlink($tmp_file); FileHandler::removeFile($tmp_file);
return Context::getRequestUri().$thumbnail_file; return Context::getRequestUri().$thumbnail_file;
} }

View file

@ -346,7 +346,7 @@
if(!$trigger_output->toBool()) return $trigger_output; if(!$trigger_output->toBool()) return $trigger_output;
// 삭제 성공하면 파일 삭제 // 삭제 성공하면 파일 삭제
@unlink($uploaded_filename); FileHandler::removeFile($uploaded_filename);
return $output; return $output;
} }
@ -415,7 +415,7 @@
FileHandler::makeDir($path); FileHandler::makeDir($path);
// 파일 이동 // 파일 이동
@rename($old_file, $new_file); FileHandler::rename($old_file, $new_file);
// DB 정보도 수정 // DB 정보도 수정
unset($args); unset($args);

View file

@ -50,7 +50,7 @@
* @brief 지정된 파일의 지시자를 * @brief 지정된 파일의 지시자를
**/ **/
function openFile() { function openFile() {
@unlink($this->cache_index_file); FileHandler::removeFile($this->cache_index_file);
$this->index_fd = fopen($this->cache_index_file,"a"); $this->index_fd = fopen($this->cache_index_file,"a");
// local 파일일 경우 // local 파일일 경우
@ -140,7 +140,7 @@
$buff = FileHandler::readFile($target_file); $buff = FileHandler::readFile($target_file);
fwrite($fd, FileHandler::readFile($target_file)); fwrite($fd, FileHandler::readFile($target_file));
@unlink($target_file); FileHandler::removeFile($target_file);
} }
fwrite($fd, '</items>'); fwrite($fd, '</items>');
fclose($fd); fclose($fd);

View file

@ -190,7 +190,7 @@
// 대상 파일을 읽여서 파싱후 입력 // 대상 파일을 읽여서 파싱후 입력
$xmlObj = $oXmlParser->loadXmlFile($target_file); $xmlObj = $oXmlParser->loadXmlFile($target_file);
@unlink($target_file); FileHandler::removeFile($target_file);
if(!$xmlObj) continue; if(!$xmlObj) continue;
// 객체 정리 // 객체 정리
@ -326,7 +326,7 @@
// 대상 파일을 읽여서 파싱후 입력 // 대상 파일을 읽여서 파싱후 입력
$xmlObj = $oXmlParser->loadXmlFile($target_file); $xmlObj = $oXmlParser->loadXmlFile($target_file);
@unlink($target_file); FileHandler::removeFile($target_file);
if(!$xmlObj) continue; if(!$xmlObj) continue;
// 객체 정리 // 객체 정리
@ -433,7 +433,7 @@
$oDocumentController = &getController('document'); $oDocumentController = &getController('document');
$oDocumentController->makeCategoryFile($module_srl); $oDocumentController->makeCategoryFile($module_srl);
} }
@unlink($category_file); FileHandler::removeFile($category_file);
} }
$category_list = $category_titles = array(); $category_list = $category_titles = array();
@ -558,7 +558,7 @@
} }
fclose($fp); fclose($fp);
@unlink($target_file); FileHandler::removeFile($target_file);
} }
fclose($f); fclose($f);
@ -793,7 +793,7 @@
// 디렉토리 생성 // 디렉토리 생성
if(!FileHandler::makeDir($path)) continue; if(!FileHandler::makeDir($path)) continue;
if(preg_match('/^\.\/files\/cache\/tmp/i',$file_obj->file)) @rename($file_obj->file, $filename); if(preg_match('/^\.\/files\/cache\/tmp/i',$file_obj->file)) FileHandler::rename($file_obj->file, $filename);
else @copy($file_obj->file, $filename); else @copy($file_obj->file, $filename);
// DB입력 // DB입력

View file

@ -55,7 +55,7 @@
} }
$oDocumentController->makeCategoryFile($module_srl); $oDocumentController->makeCategoryFile($module_srl);
} }
@unlink($category_file); FileHandler::removeFile($category_file);
} }
$category_list = $category_titles = array(); $category_list = $category_titles = array();
$category_list = $oDocumentModel->getCategoryList($module_srl); $category_list = $oDocumentModel->getCategoryList($module_srl);
@ -239,7 +239,7 @@
} }
fclose($fp); fclose($fp);
@unlink($target_file); FileHandler::removeFile($target_file);
} }
fclose($f); fclose($f);
@ -298,7 +298,7 @@
// 디렉토리 생성 // 디렉토리 생성
if(!FileHandler::makeDir($path)) continue; if(!FileHandler::makeDir($path)) continue;
@rename($file_obj->file, $filename); FileHandler::rename($file_obj->file, $filename);
// DB입력 // DB입력
unset($file_obj->file); unset($file_obj->file);

View file

@ -61,7 +61,7 @@
$del_var = $obj->{"del_".$vars->name}; $del_var = $obj->{"del_".$vars->name};
unset($obj->{"del_".$vars->name}); unset($obj->{"del_".$vars->name});
if($del_var == 'Y') { if($del_var == 'Y') {
@unlink($module_info->{$vars->name}); FileHandler::removeFile($module_info->{$vars->name});
continue; continue;
} }

View file

@ -92,7 +92,7 @@
unset($extra_vars->{"del_".$name}); unset($extra_vars->{"del_".$name});
if($del_var == 'Y') { if($del_var == 'Y') {
$extra_vars->{$name} = ''; $extra_vars->{$name} = '';
@unlink($extra_vars->{$name}); FileHandler::removeFile($extra_vars->{$name});
continue; continue;
} }
@ -140,7 +140,7 @@
$output = executeQuery('layout.updateLayout', $args); $output = executeQuery('layout.updateLayout', $args);
if($output->toBool()) { if($output->toBool()) {
$cache_file = sprintf('./files/cache/layout/%s.%s.cache.php', $args->layout_srl, Context::getLangType()); $cache_file = sprintf('./files/cache/layout/%s.%s.cache.php', $args->layout_srl, Context::getLangType());
@unlink($cache_file); FileHandler::removeFile($cache_file);
} }
return $output; return $output;
} }
@ -157,12 +157,12 @@
if(count($cache_list)) { if(count($cache_list)) {
foreach($cache_list as $cache_file) { foreach($cache_list as $cache_file) {
$pos = strpos($cache_file, $layout_srl.'_'); $pos = strpos($cache_file, $layout_srl.'_');
if($pos>0) unlink($cache_file); if($pos>0)FileHandler::removeFile($cache_file);
} }
} }
$layout_file = sprintf('./files/cache/layout/%d.html', $layout_srl); $layout_file = sprintf('./files/cache/layout/%d.html', $layout_srl);
if(file_exists($layout_file)) @unlink($layout_file); if(file_exists($layout_file)) FileHandler::removeFile($layout_file);
// 레이아웃 삭제 // 레이아웃 삭제
$args->layout_srl = $layout_srl; $args->layout_srl = $layout_srl;
@ -200,7 +200,7 @@
if(!$layout_srl) return new Object(-1, 'msg_invalid_request'); if(!$layout_srl) return new Object(-1, 'msg_invalid_request');
$layout_file = sprintf('./files/cache/layout/%d.html', $layout_srl); $layout_file = sprintf('./files/cache/layout/%d.html', $layout_srl);
@unlink($layout_file); FileHandler::removeFile($layout_file);
$this->setMessage('success_reset'); $this->setMessage('success_reset');
} }

View file

@ -155,7 +155,7 @@
Context::set('layout_tpl', $layout_tpl); Context::set('layout_tpl', $layout_tpl);
// 임시 파일 삭제 // 임시 파일 삭제
@unlink($edited_layout_file); FileHandler::removeFile($edited_layout_file);
$this->setTemplateFile('layout_preview'); $this->setTemplateFile('layout_preview');
} }

View file

@ -53,7 +53,7 @@
$directory = dir($path); $directory = dir($path);
while($entry = $directory->read()) { while($entry = $directory->read()) {
if ($entry == "." || $entry == ".." || preg_match('/\.html$/i',$entry) ) continue; if ($entry == "." || $entry == ".." || preg_match('/\.html$/i',$entry) ) continue;
@unlink($path."/".$entry); FileHandler::removeFile($path."/".$entry);
} }
$directory->close(); $directory->close();
} }

View file

@ -183,7 +183,7 @@
$del_var = $obj->{"del_".$vars->name}; $del_var = $obj->{"del_".$vars->name};
unset($obj->{"del_".$vars->name}); unset($obj->{"del_".$vars->name});
if($del_var == 'Y') { if($del_var == 'Y') {
@unlink($module_info->{$vars->name}); FileHandler::removeFile($module_info->{$vars->name});
continue; continue;
} }

View file

@ -617,7 +617,7 @@
if($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl) { if($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl) {
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
$profile_image = $oMemberModel->getProfileImage($member_srl); $profile_image = $oMemberModel->getProfileImage($member_srl);
@unlink($profile_image->file); FileHandler::removeFile($profile_image->file);
} }
return new Object(0,'success'); return new Object(0,'success');
} }
@ -640,7 +640,7 @@
if($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl) { if($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl) {
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
$image_name = $oMemberModel->getImageName($member_srl); $image_name = $oMemberModel->getImageName($member_srl);
@unlink($image_name->file); FileHandler::removeFile($image_name->file);
} }
return new Object(0,'success'); return new Object(0,'success');
} }
@ -705,7 +705,7 @@
if($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl) { if($logged_info->is_admin == 'Y' || $logged_info->member_srl == $member_srl) {
$oMemberModel = &getModel('member'); $oMemberModel = &getModel('member');
$image_mark = $oMemberModel->getImageMark($member_srl); $image_mark = $oMemberModel->getImageMark($member_srl);
@unlink($image_mark->file); FileHandler::removeFile($image_mark->file);
} }
return new Object(0,'success'); return new Object(0,'success');
} }
@ -830,7 +830,7 @@
$path = sprintf('files/member_extra_info/signature/%s/', getNumberingPath($member_srl)); $path = sprintf('files/member_extra_info/signature/%s/', getNumberingPath($member_srl));
$filename = sprintf('%s%d.signature.php', $path, $member_srl); $filename = sprintf('%s%d.signature.php', $path, $member_srl);
if(!$check_signature) return @unlink($filename); if(!$check_signature) return FileHandler::removeFile($filename);
$buff = sprintf('<?php if(!defined("__ZBXE__")) exit();?>%s', $signature); $buff = sprintf('<?php if(!defined("__ZBXE__")) exit();?>%s', $signature);
FileHandler::makeDir($path); FileHandler::makeDir($path);
@ -842,7 +842,7 @@
**/ **/
function delSignature($member_srl) { function delSignature($member_srl) {
$filename = sprintf('files/member_extra_info/signature/%s%d.gif', getNumberingPath($member_srl), $member_srl); $filename = sprintf('files/member_extra_info/signature/%s%d.gif', getNumberingPath($member_srl), $member_srl);
@unlink($filename); FileHandler::removeFile($filename);
} }
/** /**

View file

@ -443,7 +443,7 @@ class HTTPRetriever {
if (time()-filemtime($filename)>$this->caching) { if (time()-filemtime($filename)>$this->caching) {
$this->progress(HRP_DEBUG,"Page in cache is expired"); $this->progress(HRP_DEBUG,"Page in cache is expired");
@unlink($filename); FileHandler::removeFile($filename);
return false; return false;
} }

View file

@ -341,7 +341,7 @@ function curl_setopt($ch,$option,$value) {
} }
fclose($fp); fclose($fp);
// if a temporary file was previously created, unlink it // if a temporary file was previously created, unlink it
if ($settings["upload-file"]["value"] && file_exists($settings["upload-file"]["value"])) unlink($settings["upload-file"]["value"]); if ($settings["upload-file"]["value"] && file_exists($settings["upload-file"]["value"]))FileHandler::removeFile($settings["upload-file"]["value"]);
// set the new upload-file filename // set the new upload-file filename
$settings["upload-file"]["value"] = $tmpfilename; $settings["upload-file"]["value"] = $tmpfilename;
@ -581,7 +581,7 @@ function curl_close($ch) {
$settings = &$opt["settings"]; $settings = &$opt["settings"];
// if the user used CURLOPT_INFILE to specify a file to upload, remove the // if the user used CURLOPT_INFILE to specify a file to upload, remove the
// temporary file created for the CURL binary // temporary file created for the CURL binary
if ($settings["upload-file"]["value"] && file_exists($settings["upload-file"]["value"])) unlink($settings["upload-file"]["value"]); if ($settings["upload-file"]["value"] && file_exists($settings["upload-file"]["value"]))FileHandler::removeFile($settings["upload-file"]["value"]);
} }
unset($GLOBALS["_CURLEXT_OPT"][$ch]); unset($GLOBALS["_CURLEXT_OPT"][$ch]);
@ -634,4 +634,4 @@ function curl_version() {
} }
} }
?> ?>

View file

@ -399,7 +399,7 @@ function curl_close($ch) {
$settings = &$opt["settings"]; $settings = &$opt["settings"];
// if the user used CURLOPT_INFILE to specify a file to upload, remove the // if the user used CURLOPT_INFILE to specify a file to upload, remove the
// temporary file created for the CURL binary // temporary file created for the CURL binary
if ($settings["upload-file"]["value"] && file_exists($settings["upload-file"]["value"])) unlink($settings["upload-file"]["value"]); if ($settings["upload-file"]["value"] && file_exists($settings["upload-file"]["value"]))FileHandler::removeFile($settings["upload-file"]["value"]);
} }
unset($GLOBALS["_CURLNAT_OPT"][$ch]); unset($GLOBALS["_CURLNAT_OPT"][$ch]);

View file

@ -55,7 +55,7 @@
if(count($cache_list)) { if(count($cache_list)) {
foreach($cache_list as $cache_file) { foreach($cache_list as $cache_file) {
$pos = strpos($cache_file, $menu_srl.'_'); $pos = strpos($cache_file, $menu_srl.'_');
if($pos>0) unlink($cache_file); if($pos>0)FileHandler::removeFile($cache_file);
} }
} }
@ -196,9 +196,9 @@
$xml_file = $this->makeXmlFile($args->menu_srl); $xml_file = $this->makeXmlFile($args->menu_srl);
// 이미지 버튼 모두 삭제 // 이미지 버튼 모두 삭제
if($item_info->normal_btn) @unlink($item_info->normal_btn); if($item_info->normal_btn) FileHandler::removeFile($item_info->normal_btn);
if($item_info->hover_btn) @unlink($item_info->hover_btn); if($item_info->hover_btn) FileHandler::removeFile($item_info->hover_btn);
if($item_info->active_btn) @unlink($item_info->active_btn); if($item_info->active_btn) FileHandler::removeFile($item_info->active_btn);
$this->add('xml_file', $xml_file); $this->add('xml_file', $xml_file);
$this->add('menu_title', $menu_title); $this->add('menu_title', $menu_title);
@ -305,7 +305,7 @@
$menu_item_srl = Context::get('menu_item_srl'); $menu_item_srl = Context::get('menu_item_srl');
$target = Context::get('target'); $target = Context::get('target');
$filename = Context::get('filename'); $filename = Context::get('filename');
@unlink($filename); FileHandler::removeFile($filename);
$this->add('target', $target); $this->add('target', $target);
} }

View file

@ -61,7 +61,7 @@
$output = executeQuery('module.deleteModuleConfig', $args); $output = executeQuery('module.deleteModuleConfig', $args);
if(!$output->toBool()) return $output; if(!$output->toBool()) return $output;
@unlink( sprintf('./files/cache/module_info/%s.config.php',$module) ); FileHandler::removeFile( sprintf('./files/cache/module_info/%s.config.php',$module) );
// 변수 정리후 query 실행 // 변수 정리후 query 실행
$output = executeQuery('module.insertModuleConfig', $args); $output = executeQuery('module.insertModuleConfig', $args);

View file

@ -71,7 +71,7 @@
// 캐시 파일 삭제 // 캐시 파일 삭제
$cache_file = sprintf("./files/cache/opage/%d.cache.php", $module_info->module_srl); $cache_file = sprintf("./files/cache/opage/%d.cache.php", $module_info->module_srl);
if(file_exists($cache_file)) @unlink($cache_file); if(file_exists($cache_file)) FileHandler::removeFile($cache_file);
// 등록 성공후 return될 메세지 정리 // 등록 성공후 return될 메세지 정리
$this->add("module_srl", $module_args->module_srl); $this->add("module_srl", $module_args->module_srl);

View file

@ -101,7 +101,7 @@
// 캐시 검사 // 캐시 검사
if($caching_interval <1 || !file_exists($cache_file) || filemtime($cache_file) + $caching_interval*60 <= time() || filemtime($cache_file)<filemtime($path) ) { if($caching_interval <1 || !file_exists($cache_file) || filemtime($cache_file) + $caching_interval*60 <= time() || filemtime($cache_file)<filemtime($path) ) {
if(file_exists($cache_file)) @unlink($cache_file); if(file_exists($cache_file)) FileHandler::removeFile($cache_file);
// 일단 대상 파일을 읽어서 내용을 구함 // 일단 대상 파일을 읽어서 내용을 구함
ob_start(); ob_start();

View file

@ -286,10 +286,11 @@
} }
if(feof($f)) { if(feof($f)) {
@unlink('./files/cache/pointRecal.txt'); FileHandler::removeFile('./files/cache/pointRecal.txt');
$idx = $total; $idx = $total;
@rename('./files/member_extra_info/point','./files/member_extra_info/point.old'); FileHandler::rename('./files/member_extra_info/point','./files/member_extra_info/point.old');
FileHandler::removeDir('./files/member_extra_info/point.old'); FileHandler::removeDir('./files/member_extra_info/point.old');
} }
fclose($f); fclose($f);

View file

@ -183,7 +183,7 @@
$del_var = $obj->{"del_".$vars->name}; $del_var = $obj->{"del_".$vars->name};
unset($obj->{"del_".$vars->name}); unset($obj->{"del_".$vars->name});
if($del_var == 'Y') { if($del_var == 'Y') {
@unlink($module_info->{$vars->name}); FileHandler::removeFile($module_info->{$vars->name});
continue; continue;
} }

View file

@ -83,7 +83,7 @@
if( file_exists($this->cachedir.$this->cachefile) ) if( file_exists($this->cachedir.$this->cachefile) )
{ {
unlink($this->cachedir.$this->cachefile); FileHandler::removeFile($this->cachedir.$this->cachefile);
} }
$oModel = &getModel('tccommentnotify'); $oModel = &getModel('tccommentnotify');
@ -101,7 +101,7 @@
$this->sendCommentNotify($data->comment_srl); $this->sendCommentNotify($data->comment_srl);
} }
} }
unlink($lockFilePath); FileHandler::removeFile($lockFilePath);
} }
function deleteFromQueue($comment_srl) function deleteFromQueue($comment_srl)

View file

@ -31,7 +31,7 @@
if($vars->widget_sequence) { if($vars->widget_sequence) {
$cache_path = './files/cache/widget_cache/'; $cache_path = './files/cache/widget_cache/';
$cache_file = sprintf('%s%d.%s.cache', $cache_path, $vars->widget_sequence, Context::getLangType()); $cache_file = sprintf('%s%d.%s.cache', $cache_path, $vars->widget_sequence, Context::getLangType());
@unlink($cache_file); FileHandler::removeFile($cache_file);
} }
if($vars->widget_cache>0) $vars->widget_sequence = getNextSequence(); if($vars->widget_cache>0) $vars->widget_sequence = getNextSequence();
@ -50,7 +50,7 @@
$cache_path = './files/cache/widget_cache/'; $cache_path = './files/cache/widget_cache/';
$cache_file = sprintf('%s%d.%s.cache', $cache_path, $vars->widget_sequence, Context::getLangType()); $cache_file = sprintf('%s%d.%s.cache', $cache_path, $vars->widget_sequence, Context::getLangType());
@unlink($cache_file); FileHandler::removeFile($cache_file);
// 코드 출력 // 코드 출력
$this->add('widget_code', $widget_code); $this->add('widget_code', $widget_code);
@ -75,7 +75,7 @@
if($vars->widget_sequence) { if($vars->widget_sequence) {
$cache_path = './files/cache/widget_cache/'; $cache_path = './files/cache/widget_cache/';
$cache_file = sprintf('%s%d.%s.cache', $cache_path, $vars->widget_sequence, Context::getLangType()); $cache_file = sprintf('%s%d.%s.cache', $cache_path, $vars->widget_sequence, Context::getLangType());
@unlink($cache_file); FileHandler::removeFile($cache_file);
} }
if($vars->widget_cache>0) $vars->widget_sequence = getNextSequence(); if($vars->widget_cache>0) $vars->widget_sequence = getNextSequence();

View file

@ -0,0 +1,32 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="Generator" content="XE" />
<title>XE Cache Cleaner</title>
<link rel="stylesheet" href="./style.css" type="text/css" charset="UTF-8" media="all" />
</head>
<body>
<h1>XE Cache Cleaner</h1>
<hr />
<!--@if($msg)-->
<blockquote>{$msg}</blockquote>
<!--@end-->
<form action="./index.php" method="post">
<code>
<label for="db_id">{$lang->db_userid}</label>
<input type="text" id="db_id" name="id" />
</code>
<code>
<label for="db_pw">{$lang->db_password}</label>
<input type="password" id="db_pw" name="pw" />
</code>
<input type="submit" value="{$lang->cmd_reset}" class="submit"/>
</form>
</body>
</html>

View file

@ -0,0 +1,58 @@
<?php
/**
* @file tools/clear_cache.php
* @author zero <zero@zeroboard.com>
* @brief XE 캐시파일 불필요한 파일 정리
**/
/**
* @brief 기본적인 상수 선언, 웹에서 직접 호출되는 것을 막기 위해 체크하는 상수 선언
**/
define('__ZBXE__', true);
/**
* @brief 필요한 설정 파일들을 include
**/
require_once('../../config/config.inc.php');
// id/ password 구함
$id = $_POST['id'];
$pw = $_POST['pw'];
// 저장되어 있는 비밀번호와 비교
$oContext = &Context::getInstance();
$oContext->init();
$db_info = $oContext->getDBInfo();
// install 모듈의 언어파일을 로드
Context::loadLang(_XE_PATH_.'modules/install/lang');
// 설치가 되어 있지 않을 경우
if(!Context::isInstalled()) {
$msg = Context::getLang('msg_db_not_setted');
// 인증 정보가 없을 경우
} elseif(!isset($id) || !isset($pw)) {
// 입력된 정보와 저장된 정보 비교
} else if($id !== $db_info->db_userid || $pw !== $db_info->db_password) {
if($id !== $db_info->db_userid) $msg = sprintf($lang->filter->equalto, Context::getLang('user_id'));
else $msg = sprintf($lang->filter->equalto, Context::getLang('password'));
// 캐시 파일 제거
} else if($id === $db_info->db_userid && $pw === $db_info->db_password) {
$oAdminController = &getAdminController('admin');
$oAdminController->procAdminRecompileCacheFile();
$msg = Context::getLang('success_reset');
}
Context::set('msg', $msg);
$oTemplate = &TemplateHandler::getInstance();
print $oTemplate->compile('./tools/cache_cleaner/','form');
?>

View file

@ -0,0 +1,10 @@
h1 { font-size:1.5em; font-family:tahoma; margin:0; padding:0; }
hr { border:none; border-top:1px solid #555555; border-bottom:1px solid #888888; margin:0; margin-bottom:10px; padding:0; }
blockquote { border:1px solid red; color:red; width:280px; margin:0 0 10px 0; padding:10px;}
code { display:block; clear:both; margin-bottom:10px;}
code label { float:left; display:block; width:150px; }
code input { display:block; width:150px; border:1px solid #AAAAAA; }
input.submit { width:300px; border:1px solid #AAAAAA;}