mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-17 18:29:55 +09:00
파일 업로드 용량 체크시 관리자일 경우 ini에서 직접 불러와서 처리하는데 이때 단위 처리가 빠져있어 무조건 MB 단위로 처리되는 버그 수정 스킨과의 호환성을 위해 1048576으로 나눠서 MB 단위로 처리되게 수정하였습니다.
174 lines
9.8 KiB
PHP
174 lines
9.8 KiB
PHP
<?php
|
|
/* Copyright (C) NAVER <http://www.navercorp.com> */
|
|
/**
|
|
* High class of the file module
|
|
* @author NAVER (developers@xpressengine.com)
|
|
*/
|
|
class file extends ModuleObject
|
|
{
|
|
/**
|
|
* Implement if additional tasks are necessary when installing
|
|
*
|
|
* @return Object
|
|
*/
|
|
function moduleInstall()
|
|
{
|
|
// Register action forward (to use in administrator mode)
|
|
$oModuleController = getController('module');
|
|
|
|
// Save the default settings for attachments
|
|
$config = new stdClass;
|
|
$config->allowed_filesize = '2';
|
|
$config->allowed_attach_size = '2';
|
|
$config->allowed_filetypes = '*.*';
|
|
$oModuleController->insertModuleConfig('file', $config);
|
|
// Generate a directory for the file module
|
|
FileHandler::makeDir('./files/attach/images');
|
|
FileHandler::makeDir('./files/attach/binaries');
|
|
// 2007. 10. 17 Create a trigger to insert, update, delete documents and comments
|
|
$oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerCheckAttached', 'before');
|
|
$oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerAttachFiles', 'after');
|
|
$oModuleController->insertTrigger('document.updateDocument', 'file', 'controller', 'triggerCheckAttached', 'before');
|
|
$oModuleController->insertTrigger('document.updateDocument', 'file', 'controller', 'triggerAttachFiles', 'after');
|
|
$oModuleController->insertTrigger('document.deleteDocument', 'file', 'controller', 'triggerDeleteAttached', 'after');
|
|
$oModuleController->insertTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before');
|
|
$oModuleController->insertTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after');
|
|
$oModuleController->insertTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before');
|
|
$oModuleController->insertTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after');
|
|
$oModuleController->insertTrigger('comment.deleteComment', 'file', 'controller', 'triggerCommentDeleteAttached', 'after');
|
|
// 2009. 6. 9 Delete all the attachements when auto-saved document is deleted
|
|
$oModuleController->insertTrigger('editor.deleteSavedDoc', 'file', 'controller', 'triggerDeleteAttached', 'after');
|
|
// 2007. 10. 17 Create a trigger to delete all the attachements when the module is deleted
|
|
$oModuleController->insertTrigger('module.deleteModule', 'file', 'controller', 'triggerDeleteModuleFiles', 'after');
|
|
// 2007. 10. 19 Call a trigger to set up the file permissions before displaying
|
|
$oModuleController->insertTrigger('module.dispAdditionSetup', 'file', 'view', 'triggerDispFileAdditionSetup', 'before');
|
|
|
|
return new Object();
|
|
}
|
|
|
|
/**
|
|
* A method to check if successfully installed
|
|
*
|
|
* @return bool
|
|
*/
|
|
function checkUpdate()
|
|
{
|
|
$oDB = &DB::getInstance();
|
|
$oModuleModel = getModel('module');
|
|
// 2007. 10. 17 Create a trigger to insert, update, delete documents and comments
|
|
if(!$oModuleModel->getTrigger('document.insertDocument', 'file', 'controller', 'triggerCheckAttached', 'before')) return true;
|
|
if(!$oModuleModel->getTrigger('document.insertDocument', 'file', 'controller', 'triggerAttachFiles', 'after')) return true;
|
|
if(!$oModuleModel->getTrigger('document.updateDocument', 'file', 'controller', 'triggerCheckAttached', 'before')) return true;
|
|
if(!$oModuleModel->getTrigger('document.updateDocument', 'file', 'controller', 'triggerAttachFiles', 'after')) return true;
|
|
if(!$oModuleModel->getTrigger('document.deleteDocument', 'file', 'controller', 'triggerDeleteAttached', 'after')) return true;
|
|
if(!$oModuleModel->getTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before')) return true;
|
|
if(!$oModuleModel->getTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after')) return true;
|
|
if(!$oModuleModel->getTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before')) return true;
|
|
if(!$oModuleModel->getTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after')) return true;
|
|
if(!$oModuleModel->getTrigger('comment.deleteComment', 'file', 'controller', 'triggerCommentDeleteAttached', 'after')) return true;
|
|
// 2009. 6. 9 Delete all the attachements when auto-saved document is deleted
|
|
if(!$oModuleModel->getTrigger('editor.deleteSavedDoc', 'file', 'controller', 'triggerDeleteAttached', 'after')) return true;
|
|
// 2007. 10. 17 Create a trigger to delete all the attachements when the module is deleted
|
|
if(!$oModuleModel->getTrigger('module.deleteModule', 'file', 'controller', 'triggerDeleteModuleFiles', 'after')) return true;
|
|
// 2007. 10. 19 Call a trigger to set up the file permissions before displaying
|
|
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'file', 'view', 'triggerDispFileAdditionSetup', 'before')) return true;
|
|
// A column to determine a target type
|
|
if(!$oDB->isColumnExists('files', 'upload_target_type')) return true;
|
|
|
|
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
|
|
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'file', 'controller', 'triggerCopyModule', 'after')) return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* Execute update
|
|
*
|
|
* @return Object
|
|
*/
|
|
function moduleUpdate()
|
|
{
|
|
$oDB = &DB::getInstance();
|
|
$oModuleModel = getModel('module');
|
|
$oModuleController = getController('module');
|
|
// 2007. 10. 17 Create a trigger to insert, update, delete documents and comments
|
|
if(!$oModuleModel->getTrigger('document.insertDocument', 'file', 'controller', 'triggerCheckAttached', 'before'))
|
|
$oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerCheckAttached', 'before');
|
|
|
|
if(!$oModuleModel->getTrigger('document.insertDocument', 'file', 'controller', 'triggerAttachFiles', 'after'))
|
|
$oModuleController->insertTrigger('document.insertDocument', 'file', 'controller', 'triggerAttachFiles', 'after');
|
|
|
|
if(!$oModuleModel->getTrigger('document.updateDocument', 'file', 'controller', 'triggerCheckAttached', 'before'))
|
|
$oModuleController->insertTrigger('document.updateDocument', 'file', 'controller', 'triggerCheckAttached', 'before');
|
|
|
|
if(!$oModuleModel->getTrigger('document.updateDocument', 'file', 'controller', 'triggerAttachFiles', 'after'))
|
|
$oModuleController->insertTrigger('document.updateDocument', 'file', 'controller', 'triggerAttachFiles', 'after');
|
|
|
|
if(!$oModuleModel->getTrigger('document.deleteDocument', 'file', 'controller', 'triggerDeleteAttached', 'after'))
|
|
$oModuleController->insertTrigger('document.deleteDocument', 'file', 'controller', 'triggerDeleteAttached', 'after');
|
|
|
|
if(!$oModuleModel->getTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before'))
|
|
$oModuleController->insertTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before');
|
|
|
|
if(!$oModuleModel->getTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after'))
|
|
$oModuleController->insertTrigger('comment.insertComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after');
|
|
|
|
if(!$oModuleModel->getTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before'))
|
|
$oModuleController->insertTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentCheckAttached', 'before');
|
|
|
|
if(!$oModuleModel->getTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after'))
|
|
$oModuleController->insertTrigger('comment.updateComment', 'file', 'controller', 'triggerCommentAttachFiles', 'after');
|
|
|
|
if(!$oModuleModel->getTrigger('comment.deleteComment', 'file', 'controller', 'triggerCommentDeleteAttached', 'after'))
|
|
$oModuleController->insertTrigger('comment.deleteComment', 'file', 'controller', 'triggerCommentDeleteAttached', 'after');
|
|
// 2009. 6. 9 Delete all the attachements when auto-saved document is deleted
|
|
if(!$oModuleModel->getTrigger('editor.deleteSavedDoc', 'file', 'controller', 'triggerDeleteAttached', 'after'))
|
|
$oModuleController->insertTrigger('editor.deleteSavedDoc', 'file', 'controller', 'triggerDeleteAttached', 'after');
|
|
// 2007. 10. 17 Create a trigger to delete all the attachements when the module is deleted
|
|
if(!$oModuleModel->getTrigger('module.deleteModule', 'file', 'controller', 'triggerDeleteModuleFiles', 'after'))
|
|
$oModuleController->insertTrigger('module.deleteModule', 'file', 'controller', 'triggerDeleteModuleFiles', 'after');
|
|
// 2007. 10. 19 Call a trigger to set up the file permissions before displaying
|
|
if(!$oModuleModel->getTrigger('module.dispAdditionSetup', 'file', 'view', 'triggerDispFileAdditionSetup', 'before'))
|
|
$oModuleController->insertTrigger('module.dispAdditionSetup', 'file', 'view', 'triggerDispFileAdditionSetup', 'before');
|
|
// A column to determine a target type
|
|
if(!$oDB->isColumnExists('files', 'upload_target_type')) $oDB->addColumn('files', 'upload_target_type', 'char', '3');
|
|
|
|
// 2012. 08. 29 Add a trigger to copy additional setting when the module is copied
|
|
if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'file', 'controller', 'triggerCopyModule', 'after'))
|
|
{
|
|
$oModuleController->insertTrigger('module.procModuleAdminCopyModule', 'file', 'controller', 'triggerCopyModule', 'after');
|
|
}
|
|
|
|
return new Object(0, 'success_updated');
|
|
}
|
|
|
|
/**
|
|
* Re-generate the cache file
|
|
*
|
|
* @return Object
|
|
*/
|
|
function recompileCache()
|
|
{
|
|
}
|
|
|
|
/**
|
|
* Change value from human readable to byte unit
|
|
*
|
|
* @param string $size_str Size string
|
|
* @return int The byte value for input
|
|
*/
|
|
function _changeBytes($size_str)
|
|
{
|
|
$unit = strtoupper(substr($size_str, -1));
|
|
$size_str = (int)$size_str;
|
|
switch ($unit)
|
|
{
|
|
case 'G': $size_str *= 1024;
|
|
case 'M': $size_str *= 1024;
|
|
case 'K': $size_str *= 1024;
|
|
}
|
|
return $size_str;
|
|
}
|
|
}
|
|
/* End of file file.class.php */
|
|
/* Location: ./modules/file/file.class.php */
|