*/ /** * documentView class * View class of the module document * * @author NAVER (developers@xpressengine.com) * @package /modules/document * @version 0.1 */ class DocumentView extends Document { /** * Initialization * @return void */ function init() { } /** * Document printing * I make it out to find the geulman;; * @return void|Object */ function dispDocumentPrint() { // Bring a list of variables needed to implement $document_srl = Context::get('document_srl'); // Creates an object for displaying the selected document $oDocument = DocumentModel::getDocument($document_srl); if(!$oDocument->isExists()) throw new Rhymix\Framework\Exceptions\TargetNotFound; // Check permissions if(!$oDocument->isAccessible(true)) throw new Rhymix\Framework\Exceptions\NotPermitted; // Information setting module //Context::set('module_info', $module_info); //module_info not use in UI // Browser title settings Context::setBrowserTitle($oDocument->getTitleText()); Context::set('oDocument', $oDocument); Context::set('layout','none'); $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('print_page'); } /** * Preview * @return void */ function dispDocumentPreview() { if(!Rhymix\Framework\Security::checkCSRF()) { throw new Rhymix\Framework\Exceptions\SecurityViolation; } $content = (string)Context::get('content'); if (Context::get('logged_info')->is_admin !== 'Y') { $content = Rhymix\Framework\Filters\HTMLFilter::clean($content); } // Editor converter $obj = new stdClass; $obj->content = $content; $obj->module_srl = ModuleModel::getModuleInfoByMid(Context::get('mid'))->module_srl; $content = getModel('editor')->converter($obj, 'document'); $content = sprintf('
%s
', Context::get('logged_info')->member_srl, $content); Context::set('content', $content); $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('preview_page'); Context::set('layout', 'none'); } /** * Selected by the administrator for the document management * @return void|Object */ function dispDocumentManageDocument() { if(!Context::get('is_logged')) throw new Rhymix\Framework\Exceptions\NotPermitted; // Taken from a list of selected sessions $document_srl_list = array(); $flag_list = $_SESSION['document_management'] ?? []; if(is_array($flag_list) && count($flag_list)) { foreach($flag_list as $key => $val) { if(!is_bool($val)) continue; $document_srl_list[] = $key; } } if(count($document_srl_list)) { $document_list = DocumentModel::getDocuments($document_srl_list); } else { $document_list = array(); } Context::set('document_list', $document_list); // Set target module info $target_mid = Context::getRequestVars()->mid ?? ''; $module_srl = intval(Context::get('module_srl')); // if target mid is provided if($target_mid && $target_mid === Context::get('mid')) { $module_info = ModuleModel::getModuleInfoByMid($target_mid); $module_srl = $module_info ? $module_info->module_srl : 0; } // if module_srl is provided instead of target_mid (legacy) elseif($module_srl > 0) { $module_info = ModuleModel::getModuleInfoByModuleSrl($module_srl); $module_srl = $module_info ? $module_info->module_srl : 0; } // if no module info is provided else { // set module_srl if all documents has one common module_srl $document_module_srl_list = array_unique(array_map(function($document) { return $document->get('module_srl'); }, $document_list)); if(count($document_module_srl_list) == 1) { $module_srl = array_first($document_module_srl_list); } $module_info = ModuleModel::getModuleInfoByModuleSrl($module_srl); $module_srl = $module_info ? $module_info->module_srl : 0; } Context::set('module_srl', $module_srl); Context::set('mid', $module_info ? $module_info->mid : ''); Context::set('browser_title', $module_info ? $module_info->browser_title : ''); // Select Pop-up layout $this->setLayoutPath('./common/tpl'); $this->setLayoutFile('popup_layout'); $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('checked_list'); } /** * Trigger method. * Additional information realte to document setting * @param string $obj * @return Object */ function triggerDispDocumentAdditionSetup(&$obj) { $current_module_srl = Context::get('module_srl'); $current_module_srls = Context::get('module_srls'); if(!$current_module_srl && !$current_module_srls) { // Get information of the current module $current_module_info = Context::get('current_module_info'); $current_module_srl = $current_module_info->module_srl; if(!$current_module_srl) return new BaseObject(); } if($current_module_srl) { $document_config = ModuleModel::getModulePartConfig('document', $current_module_srl); } if(!isset($document_config)) { $document_config = new stdClass(); } if(!isset($document_config->use_history)) { $document_config->use_history = 'N'; } if(!isset($document_config->use_vote_up)) { $document_config->use_vote_up = 'Y'; } if(!isset($document_config->use_vote_down)) { $document_config->use_vote_down = 'Y'; } if(!isset($document_config->allow_vote_from_same_ip)) { $document_config->allow_vote_from_same_ip = 'N'; } if(!isset($document_config->allow_declare_from_same_ip)) { $document_config->allow_declare_from_same_ip = 'N'; } if ($current_module_srl) { $module_info = ModuleModel::getModuleInfoByModuleSrl($current_module_srl); if (!isset($document_config->allow_vote_cancel)) { $document_config->allow_vote_cancel = (($module_info->cancel_vote ?? 'N') === 'Y') ? 'Y' : 'N'; } if (!isset($document_config->allow_vote_non_member)) { $document_config->allow_vote_non_member = (($module_info->non_login_vote ?? 'N') === 'Y') ? 'Y' : 'N'; } if (!isset($document_config->allow_declare_cancel)) { $document_config->allow_declare_cancel = (($module_info->cancel_vote ?? 'N') === 'Y') ? 'Y' : 'N'; } } Context::set('document_config', $document_config); $oTemplate = TemplateHandler::getInstance(); $tpl = $oTemplate->compile($this->module_path.'tpl', 'document_module_config'); $obj = $tpl . $obj; return new BaseObject(); } /** * Document temp saved list * @return void */ function dispTempSavedList() { $this->setLayoutFile('popup_layout'); // A message appears if the user is not logged-in if(!$this->user->member_srl) { throw new Rhymix\Framework\Exceptions\MustLogin; } // Get the saved document (module_srl is set to member_srl instead) $logged_info = Context::get('logged_info'); $args = new stdClass(); $args->member_srl = $logged_info->member_srl; $args->statusList = array($this->getConfigStatus('temp')); $args->page = (int)Context::get('page') ?: 1; $args->list_count = 10; $output = DocumentModel::getDocumentList($args, true); 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); $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('saved_list_popup'); } /** * Report an improper post * @return void */ function dispDocumentDeclare() { $this->setLayoutFile('popup_layout'); $document_srl = Context::get('target_srl'); // A message appears if the user is not logged-in if(!$this->user->member_srl) { throw new Rhymix\Framework\Exceptions\MustLogin; } // Creates an object for displaying the selected document $oDocument = DocumentModel::getDocument($document_srl, false, false); if(!$oDocument->isExists()) { throw new Rhymix\Framework\Exceptions\TargetNotFound; } // Check permissions if(!$oDocument->isAccessible(true)) { throw new Rhymix\Framework\Exceptions\NotPermitted; } // Browser title settings Context::set('target_document', $oDocument); Context::set('target_srl', $document_srl); $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('declare_document'); } } /* End of file document.view.php */ /* Location: ./modules/document/document.view.php */