rhymix/modules/file/file.admin.view.php
conory 16e44d44c7 움직이지 않는 gif도 mp4로 변환되는 문제 수정
FFmpeg 사용 불가 안내 메시지 추가
추후에 활용하기 위한 type, width, height, duration 컬럼 추가
업로드시 이미지, 오디오, 동영상 파일의 확장자가 잘못된 경우 올바른 확장자를 덧붙이는 기능 추가
2019-10-01 22:50:38 +09:00

262 lines
7.3 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', 'files.module_srl'
, 'source_filename', 'isvalid', 'file_size', 'download_count', 'files.regdate', 'files.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 && is_array(${$file->upload_target_type.'_srls'}))
{
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..');
$security->encodeHTML('search_target', 'search_keyword');
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('file_list');
}
/**
* Upload config screen
*
* @return Object
*/
function dispFileAdminUploadConfig()
{
$oFileModel = getModel('file');
$config = $oFileModel->getFileConfig();
Context::set('config', $config);
Context::set('is_ffmpeg', is_command($config->ffmpeg_command) && is_command($config->ffprobe_command));
// Set a template file
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('upload_config');
}
/**
* Download config screen
*
* @return Object
*/
function dispFileAdminDownloadConfig()
{
$oFileModel = getModel('file');
$config = $oFileModel->getFileConfig();
Context::set('config',$config);
// Set a template file
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('download_config');
}
/**
* Other config screen
*
* @return Object
*/
function dispFileAdminOtherConfig()
{
$oFileModel = getModel('file');
$config = $oFileModel->getFileConfig();
Context::set('config',$config);
// Set a template file
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('other_config');
}
}
/* End of file file.admin.view.php */
/* Location: ./modules/file/file.admin.view.php */