diff --git a/modules/document/conf/module.xml b/modules/document/conf/module.xml index 1ec724c13..66607d25c 100644 --- a/modules/document/conf/module.xml +++ b/modules/document/conf/module.xml @@ -1,71 +1,73 @@ - + - - - + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - + + + + + + + + + - - + + - - . - - - - - - + + . + + + + + + - - - - - + + + + + + - - + + - - - - - - + + + + + + - - - - + + + + - - - - - - - - + + + + + + + + Document @@ -81,4 +83,4 @@ Document - + \ No newline at end of file diff --git a/modules/document/document.admin.view.php b/modules/document/document.admin.view.php index b0ab9df3d..4be7e52b5 100644 --- a/modules/document/document.admin.view.php +++ b/modules/document/document.admin.view.php @@ -161,6 +161,53 @@ class documentAdminView extends document $this->setTemplateFile('declared_list'); } + /** + * Display a report list on the admin page + * @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'); + $statusNameList = $oDocumentModel->getStatusNameList(); + $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); + Context::set('status_name_list', $statusNameList); + + // 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 diff --git a/modules/document/document.class.php b/modules/document/document.class.php index 1eba9935e..278f540f4 100644 --- a/modules/document/document.class.php +++ b/modules/document/document.class.php @@ -124,6 +124,9 @@ class document extends ModuleObject // 2012. 08. 29 Add a trigger to copy additional setting when the module is copied if(!$oModuleModel->getTrigger('module.procModuleAdminCopyModule', 'document', 'controller', 'triggerCopyModule', 'after')) return true; + // 2016. 1. 27: Add a column(declare_message) for report + if(!$oDB->isColumnExists("document_declared_log","declare_message")) return true; + return false; } @@ -320,6 +323,12 @@ class document extends ModuleObject $oModuleController->insertTrigger('module.procModuleAdminCopyModule', 'document', 'controller', 'triggerCopyModule', 'after'); } + // 2016. 1. 27: Add a column(declare_message) for report + if(!$oDB->isColumnExists("document_declared_log","declare_message")) + { + $oDB->addColumn('document_declared_log',"declare_message","text"); + } + return new Object(0,'success_updated'); } diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 2a8c8e55e..16abc0128 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -192,12 +192,18 @@ class documentController extends document */ function procDocumentDeclare() { - if(!Context::get('is_logged')) return new Object(-1, 'msg_invalid_request'); + if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged'); $document_srl = Context::get('target_srl'); + $declare_message = Context::get('declare_message'); if(!$document_srl) return new Object(-1, 'msg_invalid_request'); - return $this->declaredDocument($document_srl); + if(Context::get('success_return_url')) + { + $this->setRedirectUrl(Context::get('success_return_url')); + } + + return $this->declaredDocument($document_srl, $declare_message); } /** @@ -1359,9 +1365,10 @@ class documentController extends document /** * Report posts * @param int $document_srl + * @param string $declare_message * @return void|Object */ - function declaredDocument($document_srl) + function declaredDocument($document_srl, $declare_message = '') { // Fail if session information already has a reported document if($_SESSION['declared_document'][$document_srl]) return new Object(-1, 'failed_declared'); @@ -1421,6 +1428,7 @@ class documentController extends document } $args->document_srl = $document_srl; + $args->declare_message = trim(htmlspecialchars($declare_message)); $output = executeQuery('document.getDocumentDeclaredLogInfo', $args); // Pass after registering a sesson if reported/declared documents are in the logs. @@ -1438,6 +1446,7 @@ class documentController extends document if($declared_count > 0) $output = executeQuery('document.updateDeclaredDocument', $args); else $output = executeQuery('document.insertDeclaredDocument', $args); if(!$output->toBool()) return $output; + // Leave logs $output = executeQuery('document.insertDocumentDeclaredLog', $args); if(!$output->toBool()) diff --git a/modules/document/document.model.php b/modules/document/document.model.php index 7167623a4..c353a33a4 100644 --- a/modules/document/document.model.php +++ b/modules/document/document.model.php @@ -514,8 +514,8 @@ class documentModel extends document } // Adding Report - $url = sprintf("doCallModuleAction('document','procDocumentDeclare','%s')", $document_srl); - $oDocumentController->addDocumentPopupMenu($url,'cmd_declare','','javascript'); + $url = getUrl('', 'act', 'dispDocumentDeclare', 'target_srl', $document_srl); + $oDocumentController->addDocumentPopupMenu($url,'cmd_declare','','popup'); // Add Bookmark button $url = sprintf("doCallModuleAction('member','procMemberScrapDocument','%s')", $document_srl); diff --git a/modules/document/document.view.php b/modules/document/document.view.php index b922d8778..e18170a8a 100644 --- a/modules/document/document.view.php +++ b/modules/document/document.view.php @@ -175,6 +175,35 @@ class documentView extends document $this->setTemplateFile('saved_list_popup'); } + /** + * Document temp saved list + * @return void + */ + function dispDocumentDeclare() + { + $this->setLayoutFile('popup_layout'); + $document_srl = Context::get('target_srl'); + + $oMemberModel = getModel('member'); + // A message appears if the user is not logged-in + if(!$oMemberModel->isLogged()) return $this->stop('msg_not_logged'); + + // Create the document object. If the document module of basic data structures, write it all works .. -_-; + $oDocumentModel = getModel('document'); + // Creates an object for displaying the selected document + $oDocument = $oDocumentModel->getDocument($document_srl, $this->grant->manager, FALSE); + if(!$oDocument->isExists()) return new Object(-1,'msg_invalid_request'); + // Check permissions + if(!$oDocument->isAccessible()) return new Object(-1,'msg_not_permitted'); + + // 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 */ diff --git a/modules/document/lang/lang.xml b/modules/document/lang/lang.xml index 0a2d5f3b5..f94be534d 100644 --- a/modules/document/lang/lang.xml +++ b/modules/document/lang/lang.xml @@ -965,4 +965,20 @@ + + + + + + + + + + + + + + + + diff --git a/modules/document/queries/getDeclaredLogByDocumentSrl.xml b/modules/document/queries/getDeclaredLogByDocumentSrl.xml new file mode 100644 index 000000000..b30790912 --- /dev/null +++ b/modules/document/queries/getDeclaredLogByDocumentSrl.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/modules/document/queries/insertDocumentDeclaredLog.xml b/modules/document/queries/insertDocumentDeclaredLog.xml index 81e9dd6d8..9fbe756c8 100644 --- a/modules/document/queries/insertDocumentDeclaredLog.xml +++ b/modules/document/queries/insertDocumentDeclaredLog.xml @@ -1,11 +1,12 @@ - -
- - - - - - - + +
+ + + + + + + + diff --git a/modules/document/queries/updateDeclaredDocument.xml b/modules/document/queries/updateDeclaredDocument.xml index b06e9d8b5..736ec6a54 100644 --- a/modules/document/queries/updateDeclaredDocument.xml +++ b/modules/document/queries/updateDeclaredDocument.xml @@ -1,11 +1,11 @@ - -
- - - - - - - + +
+ + + + + + + diff --git a/modules/document/ruleset/insertDeclare.xml b/modules/document/ruleset/insertDeclare.xml new file mode 100644 index 000000000..f9a57eddf --- /dev/null +++ b/modules/document/ruleset/insertDeclare.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/modules/document/schemas/document_declared.xml b/modules/document/schemas/document_declared.xml index e2892b7c6..a180aa7e2 100644 --- a/modules/document/schemas/document_declared.xml +++ b/modules/document/schemas/document_declared.xml @@ -1,4 +1,4 @@
- - + +
diff --git a/modules/document/schemas/document_declared_log.xml b/modules/document/schemas/document_declared_log.xml index 046f6d3b3..80af4c993 100644 --- a/modules/document/schemas/document_declared_log.xml +++ b/modules/document/schemas/document_declared_log.xml @@ -1,6 +1,7 @@ - - - - + + + + +
diff --git a/modules/document/tpl/declare_document.html b/modules/document/tpl/declare_document.html new file mode 100644 index 000000000..9456b5cef --- /dev/null +++ b/modules/document/tpl/declare_document.html @@ -0,0 +1,32 @@ +
+

{$XE_VALIDATOR_MESSAGE}

+
+
+

{$lang->improper_document_declare}

+
+ + + + + +
+
+

{$target_document->getTitleText()}

+

{$target_document->getSummary(200)}

+
+
+ +
+ +

{$lang->about_improper_document_declare}

+

+
+
+ +
+
+
+
+ \ No newline at end of file diff --git a/modules/document/tpl/declared_list.html b/modules/document/tpl/declared_list.html index 6822a12f3..239e16dcb 100644 --- a/modules/document/tpl/declared_list.html +++ b/modules/document/tpl/declared_list.html @@ -46,7 +46,7 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}'; {$oDocument->getTitle()} {$oDocument->getNickName()} - {$oDocument->get('declared_count')} + {$oDocument->get('declared_count')} ({$lang->improper_document_declare_reason}) {$oDocument->get('readed_count')} {$oDocument->get('voted_count')}/{$oDocument->get('blamed_count')} {$oDocument->getRegdate("Y-m-d H:i")} diff --git a/modules/document/tpl/declared_log.html b/modules/document/tpl/declared_log.html new file mode 100644 index 000000000..2a99dd848 --- /dev/null +++ b/modules/document/tpl/declared_log.html @@ -0,0 +1,71 @@ +

{$lang->improper_document_declare}

+
+

{$XE_VALIDATOR_MESSAGE}

+
+
+ + +
+
+

{$declared_document->getTitleText()}

+

{$declared_document->getSummary(200)}

+
{$declared_document->getNickName()}
+
+
+

{$lang->improper_document_declare_reason}

+ + + + + + + + + + + + + + + +
{$lang->declaring_user}{$lang->improper_document_declare_reason}{$lang->date}
{$reporter_list[$log->member_srl]->nick_name} ({$log->ipaddress}){$log->declare_message}{date('Y-m-d H:i:s', strtotime($log->regdate))}
+
+ +
+ + + + + + + +