*/ /** * documentAdminView class * Document admin view of the module class * * @author NAVER (developers@xpressengine.com) * @package /modules/document * @version 0.1 */ class DocumentAdminView extends Document { /** * Initialization * @return void */ function init() { // check current location in admin menu $oModuleModel = getModel('module'); $info = $oModuleModel->getModuleActionXml('document'); foreach($info->menu AS $key => $menu) { if(in_array($this->act, $menu->acts)) { Context::set('currentMenu', $key); break; } } } /** * Display a list(administrative) * @return void */ function dispDocumentAdminList() { // option to get a list $args = new stdClass(); $args->page = Context::get('page'); // /< Page $args->list_count = 30; // /< the number of posts to display on a single page $args->page_count = 5; // /< the number of pages that appear in the page navigation $args->search_target = Context::get('search_target'); // /< search (title, contents ...) $args->search_keyword = Context::get('search_keyword'); // /< keyword to search if ($args->search_target === 'member_srl') { $logged_info = Context::get('logged_info'); if ($logged_info->is_admin === 'Y' || intval($logged_info->member_srl) === intval($args->search_keyword)) { $args->member_srl = array(intval($args->search_keyword), intval($args->search_keyword) * -1); unset($args->search_target, $args->search_keyword); } } $args->sort_index = 'list_order'; // /< sorting value $args->module_srl = Context::get('module_srl'); $args->statusList = []; $args->use_division = false; // get a list $columnList = array('document_srl', 'module_srl', 'category_srl', 'member_srl', 'title', 'nick_name', 'comment_count', 'trackback_count', 'readed_count', 'voted_count', 'blamed_count', 'regdate', 'ipaddress', 'status'); $output = DocumentModel::getDocumentList($args, false, true, $columnList); // get Status name list $statusNameList = DocumentModel::getStatusNameList(); // Set values of document_model::getDocumentList() objects for a template Context::set('total_count', $output->total_count); Context::set('total_page', $output->total_page); Context::set('page', $output->page); Context::set('document_list', $output->data); Context::set('status_name_list', $statusNameList); Context::set('page_navigation', $output->page_navigation); // set a search option used in the template $count_search_option = count($this->search_option); for($i=0;$i<$count_search_option;$i++) { $search_option[$this->search_option[$i]] = lang($this->search_option[$i]); } Context::set('search_option', $search_option); // Module List $module_list = []; $mod_output = executeQueryArray('document.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); // Get anonymous nicknames $anonymous_member_srls = array(); $member_nick_name = array(); foreach($output->data as $oDocument) { if($oDocument->get('member_srl') < 0) { $anonymous_member_srls[] = abs($oDocument->get('member_srl')); } } if($anonymous_member_srls) { $member_args = new stdClass(); $member_args->member_srl = $anonymous_member_srls; $member_output = executeQueryArray('member.getMembers', $member_args); if($member_output) { foreach($member_output->data as $member) { $member_nick_name[$member->member_srl] = $member->nick_name; } } } Context::set('member_nick_name', $member_nick_name); // Other search options Context::set('search_target', escape(Context::get('search_target'), false)); Context::set('search_keyword', escape(Context::get('search_keyword'), false)); Context::set('is_secret', Context::get('is_secret') === 'Y' ? 'Y' : 'N'); // Specify a template $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('document_list'); } /** * Set a document module * @return void */ function dispDocumentAdminConfig() { $oDocumentModel = getModel('document'); $config = $oDocumentModel->getDocumentConfig(); Context::set('config',$config); $oModuleModel = getModel('module'); $pcIconSkinList = $oModuleModel->getSkins($this->module_path . 'tpl', 'icons'); $mobileIconSkinList = $oModuleModel->getSkins($this->module_path . 'tpl', 'micons'); Context::set('pcIconSkinList', $pcIconSkinList); Context::set('mobileIconSkinList', $mobileIconSkinList); // Set the template file $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('document_config'); } /** * Display a report list on the admin page * @return void */ function dispDocumentAdminDeclared() { // get Status name list $oDocumentModel = getModel('document'); $statusNameList = $oDocumentModel->getStatusNameList(); // option for a list $args = new stdClass(); $args->page = intval(Context::get('page')) ?: 1; // /< Page $args->list_count = 20; // /< the number of posts to display on a single page $args->page_count = 10; // /< the number of pages that appear in the page navigation $args->order_type = strtolower(Context::get('order_type')) === 'asc' ? 'asc' : 'desc'; // select sort method $sort_index = Context::get('sort_index'); if (!in_array($sort_index, array('declared_latest', 'declared_count', 'regdate'))) { $sort_index = 'declared_latest'; } Context::set('sort_index', $sort_index); // get latest declared list if ($sort_index === 'declared_latest') { $declared_output = executeQueryArray('document.getDeclaredLatest', $args); if ($declared_output->data && count($declared_output->data)) { $args->document_srls = array_map(function($item) { return $item->document_srl; }, $declared_output->data); unset($args->page); $documents = executeQueryArray('document.getDocuments', $args); $document_list = array(); foreach ($declared_output->data as $key => $declared_info) { foreach ($documents->data as $document) { if ($document->document_srl == $declared_info->document_srl) { $document->declared_count = $declared_info->declared_count; $document->latest_declared = $declared_info->latest_declared; $document_list[$key] = new documentItem(); $document_list[$key]->setAttribute($document); break; } } } $declared_output->data = $document_list; } } else { if ($sort_index === 'declared_count') { $args->sort_index = 'document_declared.declared_count'; } else { $args->sort_index = 'documents.regdate'; } $declared_output = executeQueryArray('document.getDeclaredList', $args); if ($declared_output->data && count($declared_output->data)) { $args->document_srls = array_map(function($item) { return $item->document_srl; }, $declared_output->data); $args->list_count = 0; unset($args->page); $declared_latest = executeQueryArray('document.getDeclaredLatest', $args); $document_list = array(); foreach ($declared_output->data as $key => $document) { foreach ($declared_latest->data as $key => $declared_info) { if ($document->document_srl == $declared_info->document_srl) { $document->declared_count = $declared_info->declared_count; $document->latest_declared = $declared_info->latest_declared; $document_list[$key] = new documentItem(); $document_list[$key]->setAttribute($document); } } } $declared_output->data = $document_list; } } // Set values of document_model::getDocumentList() objects for a template Context::set('total_count', $declared_output->total_count); Context::set('total_page', $declared_output->total_page); Context::set('page', $declared_output->page); Context::set('document_list', $declared_output->data); Context::set('page_navigation', $declared_output->page_navigation); Context::set('status_name_list', $statusNameList); // Set the template $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('declared_list'); } /** * Display a reported post and log of reporting * @return void */ function dispDocumentAdminDeclaredLogByDocumentSrl() { // option for a list $args = new stdClass; $args->page = Context::get('page'); // /< Page $args->list_count = 30; // /< the number of posts to display on a single page $args->page_count = 10; // /< the number of pages that appear in the page navigation $args->document_srl = intval(Context::get('target_srl')); // get Status name list $oDocumentModel = getModel('document'); $oMemberModel = getModel('member'); $oDocument = $oDocumentModel->getDocument($args->document_srl); $declared_output = executeQuery('document.getDeclaredLogByDocumentSrl', $args); if($declared_output->data && count($declared_output->data)) { $reporter_list = array(); foreach($declared_output->data as $key => $log) { $reporter_list[$log->member_srl] = $oMemberModel->getMemberInfoByMemberSrl($log->member_srl); } } // Set values of document_model::getDocumentList() objects for a template Context::set('total_count', $declared_output->total_count); Context::set('total_page', $declared_output->total_page); Context::set('page', $declared_output->page); Context::set('declare_log', $declared_output->data); Context::set('reporter_list', $reporter_list); Context::set('declared_document', $oDocument); Context::set('page_navigation', $declared_output->page_navigation); // Set the template $this->setLayoutFile('popup_layout'); $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('declared_log'); } /** * Display a alias list on the admin page * @return void */ function dispDocumentAdminAlias() { $args = new stdClass(); $args->document_srl = Context::get('document_srl'); if(!$args->document_srl) return $this->dispDocumentAdminList(); $oModel = getModel('document'); $oDocument = $oModel->getDocument($args->document_srl); if(!$oDocument->isExists()) return $this->dispDocumentAdminList(); Context::set('oDocument', $oDocument); $output = executeQueryArray('document.getAliases', $args); if(!$output->data) { $aliases = array(); } else { $aliases = $output->data; } Context::set('aliases', $aliases); $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('document_alias'); } /** * Display a trash list on the admin page * @return void */ function dispDocumentAdminTrashList() { // options for a list $args = new stdClass(); $args->page = Context::get('page'); // /< Page $args->list_count = 30; // /< the number of posts to display on a single page $args->page_count = 10; // /< the number of pages that appear in the page navigation $args->sort_index = 'list_order'; // /< sorting values $args->order_type = 'desc'; // /< sorting values by order $args->module_srl = Context::get('module_srl'); // get a list $oDocumentAdminModel = getAdminModel('document'); $output = $oDocumentAdminModel->getDocumentTrashList($args); // Set values of document_admin_model::getDocumentTrashList() objects for a template Context::set('total_count', $output->total_count); Context::set('total_page', $output->total_page); Context::set('page', $output->page); Context::set('document_list', $output->data); Context::set('page_navigation', $output->page_navigation); // set the template $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('document_trash_list'); } } /* End of file document.admin.view.php */ /* Location: ./modules/document/document.admin.view.php */