mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
spammer manage
mod spammer popup view page mod some code
This commit is contained in:
parent
de30ecfb39
commit
3bedab7e95
15 changed files with 531 additions and 4 deletions
|
|
@ -3272,6 +3272,10 @@
|
|||
<value xml:lang="tr"><![CDATA[Güncellemek istediğinize emin misiniz?]]></value>
|
||||
<value xml:lang="vi"><![CDATA[Bạn chắc chắn muốn Update?]]></value>
|
||||
</item>
|
||||
<item name="confirm_process">
|
||||
<value xml:lang="ko"><![CDATA[처리하시겠습니까?]]></value>
|
||||
<value xml:lang="en"><![CDATA[Are you sure you want to process?]]></value>
|
||||
</item>
|
||||
<item name="column_type">
|
||||
<value xml:lang="ko"><![CDATA[형식]]></value>
|
||||
<value xml:lang="en"><![CDATA[Column Type]]></value>
|
||||
|
|
|
|||
|
|
@ -1054,6 +1054,44 @@ class commentModel extends comment
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the total number of comments in corresponding with member_srl.
|
||||
* @param int $member_srl
|
||||
* @return int
|
||||
*/
|
||||
function getCommentCountByMemberSrl($member_srl)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->member_srl = $member_srl;
|
||||
$output = executeQuery('comment.getCommentCountByMemberSrl', $args);
|
||||
return (int) $output->data->count;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get comment list of the doc in corresponding woth member_srl.
|
||||
* @param int $member_srl
|
||||
* @param array $columnList
|
||||
* @param int $page
|
||||
* @param bool $is_admin
|
||||
* @param int $count
|
||||
* @return object
|
||||
*/
|
||||
function getCommentListByMemberSrl($member_srl, $columnList = array(), $page = 0, $is_admin = FALSE, $count = 0)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->member_srl = $member_srl;
|
||||
$args->list_count = $count;
|
||||
$output = executeQuery('comment.getCommentListByMemberSrl', $args, $columnList);
|
||||
$comment_list = $output->data;
|
||||
|
||||
if(!$comment_list) return array();
|
||||
if(!is_array($comment_list)) $comment_list = array($comment_list);
|
||||
|
||||
return $comment_list;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
/* End of file comment.model.php */
|
||||
/* Location: ./modules/comment/comment.model.php */
|
||||
|
|
|
|||
11
modules/comment/queries/getCommentCountByMemberSrl.xml
Normal file
11
modules/comment/queries/getCommentCountByMemberSrl.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="getCommentCountByMemberSrl" action="select">
|
||||
<tables>
|
||||
<table name="comments" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="count(*)" alias="count" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="member_srl" var="member_srl" filter="number" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
19
modules/comment/queries/getCommentListByMemberSrl.xml
Normal file
19
modules/comment/queries/getCommentListByMemberSrl.xml
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
<query id="getCommentList" action="select">
|
||||
<tables>
|
||||
<table name="comments" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="comment_srl" />
|
||||
<column name="parent_srl" />
|
||||
<column name="regdate" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="member_srl" var="member_srl" filter="number" notnull="notnull" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="list_order" default="list_order" order="asc" />
|
||||
<list_count var="list_count" default="20" />
|
||||
<page_count var="page_count" default="10" />
|
||||
<page var="page" default="1" />
|
||||
</navigation>
|
||||
</query>
|
||||
|
|
@ -1491,6 +1491,42 @@ class documentModel extends document
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the total number of Document in corresponding with member_srl.
|
||||
* @param int $member_srl
|
||||
* @return int
|
||||
*/
|
||||
function getDocumentCountByMemberSrl($member_srl)
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->member_srl = $member_srl;
|
||||
$output = executeQuery('document.getDocumentCountByMemberSrl', $args);
|
||||
return (int) $output->data->count;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get document list of the doc in corresponding woth member_srl.
|
||||
* @param int $member_srl
|
||||
* @param array $columnList
|
||||
* @param int $page
|
||||
* @param bool $is_admin
|
||||
* @param int $count
|
||||
* @return object
|
||||
*/
|
||||
function getDocumentListByMemberSrl($member_srl, $columnList = array(), $page = 0, $is_admin = FALSE, $count = 0 )
|
||||
{
|
||||
$args = new stdClass();
|
||||
$args->member_srl = $member_srl;
|
||||
$args->list_count = $count;
|
||||
$output = executeQuery('document.getDocumentListByMemberSrl', $args, $columnList);
|
||||
$document_list = $output->data;
|
||||
|
||||
if(!$document_list) return array();
|
||||
if(!is_array($document_list)) $document_list = array($document_list);
|
||||
|
||||
return $document_list;
|
||||
}
|
||||
}
|
||||
/* End of file document.model.php */
|
||||
/* Location: ./modules/document/document.model.php */
|
||||
|
|
|
|||
|
|
@ -176,6 +176,7 @@ class documentView extends document
|
|||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile('saved_list_popup');
|
||||
}
|
||||
|
||||
}
|
||||
/* End of file document.view.php */
|
||||
/* Location: ./modules/document/document.view.php */
|
||||
|
|
|
|||
11
modules/document/queries/getDocumentCountByMemberSrl.xml
Normal file
11
modules/document/queries/getDocumentCountByMemberSrl.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="getDocumentCountByMemberSrl" action="select">
|
||||
<tables>
|
||||
<table name="documents" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="count(*)" alias="count" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="member_srl" var="member_srl" filter="number" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
17
modules/document/queries/getDocumentListByMemberSrl.xml
Normal file
17
modules/document/queries/getDocumentListByMemberSrl.xml
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<query id="getDocumentList" action="select">
|
||||
<tables>
|
||||
<table name="documents" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="member_srl" var="member_srl" filter="number" notnull="notnull" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="list_order" default="list_order" order="asc" />
|
||||
<list_count var="list_count" default="20" />
|
||||
<page_count var="page_count" default="10" />
|
||||
<page var="page" default="1" />
|
||||
</navigation>
|
||||
</query>
|
||||
|
|
@ -20,6 +20,7 @@
|
|||
<action name="dispMemberGetTempPassword" type="view" />
|
||||
<action name="dispMemberResendAuthMail" type="view" />
|
||||
<action name="dispSavedDocumentList" type="view" />
|
||||
<action name="dispMemberSpammer" type="view" />
|
||||
|
||||
<action name="dispMemberAdminList" type="view" index="true" admin_index="true" menu_name="userList" menu_index="true"/>
|
||||
<!--action name="dispMemberAdminConfig" type="view" menu_name="userSetting" menu_index="true" /-->
|
||||
|
|
@ -68,6 +69,7 @@
|
|||
<action name="procMemberUpdateAuthMail" type="controller" />
|
||||
<action name="procMemberResendAuthMail" type="controller" ruleset="resendAuthMail" />
|
||||
<action name="procMemberResetAuthMail" type="controller" ruleset="resetAuthMail" />
|
||||
<action name="procMemberSpammerManage" type="controller" />
|
||||
|
||||
<action name="procMemberAdminInsert" type="controller" ruleset="insertAdminMember" />
|
||||
<action name="procMemberAdminDelete" type="controller" />
|
||||
|
|
|
|||
|
|
@ -2619,5 +2619,21 @@
|
|||
<value xml:lang="en"><![CDATA[Address information does not exist.]]></value>
|
||||
<value xml:lang="zh-CN"><![CDATA[加入会员后要移动的情报不存在]]></value>
|
||||
</item>
|
||||
|
||||
<item name="cmd_spammer">
|
||||
<value xml:lang="ko"><![CDATA[스패머 관리]]></value>
|
||||
<value xml:lang="en"><![CDATA[Spam User Manage]]></value>
|
||||
</item>
|
||||
<item name="spammer_description">
|
||||
<value xml:lang="ko"><![CDATA[<p>지정된 회원을 차단하고, 회원이 남긴 글과 댓글을 삭제합니다. 회원이 작성한 게시물의 양에 따라 오래걸릴 수 있습니다.</p>]]></value>
|
||||
<value xml:lang="en"><![CDATA[<p>Spam user management. This function denied user login and remove all of documents, comments</p>]]></value>
|
||||
</item>
|
||||
<item name="btn_spammer_delete_all">
|
||||
<value xml:lang="ko"><![CDATA[모두 삭제]]></value>
|
||||
<value xml:lang="en"><![CDATA[Delete all]]></value>
|
||||
</item>
|
||||
<item name="spammer_move_to_trash">
|
||||
<value xml:lang="ko"><![CDATA[휴지통으로 이동]]></value>
|
||||
<value xml:lang="en"><![CDATA[Move to trash]]></value>
|
||||
</item>
|
||||
|
||||
</lang>
|
||||
|
|
|
|||
|
|
@ -144,6 +144,10 @@ class member extends ModuleObject {
|
|||
FileHandler::makeDir('./files/member_extra_info/profile_image');
|
||||
FileHandler::makeDir('./files/member_extra_info/signature');
|
||||
|
||||
// 2013. 11. 22 add menu when popup document menu called
|
||||
$oModuleController->insertTrigger('document.getDocumentMenu', 'member', 'controller', 'triggerGetDocumentMenu', 'after');
|
||||
$oModuleController->insertTrigger('comment.getCommentMenu', 'member', 'controller', 'triggerGetCommentMenu', 'after');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
|
|
@ -208,6 +212,10 @@ class member extends ModuleObject {
|
|||
if(!is_readable('./files/ruleset/login.xml')) return true;
|
||||
if(!is_readable('./files/ruleset/find_member_account_by_question.xml')) return true;
|
||||
|
||||
// 2013. 11. 22 add menu when popup document menu called
|
||||
if(!$oModuleModel->getTrigger('document.getDocumentMenu', 'member', 'controller', 'triggerGetDocumentMenu', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('comment.getCommentMenu', 'member', 'controller', 'triggerGetCommentMenu', 'after')) return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -345,6 +353,12 @@ class member extends ModuleObject {
|
|||
if(!is_readable('./files/ruleset/find_member_account_by_question.xml'))
|
||||
$oMemberAdminController->_createFindAccountByQuestion($config->identifier);
|
||||
|
||||
// 2013. 11. 22 add menu when popup document menu called
|
||||
if(!$oModuleModel->getTrigger('document.getDocumentMenu', 'member', 'controller', 'triggerGetDocumentMenu', 'after'))
|
||||
$oModuleController->insertTrigger('document.getDocumentMenu', 'member', 'controller', 'triggerGetDocumentMenu', 'after');
|
||||
if(!$oModuleModel->getTrigger('comment.getCommentMenu', 'member', 'controller', 'triggerGetCommentMenu', 'after'))
|
||||
$oModuleController->insertTrigger('comment.getCommentMenu', 'member', 'controller', 'triggerGetCommentMenu', 'after');
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1962,8 +1962,10 @@ class memberController extends member
|
|||
|
||||
/**
|
||||
* Modify member information
|
||||
*
|
||||
* @param bool $is_admin , modified 2013-11-22
|
||||
*/
|
||||
function updateMember($args)
|
||||
function updateMember($args, $is_admin = FALSE)
|
||||
{
|
||||
// Call a trigger (before)
|
||||
$output = ModuleHandler::triggerCall('member.updateMember', 'before', $args);
|
||||
|
|
@ -1986,8 +1988,9 @@ class memberController extends member
|
|||
else
|
||||
{
|
||||
unset($args->is_admin);
|
||||
unset($args->denied);
|
||||
if($logged_info->member_srl != $args->member_srl)
|
||||
if($is_admin == false)
|
||||
unset($args->denied);
|
||||
if($logged_info->member_srl != $args->member_srl && $is_admin == false)
|
||||
{
|
||||
return $this->stop('msg_invalid_request');
|
||||
}
|
||||
|
|
@ -2354,6 +2357,206 @@ class memberController extends member
|
|||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile('msg_success_modify_email_address');
|
||||
}
|
||||
|
||||
/**
|
||||
* trigger for document.getDocumentMenu. Append to popup menu a button for procMemberSpammerManage()
|
||||
*
|
||||
* @param array &$menu_list
|
||||
*
|
||||
* @return object
|
||||
**/
|
||||
function triggerGetDocumentMenu(&$menu_list)
|
||||
{
|
||||
if(!Context::get('is_logged')) return new Object();
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$document_srl = Context::get('target_srl');
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$columnList = array('document_srl', 'module_srl', 'member_srl', 'ipaddress');
|
||||
$oDocument = $oDocumentModel->getDocument($document_srl, false, false, $columnList);
|
||||
$member_srl = $oDocument->get('member_srl');
|
||||
$module_srl = $oDocument->get('module_srl');
|
||||
|
||||
if(!$member_srl) return new Object();
|
||||
if($oDocumentModel->grant->manager != 1 || $member_srl==$logged_info->member_srl) return new Object();
|
||||
|
||||
$oDocumentController = &getController('document');
|
||||
$url = getUrl('','module','member','act','dispMemberSpammer','member_srl',$member_srl,'module_srl',$module_srl);
|
||||
$oDocumentController->addDocumentPopupMenu($url,'cmd_spammer','','popup');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* trigger for comment.getCommentMenu. Append to popup menu a button for procMemberSpammerManage()
|
||||
*
|
||||
* @param array &$menu_list
|
||||
*
|
||||
* @return object
|
||||
**/
|
||||
function triggerGetCommentMenu(&$menu_list)
|
||||
{
|
||||
if(!Context::get('is_logged')) return new Object();
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$comment_srl = Context::get('target_srl');
|
||||
|
||||
$oCommentModel = &getModel('comment');
|
||||
$columnList = array('comment_srl', 'module_srl', 'member_srl', 'ipaddress');
|
||||
$oComment = $oCommentModel->getComment($comment_srl, FALSE, $columnList);
|
||||
$module_srl = $oComment->get('module_srl');
|
||||
$member_srl = $oComment->get('member_srl');
|
||||
|
||||
if(!$member_srl) return new Object();
|
||||
if($oCommentModel->grant->manager != 1 || $member_srl==$logged_info->member_srl) return new Object();
|
||||
|
||||
$oCommentController = &getController('comment');
|
||||
$url = getUrl('','module','member','act','dispMemberSpammer','member_srl',$member_srl,'module_srl',$module_srl);
|
||||
$oCommentController->addCommentPopupMenu($url,'cmd_spammer','','popup');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* Spammer manage. Denied user login. And delete or trash all documents. Response Ajax string
|
||||
*
|
||||
* @return object
|
||||
**/
|
||||
function procMemberSpammerManage()
|
||||
{
|
||||
if(!Context::get('is_logged')) return new Object(-1,'msg_not_permitted');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = Context::get('member_srl');
|
||||
$module_srl = Context::get('module_srl');
|
||||
$cnt_loop = Context::get('cnt_loop');
|
||||
$proc_type = Context::get('proc_type');
|
||||
$isMoveToTrash = true;
|
||||
if($proc_type == "delete")
|
||||
$isMoveToTrash = false;
|
||||
|
||||
// check grant
|
||||
$oModuleModel = &getModel('module');
|
||||
$columnList = array('module_srl', 'module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl, $columnList);
|
||||
$grant = $oModuleModel->getGrant($module_info, $logged_info);
|
||||
|
||||
if(!$grant->manager) return new Object(-1,'msg_not_permitted');
|
||||
|
||||
$proc_msg = "";
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oCommentModel = &getModel('comment');
|
||||
|
||||
// delete or trash destination
|
||||
// proc member
|
||||
if($cnt_loop == 1)
|
||||
$this->_spammerMember($member_srl);
|
||||
// proc document and comment
|
||||
elseif($cnt_loop>1)
|
||||
$this->_spammerDocuments($member_srl, $isMoveToTrash);
|
||||
|
||||
// get destination count
|
||||
$cnt_document = $oDocumentModel->getDocumentCountByMemberSrl($member_srl);
|
||||
$cnt_comment = $oCommentModel->getCommentCountByMemberSrl($member_srl);
|
||||
|
||||
$total_count = Context::get('total_count');
|
||||
$remain_count = $cnt_document + $cnt_comment;
|
||||
if($cnt_loop == 1) $total_count = $remain_count;
|
||||
|
||||
// get progress percent
|
||||
if($total_count > 0)
|
||||
$progress = intval( ( ( $total_count - $remain_count ) / $total_count ) * 100 );
|
||||
else
|
||||
$progress = 100;
|
||||
|
||||
$this->add('total_count', $total_count);
|
||||
$this->add('remain_count', $remain_count);
|
||||
$this->add('progress', $progress);
|
||||
$this->add('member_srl', $member_srl);
|
||||
$this->add('module_srl', $module_srl);
|
||||
$this->add('cnt_loop', ++$cnt_loop);
|
||||
$this->add('proc_type', $proc_type);
|
||||
|
||||
return new Object(0);
|
||||
}
|
||||
|
||||
/**
|
||||
* Denied user login and write description
|
||||
*
|
||||
* @param int $member_srl
|
||||
*
|
||||
* @return object
|
||||
**/
|
||||
private function _spammerMember($member_srl) {
|
||||
$logged_info = Context::get('logged_info');
|
||||
$spam_description = trim( Context::get('spam_description') );
|
||||
|
||||
$oMemberModel = &getModel('member');
|
||||
$columnList = array('member_srl', 'description');
|
||||
// get member current infomation
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl, 0, $columnList);
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oCommentModel = &getModel('comment');
|
||||
$cnt_comment = $oCommentModel->getCommentCountByMemberSrl($member_srl);
|
||||
$cnt_document = $oDocumentModel->getDocumentCountByMemberSrl($member_srl);
|
||||
$total_count = $cnt_comment + $cnt_document;
|
||||
|
||||
$args = new stdClass();
|
||||
$args->member_srl= $member_info->member_srl;
|
||||
$args->denied = "Y";
|
||||
$args->description = trim( $member_info->description );
|
||||
if( $args->description != "" ) $args->description .= "\n"; // add new line
|
||||
|
||||
$args->description .= Context::getLang('cmd_spammer') . "[" . date("Y-m-d H:i:s") . " from:" . $logged_info->user_id . " info:" . $spam_description . " docuemnts count:" . $total_count . "]";
|
||||
|
||||
return $this->updateMember($args, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete or trash all documents
|
||||
*
|
||||
* @param int $member_srl
|
||||
* @param bool $isMoveToTrash
|
||||
*
|
||||
* @return object
|
||||
**/
|
||||
private function _spammerDocuments($member_srl, $isMoveToTrash) {
|
||||
$oDocumentController = &getController('document');
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oCommentController = &getController('comment');
|
||||
$oCommentModel = &getModel('comment');
|
||||
|
||||
// delete count by one request
|
||||
$getContentsCount = 10;
|
||||
|
||||
// 1. proc comment, 2. proc document
|
||||
$cnt_comment = $oCommentModel->getCommentCountByMemberSrl($member_srl);
|
||||
$cnt_document = $oDocumentModel->getDocumentCountByMemberSrl($member_srl);
|
||||
if($cnt_comment > 0)
|
||||
{
|
||||
$columnList = array();
|
||||
$commentList = $oCommentModel->getCommentListByMemberSrl($member_srl, $columnList, 0, false, $getContentsCount);
|
||||
if($commentList) {
|
||||
foreach($commentList as $v) {
|
||||
$oCommentController->deleteComment($v->comment_srl, true, $isMoveToTrash);
|
||||
}
|
||||
}
|
||||
} elseif($cnt_document > 0) {
|
||||
$columnList = array();
|
||||
$documentList = $oDocumentModel->getDocumentListByMemberSrl($member_srl, $columnList, 0, false, $getContentsCount);
|
||||
if($documentList) {
|
||||
foreach($documentList as $v) {
|
||||
if($isMoveToTrash) $oDocumentController->moveDocumentToTrash($v);
|
||||
else $oDocumentController->deleteDocument($v->document_srl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array();
|
||||
}
|
||||
}
|
||||
/* End of file member.controller.php */
|
||||
/* Location: ./modules/member/member.controller.php */
|
||||
|
|
|
|||
|
|
@ -611,6 +611,41 @@ class memberView extends member
|
|||
|
||||
Context::addHtmlHeader($js_code);
|
||||
}
|
||||
|
||||
/**
|
||||
* Spammer manage popup
|
||||
*
|
||||
* @return void
|
||||
**/
|
||||
function dispMemberSpammer()
|
||||
{
|
||||
if(!Context::get('is_logged')) return new Object(-1,'msg_not_permitted');
|
||||
|
||||
$member_srl = Context::get('member_srl');
|
||||
$module_srl = Context::get('module_srl');
|
||||
|
||||
// check grant
|
||||
$oModuleModel = &getModel('module');
|
||||
$columnList = array('module_srl', 'module');
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl, $columnList);
|
||||
$grant = $oModuleModel->getGrant($module_info, Context::get('logged_info'));
|
||||
|
||||
if(!$grant->manager) return new Object(-1,'msg_not_permitted');
|
||||
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
Context::loadLang('modules/document/lang/');
|
||||
Context::set('spammer_info', $oMemberModel->getMemberInfoByMemberSrl($member_srl));
|
||||
Context::set('module_srl', $module_srl);
|
||||
|
||||
// Select Pop-up layout
|
||||
$this->setLayoutPath('./common/tpl');
|
||||
$this->setLayoutFile('popup_layout');
|
||||
|
||||
$this->setTemplatePath($this->module_path.'tpl');
|
||||
$this->setTemplateFile('spammer');
|
||||
}
|
||||
|
||||
}
|
||||
/* End of file member.view.php */
|
||||
/* Location: ./modules/member/member.view.php */
|
||||
|
|
|
|||
|
|
@ -160,3 +160,4 @@ function doDeleteSavedDocument(document_srl, confirm_message) {
|
|||
function insertSelectedModule(id, module_srl, mid, browser_title) {
|
||||
location.href = current_url.setQuery('selected_module_srl',module_srl);
|
||||
}
|
||||
|
||||
|
|
|
|||
119
modules/member/tpl/spammer.html
Normal file
119
modules/member/tpl/spammer.html
Normal file
|
|
@ -0,0 +1,119 @@
|
|||
<!--%import("filter/manage_checked_document.xml")-->
|
||||
<style type="text/css">
|
||||
.dot-line {border-bottom:1px dotted #ddd; padding:8px 0;}
|
||||
.progress-box {visibility:hidden;padding:10px;}
|
||||
.progress-complete {visibility:hidden;background-color:#EAEAEA;color:#F15F5F;font-weight:bold;text-align:center;padding:3px;}
|
||||
.progress-cancel {visibility:hidden;background-color:#EAEAEA;color:#F15F5F;font-weight:bold;text-align:center;padding:3px;}
|
||||
.btn-proc { padding:40px 0; text-align:right;}
|
||||
.btn-proc label {float:right; margin-left:20px;}
|
||||
#spam_description {width:98%}
|
||||
</style>
|
||||
|
||||
<div class="x_modal-header">
|
||||
<h1>{$lang->cmd_spammer}</h1>
|
||||
</div>
|
||||
|
||||
<form action="./" method="post" id="fo_management" onsubmit="return doSpammerManage();">
|
||||
<input type="hidden" name="module" value="member" />
|
||||
<input type="hidden" name="act" value="procMemberSpammerManage" />
|
||||
<input type="hidden" name="proc_type" value="" />
|
||||
<input type="hidden" name="member_srl" value="{$spammer_info->member_srl}" />
|
||||
<input type="hidden" name="module_srl" value="{$module_srl}" />
|
||||
<input type="hidden" name="cnt_loop" value="1" />
|
||||
<div class="x_modal-body x_form-horizontal" style="max-height:none">
|
||||
<div class="dot-line">{$lang->spammer_description}</div>
|
||||
<div class="dot-line">{$lang->nick_name} : <span class="nick_name">{$spammer_info->nick_name}</span></div>
|
||||
|
||||
<div class="dot-line">
|
||||
<p>{$lang->about_member_description}</p>
|
||||
<textarea name="spam_description" id="spam_description" cols="400" rows="3"></textarea>
|
||||
</div>
|
||||
<div class="btn-proc" >
|
||||
<label for="to_trash"><input type="checkbox" name="to_trash" value="Y" checked="checked" id="to_trash" />{$lang->spammer_move_to_trash}</label>
|
||||
<button class="x_btn x_btn-danger" type="submit"/>{$lang->btn_spammer_delete_all}</button>
|
||||
</div>
|
||||
|
||||
<div class="progress-box">
|
||||
<div class="progress-complete">{$lang->cmd_complete}</div>
|
||||
<div><span id="document_count"></span> <span id="document_percent"></span></div>
|
||||
<div class="x_progress x_progress-striped x_active">
|
||||
<div class="x_bar" id="progressBar" style="width: 0%"></div>
|
||||
</div>
|
||||
<div class-"cancel"><button class="x_btn" type="button" onclick="cancelSpammerManage();">{$lang->cmd_cancel}</button></div>
|
||||
</div>
|
||||
<div class="progress-cancel dot-line">{$lang->success_declare_canceled}</div>
|
||||
</div>
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
var bSpammerManageProc = true;
|
||||
var form_info = "";
|
||||
function doSpammerManage( args ) {
|
||||
|
||||
if( args == undefined ) {
|
||||
if(!confirm('{$lang->confirm_process}')) return false;
|
||||
|
||||
var args = {};
|
||||
var vals = jQuery('#fo_management').serializeArray();
|
||||
for( var i in vals ) {
|
||||
args[vals[i].name] = vals[i].value;
|
||||
}
|
||||
|
||||
// reset form
|
||||
args.proc_type = "trash";
|
||||
if( jQuery('#to_trash').attr( 'checked' ) != "checked" )
|
||||
args.proc_type = "hidden";
|
||||
|
||||
args.cnt_loop =1;
|
||||
|
||||
form_info = args;
|
||||
|
||||
jQuery('.progress-box').css('visibility','visible');
|
||||
jQuery('.progress-cancel').css('visibility','hidden');
|
||||
jQuery('[type=submit]').hide();
|
||||
|
||||
bSpammerManageProc = true;
|
||||
}
|
||||
|
||||
jQuery.exec_json( form_info.module + '.' + form_info.act, args, progressSpammerManage );
|
||||
|
||||
return false; // don't page move
|
||||
}
|
||||
|
||||
function progressSpammerManage( data ) {
|
||||
|
||||
setTimeout( function() {
|
||||
if( data.total_count != undefined && parseInt( data.total_count ) > 0 ) {
|
||||
var doc_count = parseInt( data.total_count ) - parseInt( data.remain_count );
|
||||
jQuery('#document_count').html( doc_count + "/" + data.total_count );
|
||||
jQuery('#document_percent').html(data.progress + "%");
|
||||
}
|
||||
jQuery('#progressBar').width(data.progress + "%");
|
||||
if(data.remain_count <= 0) {
|
||||
jQuery('.progress-complete').css('visibility','visible');
|
||||
jQuery('[type=submit]').show();
|
||||
return;
|
||||
}
|
||||
|
||||
var args = data;
|
||||
|
||||
if( bSpammerManageProc == false ) {
|
||||
jQuery('.progress-box').css('visibility','hidden');
|
||||
jQuery('.progress-cancel').css('visibility','visible');
|
||||
|
||||
// reset progress values
|
||||
jQuery('#document_count').html("");
|
||||
jQuery('#document_percent').html("");
|
||||
jQuery('#progressBar').width("0%");
|
||||
jQuery('[type=submit]').show();
|
||||
|
||||
return;
|
||||
}
|
||||
doSpammerManage( args );
|
||||
|
||||
}, 500 );
|
||||
}
|
||||
|
||||
function cancelSpammerManage() {
|
||||
bSpammerManageProc = false;
|
||||
}
|
||||
</script>
|
||||
Loading…
Add table
Add a link
Reference in a new issue