mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-03 16:51:40 +09:00
274 lines
8.3 KiB
PHP
274 lines
8.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
|
|
{
|
|
/**
|
|
* Display output list (for administrator)
|
|
*
|
|
* @return Object
|
|
*/
|
|
public 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 = Context::get('sort_index') ?? 'file_srl'; // /< Sorting values
|
|
$args->order_type = Context::get('order_type') ?? null;
|
|
$args->isvalid = Context::get('isvalid');
|
|
$args->module_srl = Context::get('module_srl');
|
|
// Get a list
|
|
$oFileAdminModel = getAdminModel('file');
|
|
$output = $oFileAdminModel->getFileList($args);
|
|
|
|
// 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(isset($document_list[$target_srl]))
|
|
{
|
|
$file->upload_target_type = 'doc';
|
|
}
|
|
elseif(isset($comment_list[$target_srl]))
|
|
{
|
|
$file->upload_target_type = 'com';
|
|
}
|
|
elseif(isset($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(isset($file_update_args->upload_target_type) && $file_update_args->upload_target_type)
|
|
{
|
|
executeQuery('file.updateFileTargetType', $file_update_args);
|
|
}
|
|
}
|
|
// Check if data is already obtained
|
|
foreach($com_srls as $i => $com_srl)
|
|
{
|
|
if(isset($comment_list[$com_srl])) unset($com_srls[$i]);
|
|
}
|
|
foreach($doc_srls as $i => $doc_srl)
|
|
{
|
|
if(isset($document_list[$doc_srl])) unset($doc_srls[$i]);
|
|
}
|
|
foreach($mod_srls as $i => $mod_srl)
|
|
{
|
|
if(isset($module_list[$mod_srl])) unset($mod_srls[$i]);
|
|
}
|
|
}
|
|
|
|
if (in_array($file->upload_target_type, ['doc', 'com', 'ev:doc', 'ev:com']))
|
|
{
|
|
$var = str_replace('ev:', '', $file->upload_target_type) . '_srls';
|
|
if (!in_array($target_srl, $$var))
|
|
{
|
|
$$var[] = $target_srl;
|
|
}
|
|
}
|
|
if (!in_array($file->module_srl, $mod_srls))
|
|
{
|
|
$mod_srls[] = $file->module_srl;
|
|
}
|
|
|
|
$file_list[$file_srl] = $file;
|
|
}
|
|
// 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;
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach($file_list as $srl => $file)
|
|
{
|
|
if($file->upload_target_type === 'com' || $file->upload_target_type === 'ev:com')
|
|
{
|
|
$file_list[$srl]->target_document_srl = $comment_list[$file->upload_target_srl]->document_srl;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Module list
|
|
$mod_output = executeQueryArray('comment.getModuleList');
|
|
foreach ($mod_output->data as $item)
|
|
{
|
|
$item->browser_title = Context::replaceUserLang($item->browser_title);
|
|
$module_list[$item->module_srl] = $item;
|
|
}
|
|
Context::set('module_list', $module_list);
|
|
|
|
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');
|
|
}
|
|
|
|
/**
|
|
* File edit screen
|
|
*/
|
|
public function dispFileAdminEdit()
|
|
{
|
|
$file_srl = intval(Context::get('file_srl'));
|
|
if (!$file_srl)
|
|
{
|
|
throw new Rhymix\Framework\Exceptions\InvalidRequest;
|
|
}
|
|
$file = FileModel::getFile($file_srl);
|
|
if (!$file)
|
|
{
|
|
throw new Rhymix\Framework\Exceptions\TargetNotFound;
|
|
}
|
|
|
|
$config = FileModel::getFileConfig();
|
|
Context::set('config', $config);
|
|
Context::set('file', $file);
|
|
Context::set('is_ffmpeg', function_exists('exec') && !empty($config->ffmpeg_command) && Rhymix\Framework\Storage::isExecutable($config->ffmpeg_command) && !empty($config->ffprobe_command) && Rhymix\Framework\Storage::isExecutable($config->ffprobe_command));
|
|
Context::set('is_magick', function_exists('exec') && !empty($config->magick_command) && Rhymix\Framework\Storage::isExecutable($config->magick_command));
|
|
|
|
$this->setTemplatePath($this->module_path . 'tpl');
|
|
$this->setTemplateFile('file_edit');
|
|
}
|
|
|
|
/**
|
|
* Upload config screen
|
|
*/
|
|
public function dispFileAdminUploadConfig()
|
|
{
|
|
$oFileModel = getModel('file');
|
|
$config = $oFileModel->getFileConfig();
|
|
Context::set('config', $config);
|
|
Context::set('is_ffmpeg', function_exists('exec') && !empty($config->ffmpeg_command) && Rhymix\Framework\Storage::isExecutable($config->ffmpeg_command) && !empty($config->ffprobe_command) && Rhymix\Framework\Storage::isExecutable($config->ffprobe_command));
|
|
Context::set('is_magick', function_exists('exec') && !empty($config->magick_command) && Rhymix\Framework\Storage::isExecutable($config->magick_command));
|
|
Context::set('is_exec_available', function_exists('exec'));
|
|
|
|
// Set a template file
|
|
$this->setTemplatePath($this->module_path.'tpl');
|
|
$this->setTemplateFile('upload_config');
|
|
}
|
|
|
|
/**
|
|
* Download config screen
|
|
*/
|
|
public 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
|
|
*/
|
|
public 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 */
|