rhymix/modules/file/file.admin.view.php
YJSoft 7de923f9a3 php.ini의 파일 업로드 용량을 잘못 불러오는 문제 수정
파일 업로드 용량 체크시 관리자일 경우 ini에서 직접 불러와서 처리하는데 이때 단위 처리가 빠져있어 무조건 MB 단위로 처리되는
버그 수정
스킨과의 호환성을 위해 1048576으로 나눠서 MB 단위로 처리되게 수정하였습니다.
2015-01-12 16:22:46 +09:00

230 lines
6.7 KiB
PHP

<?php
/* Copyright (C) NAVER <http://www.navercorp.com> */
/**
* Admin view of the module class file
* @author NAVER (developers@xpressengine.com)
*/
class fileAdminView extends file
{
/**
* Initialization
* @return void
*/
function init()
{
}
/**
* Display output list (for administrator)
*
* @return Object
*/
function dispFileAdminList()
{
// Options to get a list
$args = new stdClass();
$args->page = Context::get('page'); // /< Page
$args->list_count = 30; // /< Number of documents that appear on a single page
$args->page_count = 10; // /< Number of pages that appear in the page navigation
$args->sort_index = 'file_srl'; // /< Sorting values
$args->isvalid = Context::get('isvalid');
$args->module_srl = Context::get('module_srl');
// Get a list
$oFileAdminModel = getAdminModel('file');
$columnList = array('file_srl', 'upload_target_srl', 'upload_target_type', 'sid', 'module_srl'
, 'source_filename', 'isvalid', 'file_size', 'download_count', 'files.regdate', 'ipaddress', 'member.member_srl', 'member.nick_name', 'uploaded_filename');
$output = $oFileAdminModel->getFileList($args, $columnList);
// Get the document for looping a list
if($output->data)
{
$oCommentModel = getModel('comment');
$oDocumentModel = getModel('document');
$oModuleModel = getModel('module');
$file_list = array();
$document_list = array();
$comment_list = array();
$module_list= array();
$doc_srls = array();
$com_srls = array();
$mod_srls= array();
foreach($output->data as $file)
{
$file_srl = $file->file_srl;
$target_srl = $file->upload_target_srl;
$file_update_args = new stdClass();
$file_update_args->file_srl = $file_srl;
// Find and update if upload_target_type doesn't exist
if(!$file->upload_target_type)
{
// Pass if upload_target_type is already found
if($document_list[$target_srl])
{
$file->upload_target_type = 'doc';
}
else if($comment_list[$target_srl])
{
$file->upload_target_type = 'com';
}
else if($module_list[$target_srl])
{
$file->upload_target_type = 'mod';
}
else
{
// document
$document = $oDocumentModel->getDocument($target_srl);
if($document->isExists())
{
$file->upload_target_type = 'doc';
$file_update_args->upload_target_type = $file->upload_target_type;
$document_list[$target_srl] = $document;
}
// comment
if(!$file->upload_target_type)
{
$comment = $oCommentModel->getComment($target_srl);
if($comment->isExists())
{
$file->upload_target_type = 'com';
$file->target_document_srl = $comment->document_srl;
$file_update_args->upload_target_type = $file->upload_target_type;
$comment_list[$target_srl] = $comment;
$doc_srls[] = $comment->document_srl;
}
}
// module (for a page)
if(!$file->upload_target_type)
{
$module = $oModuleModel->getModulesInfo($target_srl);
if($module)
{
$file->upload_target_type = 'mod';
$file_update_args->upload_target_type = $file->upload_target_type;
$module_list[$module->comment_srl] = $module;
}
}
if($file_update_args->upload_target_type)
{
executeQuery('file.updateFileTargetType', $file_update_args);
}
}
// Check if data is already obtained
for($i = 0; $i < $com_srls_count; ++$i)
{
if($comment_list[$com_srls[$i]]) delete($com_srls[$i]);
}
for($i = 0; $i < $doc_srls_count; ++$i)
{
if($document_list[$doc_srls[$i]]) delete($doc_srls[$i]);
}
for($i = 0; $i < $mod_srls_count; ++$i)
{
if($module_list[$mod_srls[$i]]) delete($mod_srls[$i]);
}
}
if($file->upload_target_type)
{
if(!in_array($file->upload_target_srl, ${$file->upload_target_type.'_srls'}))
{
${$file->upload_target_type.'_srls'}[] = $target_srl;
}
}
$file_list[$file_srl] = $file;
$mod_srls[] = $file->module_srl;
}
// Remove duplication
$doc_srls = array_unique($doc_srls);
$com_srls = array_unique($com_srls);
$mod_srls = array_unique($mod_srls);
// Comment list
$com_srls_count = count($com_srls);
if($com_srls_count)
{
$comment_output = $oCommentModel->getComments($com_srls);
foreach($comment_output as $comment)
{
$comment_list[$comment->comment_srl] = $comment;
$doc_srls[] = $comment->document_srl;
}
}
// Document list
$doc_srls_count = count($doc_srls);
if($doc_srls_count)
{
$document_output = $oDocumentModel->getDocuments($doc_srls);
if(is_array($document_output))
{
foreach($document_output as $document)
{
$document_list[$document->document_srl] = $document;
}
}
}
// Module List
$mod_srls_count = count($mod_srls);
if($mod_srls_count)
{
$columnList = array('module_srl', 'mid', 'browser_title');
$module_output = $oModuleModel->getModulesInfo($mod_srls, $columnList);
if($module_output && is_array($module_output))
{
foreach($module_output as $module)
{
$module_list[$module->module_srl] = $module;
}
}
}
foreach($file_list as $srl => $file)
{
if($file->upload_target_type == 'com')
{
$file_list[$srl]->target_document_srl = $comment_list[$file->upload_target_srl]->document_srl;
}
}
}
Context::set('file_list', $file_list);
Context::set('document_list', $document_list);
Context::set('comment_list', $comment_list);
Context::set('module_list', $module_list);
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('page_navigation', $output->page_navigation);
// Set a template
$security = new Security();
$security->encodeHTML('file_list..');
$security->encodeHTML('module_list..');
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('file_list');
}
/**
* Set attachment information (for administrator)
*
* @return Object
*/
function dispFileAdminConfig()
{
$oFileModel = getModel('file');
$config = $oFileModel->getFileConfig();
Context::set('config',$config);
$iniPostMaxSize = $this->_changeBytes(ini_get('post_max_size'));
$iniUploadMaxSize = $this->_changeBytes(ini_get('upload_max_filesize'));
$iniMinSize = min($iniPostMaxSize, $iniUploadMaxSize);
Context::set('upload_max_filesize',$this->_changeBytes($iniMinSize / 1048576));
// Set a template file
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('adminConfig');
}
}
/* End of file file.admin.view.php */
/* Location: ./modules/file/file.admin.view.php */