mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-04 01:01:41 +09:00
Added comment validation system.
git-svn-id: http://xe-core.googlecode.com/svn/branches/1.5.0@10272 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
9307d94fc8
commit
13402bfc76
22 changed files with 417 additions and 19 deletions
|
|
@ -13,6 +13,88 @@
|
|||
function init() {
|
||||
}
|
||||
|
||||
function procCommentAdminChangePublishedStatusChecked()
|
||||
{
|
||||
$will_publish = Context::get('will_publish');
|
||||
|
||||
// Error display if none is selected
|
||||
$cart = Context::get('cart');
|
||||
if(!$cart)
|
||||
{
|
||||
return $this->stop('msg_cart_is_null');
|
||||
}
|
||||
if(!is_array($cart))
|
||||
{
|
||||
$comment_srl_list= explode('|@|', $cart);
|
||||
}
|
||||
else
|
||||
{
|
||||
$comment_srl_list = $cart;
|
||||
}
|
||||
$comment_count = count($comment_srl_list);
|
||||
// begin transaction
|
||||
|
||||
// for message send - start
|
||||
$message_content = Context::get('message_content');
|
||||
if($message_content) $message_content = nl2br($message_content);
|
||||
|
||||
if($message_content) {
|
||||
$oCommunicationController = &getController('communication');
|
||||
$oCommentModel = &getModel('comment');
|
||||
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
||||
$title = cut_str($message_content,10,'...');
|
||||
$sender_member_srl = $logged_info->member_srl;
|
||||
|
||||
for($i=0;$i<$comment_count;$i++) {
|
||||
$comment_srl = $comment_srl_list[$i];
|
||||
$oComment = $oCommentModel->getComment($comment_srl, true);
|
||||
|
||||
if(!$oComment->get('member_srl') || $oComment->get('member_srl')==$sender_member_srl) continue;
|
||||
|
||||
$content = sprintf("<div>%s</div><hr /><div style=\"font-weight:bold\">%s</div>",$message_content, $oComment->getContentText(20));
|
||||
|
||||
$oCommunicationController->sendMessage($sender_member_srl, $oComment->get('member_srl'), $title, $content, false);
|
||||
}
|
||||
}
|
||||
// for message send - end
|
||||
|
||||
$args->status = $will_publish;
|
||||
$args->comment_srls_list = $comment_srl_list;
|
||||
$output = executeQuery('comment.updatePublishedStatus', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
//update comment count for document
|
||||
$updated_documents_arr = array();
|
||||
// create the controller object of the document
|
||||
$oDocumentController = &getController('document');
|
||||
// create the comment model object
|
||||
$oCommentModel = &getModel('comment');
|
||||
for($i=0;$i<$comment_count;$i++)
|
||||
{
|
||||
$comment_srl = $comment_srl_list[$i];
|
||||
// check if comment already exists
|
||||
$comment = $oCommentModel->getComment($comment_srl);
|
||||
if($comment->comment_srl != $comment_srl) return new Object(-1, 'msg_invalid_request');
|
||||
$document_srl = $comment->document_srl;
|
||||
if (!in_array($document_srl,$updated_documents_arr))
|
||||
{
|
||||
$updated_documents_arr[] = $document_srl;
|
||||
// update the number of comments
|
||||
$comment_count = $oCommentModel->getCommentCount($document_srl);
|
||||
// update comment count of the article posting
|
||||
$output = $oDocumentController->updateCommentCount($document_srl, $comment_count, null, false);
|
||||
}
|
||||
}
|
||||
|
||||
if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) {
|
||||
$returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('', 'module', 'admin', 'act', 'dispCommentAdminList', 'search_keyword', '');
|
||||
header('location:'.$returnUrl);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Delete the selected comment from the administrator page
|
||||
**/
|
||||
|
|
|
|||
|
|
@ -25,18 +25,35 @@
|
|||
$args->sort_index = 'list_order'; // /< Sorting values
|
||||
|
||||
$args->module_srl = Context::get('module_srl');
|
||||
|
||||
/*
|
||||
$search_target = Context::get('search_target');
|
||||
$search_keyword = Context::get('search_keyword');
|
||||
if ($search_target == 'is_published' && $search_keyword == 'Y')
|
||||
{
|
||||
$args->status = 1;
|
||||
}
|
||||
if ($search_target == 'is_published' && $search_keyword == 'N')
|
||||
{
|
||||
$args->status = 0;
|
||||
}
|
||||
*/
|
||||
|
||||
// get a list by using comment->getCommentList.
|
||||
$oCommentModel = &getModel('comment');
|
||||
$secretNameList = $oCommentModel->getSecretNameList();
|
||||
$columnList = array('comment_srl', 'document_srl', 'is_secret', 'content', 'comments.member_srl', 'comments.nick_name', 'comments.regdate', 'ipaddress');
|
||||
$columnList = array('comment_srl', 'document_srl', 'is_secret', 'status', 'content', 'comments.member_srl', 'comments.nick_name', 'comments.regdate', 'ipaddress');
|
||||
$output = $oCommentModel->getTotalCommentList($args, $columnList);
|
||||
|
||||
|
||||
$oCommentModel = &getModel("comment");
|
||||
$modules = $oCommentModel->getDistinctModules();
|
||||
$modules_list = $modules;
|
||||
|
||||
// set values in the return object of comment_model:: getTotalCommentList() in order to use a template.
|
||||
Context::set('total_count', $output->total_count);
|
||||
Context::set('total_page', $output->total_page);
|
||||
Context::set('page', $output->page);
|
||||
Context::set('comment_list', $output->data);
|
||||
Context::set('modules_list', $modules_list);
|
||||
Context::set('page_navigation', $output->page_navigation);
|
||||
Context::set('secret_name_list', $secretNameList);
|
||||
// set the template
|
||||
|
|
|
|||
|
|
@ -57,7 +57,16 @@
|
|||
|
||||
if (!$oDB->isIndexExists("comments", "idx_module_list_order"))
|
||||
return true;
|
||||
|
||||
//2012. 02. 24 add comment published status column and index
|
||||
if(!$oDB->isColumnExists("comments", "status"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
if (!$oDB->isIndexExists("comments", "idx_status"))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
@ -93,7 +102,7 @@
|
|||
}
|
||||
if(!$oDB->isColumnExists("comment_voted_log", "point"))
|
||||
$oDB->addColumn('comment_voted_log', 'point', 'number', 11, 0, true);
|
||||
|
||||
|
||||
if (!$oDB->isIndexExists("comments", "idx_module_list_order"))
|
||||
$oDB->addIndex
|
||||
(
|
||||
|
|
@ -103,6 +112,19 @@
|
|||
true
|
||||
);
|
||||
|
||||
//2012. 02. 24 add comment published status column and index
|
||||
if(!$oDB->isColumnExists("comments", "status")) {
|
||||
$oDB->addColumn("comments", "status", "number", 1, 1, true);
|
||||
}
|
||||
if (!$oDB->isIndexExists("comments", "idx_status"))
|
||||
$oDB->addIndex
|
||||
(
|
||||
"comments",
|
||||
"idx_status",
|
||||
array("status", "comment_srl", "module_srl", "document_srl"),
|
||||
true
|
||||
);
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -98,11 +98,62 @@
|
|||
$_SESSION['own_comment'][$comment_srl] = true;
|
||||
}
|
||||
|
||||
/**
|
||||
*@brief Check if module is using comment validation system
|
||||
* @param number $document_srl
|
||||
* @return boolean
|
||||
*/
|
||||
function isModuleUsingPublishValidation($document_srl=null, $module_srl=null)
|
||||
{
|
||||
$oModuleModel = &getModel('module');
|
||||
if(!is_null($document_srl))
|
||||
{
|
||||
$module_info = $oModuleModel->getModuleInfoByDocumentSrl($document_srl);
|
||||
}
|
||||
if(!is_null($module_srl))
|
||||
{
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
|
||||
}
|
||||
$module_part_config = $oModuleModel->getModulePartConfig('comment',$module_info->module_srl);
|
||||
$use_validation = false;
|
||||
if (isset($module_part_config->use_comment_validation) && $module_part_config->use_comment_validation == "Y")
|
||||
{
|
||||
$use_validation = true;
|
||||
}
|
||||
return $use_validation;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Enter comments
|
||||
**/
|
||||
function insertComment($obj, $manual_inserted = false) {
|
||||
$obj->__isupdate = false;
|
||||
|
||||
// check if comment's module is using comment validation and set the publish status to 0 (false)
|
||||
// for inserting query, otherwhise default is 1 (true - means comment is published)
|
||||
$using_validation = $this->isModuleUsingPublishValidation($obj->document_srl);
|
||||
if(Context::get('is_logged'))
|
||||
{
|
||||
$logged_info = Context::get('logged_info');
|
||||
if ($logged_info->is_admin == 'Y')
|
||||
{
|
||||
$is_admin = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$is_admin = false;
|
||||
}
|
||||
}
|
||||
|
||||
if (!$using_validation || $is_admin)
|
||||
{
|
||||
$obj->status = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$obj->status = 0;
|
||||
}
|
||||
|
||||
$obj->__isupdate = false;
|
||||
// call a trigger (before)
|
||||
$output = ModuleHandler::triggerCall('comment.insertComment', 'before', $obj);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
|
@ -195,7 +246,7 @@
|
|||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$output = executeQuery('comment.insertCommentList', $list_args);
|
||||
if(!$output->toBool()) return $output;
|
||||
// insert comment
|
||||
|
|
@ -211,7 +262,10 @@
|
|||
// create the controller object of the document
|
||||
$oDocumentController = &getController('document');
|
||||
// Update the number of comments in the post
|
||||
$output = $oDocumentController->updateCommentCount($document_srl, $comment_count, $obj->nick_name, true);
|
||||
if (!$using_validation || $is_admin)
|
||||
{
|
||||
$output = $oDocumentController->updateCommentCount($document_srl, $comment_count, $obj->nick_name, true);
|
||||
}
|
||||
// grant autority of the comment
|
||||
$this->addGrant($obj->comment_srl);
|
||||
// call a trigger(after)
|
||||
|
|
@ -636,7 +690,10 @@
|
|||
|
||||
$comment_config->use_vote_down = Context::get('use_vote_down');
|
||||
if(!$comment_config->use_vote_down) $comment_config->use_vote_down = 'Y';
|
||||
|
||||
|
||||
$comment_config->use_comment_validation = Context::get('use_comment_validation');
|
||||
if(!$comment_config->use_comment_validation) $comment_config->use_comment_validation = 'N';
|
||||
|
||||
for($i=0;$i<count($module_srl);$i++) {
|
||||
$srl = trim($module_srl[$i]);
|
||||
if(!$srl) continue;
|
||||
|
|
|
|||
|
|
@ -119,7 +119,7 @@
|
|||
if(is_array($comment_srl_list)) $comment_srls = implode(',',$comment_srl_list);
|
||||
// fetch from a database
|
||||
$args->comment_srls = $comment_srls;
|
||||
$output = executeQuery('comment.getComments', $args, $columnList);
|
||||
$output = executeQuery('comment.getComments', $args, $columnList);
|
||||
if(!$output->toBool()) return;
|
||||
$comment_list = $output->data;
|
||||
if(!$comment_list) return;
|
||||
|
|
@ -143,6 +143,15 @@
|
|||
**/
|
||||
function getCommentCount($document_srl) {
|
||||
$args->document_srl = $document_srl;
|
||||
|
||||
//check if module is using validation system
|
||||
$oCommentController = &getController('comment');
|
||||
$using_validation = $oCommentController->isModuleUsingPublishValidation($document_srl);
|
||||
if($using_validation)
|
||||
{
|
||||
$args->status = 1;
|
||||
}
|
||||
|
||||
$output = executeQuery('comment.getCommentCount', $args);
|
||||
$total_count = $output->data->count;
|
||||
return (int)$total_count;
|
||||
|
|
@ -164,14 +173,49 @@
|
|||
/**
|
||||
* @brief get the total number of comments in corresponding with module_srl.
|
||||
**/
|
||||
function getCommentAllCount($module_srl) {
|
||||
function getCommentAllCount($module_srl,$published=null) {
|
||||
$args->module_srl = $module_srl;
|
||||
|
||||
if(is_null($published))
|
||||
{
|
||||
// check if module is using comment validation system
|
||||
$oCommentController = &getController("comment");
|
||||
$is_using_validation = $oCommentController->isModuleUsingPublishValidation(null,$module_srl);
|
||||
if($is_using_validation)
|
||||
{
|
||||
$args->status = 1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($published)
|
||||
{
|
||||
$args->status = 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
$args->status = 0;
|
||||
}
|
||||
}
|
||||
$output = executeQuery('comment.getCommentCount', $args);
|
||||
$total_count = $output->data->count;
|
||||
|
||||
return (int)$total_count;
|
||||
}
|
||||
|
||||
function getDistinctModules()
|
||||
{
|
||||
$output = executeQuery('comment.getDistinctModules');
|
||||
$module_srls = $output->data;
|
||||
$oModuleModel = &getModel('module');
|
||||
$result = array();
|
||||
foreach($module_srls as $module)
|
||||
{
|
||||
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module->module_srl);
|
||||
$result[$module->module_srl] = $module_info->mid;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief get the comment in corresponding with mid.
|
||||
|
|
@ -195,6 +239,17 @@
|
|||
$output = $oCacheHandler->get($cache_key);
|
||||
}
|
||||
if(!$output){
|
||||
|
||||
if(strpos($args->module_srl,",")===false)
|
||||
{
|
||||
// check if module is using comment validation system
|
||||
$oCommentController = &getController("comment");
|
||||
$is_using_validation = $oCommentController->isModuleUsingPublishValidation(null,$obj->module_srl);
|
||||
if($is_using_validation)
|
||||
{
|
||||
$args->status = 1;
|
||||
}
|
||||
}
|
||||
$output = executeQuery('comment.getNewestCommentList', $args, $columnList);
|
||||
if($oCacheHandler->isSupport()) $oCacheHandler->put($cache_key,$output);
|
||||
}
|
||||
|
|
@ -255,6 +310,16 @@
|
|||
$args->list_count = $comment_count;
|
||||
$args->page = $page;
|
||||
$args->page_count = 10;
|
||||
|
||||
//check if module is using validation system
|
||||
$oCommentController = &getController('comment');
|
||||
$using_validation = $oCommentController->isModuleUsingPublishValidation($document_srl);
|
||||
if($using_validation)
|
||||
{
|
||||
$args->status = 1;
|
||||
}
|
||||
|
||||
|
||||
$output = executeQueryArray('comment.getCommentPageList', $args);
|
||||
// return if an error occurs in the query results
|
||||
if(!$output->toBool()) return;
|
||||
|
|
@ -366,6 +431,15 @@
|
|||
$args->page_count = $obj->page_count?$obj->page_count:10;
|
||||
$args->s_module_srl = $obj->module_srl;
|
||||
$args->exclude_module_srl = $obj->exclude_module_srl;
|
||||
|
||||
// check if module is using comment validation system
|
||||
$oCommentController = &getController("comment");
|
||||
$is_using_validation = $oCommentController->isModuleUsingPublishValidation(null,$obj->module_srl);
|
||||
if ($is_using_validation)
|
||||
{
|
||||
$args->s_is_published = 1;
|
||||
}
|
||||
|
||||
// Search options
|
||||
$search_target = $obj->search_target?$obj->search_target:trim(Context::get('search_target'));
|
||||
$search_keyword = $obj->search_keyword?$obj->search_keyword:trim(Context::get('search_keyword'));
|
||||
|
|
@ -408,7 +482,20 @@
|
|||
break;
|
||||
case 'is_secret' :
|
||||
$args->s_is_secret= $search_keyword;
|
||||
break;
|
||||
case 'is_published' :
|
||||
if($search_keyword == 'Y')
|
||||
{
|
||||
$args->s_is_published = 1;
|
||||
}
|
||||
if($search_keyword == 'N')
|
||||
{
|
||||
$args->s_is_published = 0;
|
||||
}
|
||||
break;
|
||||
case 'module':
|
||||
$args->s_module_srl = (int)$search_keyword;
|
||||
break;
|
||||
case 'member_srl' :
|
||||
$args->{"s_".$search_target} = (int)$search_keyword;
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -15,7 +15,9 @@
|
|||
<action name="getCommentVotedMemberList" type="model" standalone="true" />
|
||||
<action name="procCommentInsertModuleConfig" type="controller" standalone="true" ruleset="insertCommentModuleConfig" />
|
||||
<action name="procCommentAdminDeleteChecked" type="controller" standalone="true" ruleset="deleteChecked" />
|
||||
<action name="procCommentAdminCancelDeclare" type="controller" standalone="true" />
|
||||
<action name="procCommentAdminChangePublishedStatusChecked" type="controller" standalone="true" />
|
||||
<action name="isModuleUsingPublishValidation" type="controller" standalone="true" />
|
||||
<action name="procCommentAdminCancelDeclare" type="controller" standalone="true" />
|
||||
<action name="procCommentAdminAddCart" type="controller" standalone="true" />
|
||||
<action name="procCommentGetList" type="controller" standalone="true" />
|
||||
</actions>
|
||||
|
|
|
|||
|
|
@ -248,6 +248,14 @@
|
|||
<value xml:lang="zh-TW"><![CDATA[公開]]></value>
|
||||
</item>
|
||||
</item>
|
||||
<item name="published_name_list" type="array">
|
||||
<item name="Y">
|
||||
<value xml:lang="en"><![CDATA[Published]]></value>
|
||||
</item>
|
||||
<item name="N">
|
||||
<value xml:lang="en"><![CDATA[Unpublished]]></value>
|
||||
</item>
|
||||
</item>
|
||||
<item name="comment_manager">
|
||||
<value xml:lang="ko"><![CDATA[선택한 댓글 관리]]></value>
|
||||
<value xml:lang="en"><![CDATA[Manage Selected Comment]]></value>
|
||||
|
|
@ -260,4 +268,19 @@
|
|||
<value xml:lang="jp"><![CDATA[選択したコメント]]></value>
|
||||
<value xml:lang="zh-TW"><![CDATA[已選回覆]]></value>
|
||||
</item>
|
||||
<item name="cmd_comment_validation">
|
||||
<value xml:lang="en"><![CDATA[Use comment validation]]></value>
|
||||
</item>
|
||||
<item name="about_comment_validation">
|
||||
<value xml:lang="en"><![CDATA[If you want to use comment validation before displaying on your module frontend select USE, otherwise select NOT USE.]]></value>
|
||||
</item>
|
||||
<item name="published">
|
||||
<value xml:lang="en"><![CDATA[Publish status]]></value>
|
||||
</item>
|
||||
<item name="cmd_publish">
|
||||
<value xml:lang="en"><![CDATA[Publish]]></value>
|
||||
</item>
|
||||
<item name="cmd_unpublish">
|
||||
<value xml:lang="en"><![CDATA[Unpublish]]></value>
|
||||
</item>
|
||||
</lang>
|
||||
|
|
@ -6,7 +6,8 @@
|
|||
<column name="count(*)" alias="count" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="document_srl" var="document_srl" filter="number" />
|
||||
<condition operation="equal" column="status" var="status" />
|
||||
<condition operation="equal" column="document_srl" var="document_srl" filter="number" pipe="and" />
|
||||
<condition operation="in" column="module_srl" var="module_srl" filter="number" pipe="and" />
|
||||
<condition operation="like_prefix" column="regdate" var="regDate" pipe="and" />
|
||||
</conditions>
|
||||
|
|
|
|||
|
|
@ -8,12 +8,14 @@
|
|||
<column name="comments_list.depth" alias="depth" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="comments_list.document_srl" var="document_srl" notnull="notnull" pipe="and" />
|
||||
<condition operation="equal" column="comments.status" var="status" pipe="and" />
|
||||
<condition operation="equal" column="comments_list.document_srl" var="document_srl" notnull="notnull" pipe="and" />
|
||||
<condition operation="equal" column="comments_list.comment_srl" var="comments.comment_srl" filter="number" pipe="and" />
|
||||
<condition operation="more" column="comments_list.head" default="0" pipe="and" />
|
||||
<condition operation="more" column="comments_list.arrange" default="0" pipe="and" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="list_order" default="comments.status" order="desc" />
|
||||
<index var="list_order" default="comments_list.head" order="asc" />
|
||||
<index var="list_order" default="comments_list.arrange" order="asc" />
|
||||
<list_count var="list_count" default="list_count" />
|
||||
|
|
|
|||
8
modules/comment/queries/getDistinctModules.xml
Normal file
8
modules/comment/queries/getDistinctModules.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<query id="getDistinctModules" action="select">
|
||||
<tables>
|
||||
<table name="comments" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="DISTINCT(module_srl)" />
|
||||
</columns>
|
||||
</query>
|
||||
|
|
@ -6,9 +6,11 @@
|
|||
<column name="*" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="in" column="module_srl" var="module_srl" filter="number" />
|
||||
<condition operation="equal" column="status" var="status" pipe="and" />
|
||||
<condition operation="in" column="module_srl" var="module_srl" filter="number" pipe="and" />
|
||||
</conditions>
|
||||
<navigation>
|
||||
<index var="sort_index" default="status" order="desc" />
|
||||
<index var="sort_index" default="list_order" order="asc" />
|
||||
<list_count var="list_count" default="20" />
|
||||
</navigation>
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
<condition operation="in" column="module_srl" var="s_module_srl" />
|
||||
<condition operation="notin" column="module_srl" var="exclude_module_srl" pipe="and" />
|
||||
<condition operation="equal" column="is_secret" var="s_is_secret" pipe="and" />
|
||||
<condition operation="equal" column="status" var="s_is_published" pipe="and" />
|
||||
<group pipe="and">
|
||||
<condition operation="like" column="content" var="s_content" pipe="or" />
|
||||
<condition operation="like" column="user_name" var="s_user_name" pipe="or" />
|
||||
|
|
|
|||
|
|
@ -24,5 +24,6 @@
|
|||
<column name="last_update" var="last_update" default="curdate()" />
|
||||
<column name="ipaddress" var="ipaddress" default="ipaddress()" />
|
||||
<column name="list_order" var="list_order" default="0" />
|
||||
<column name="status" var="status" notnull="notnull" default="0" />
|
||||
</columns>
|
||||
</query>
|
||||
|
|
|
|||
12
modules/comment/queries/updatePublishedStatus.xml
Normal file
12
modules/comment/queries/updatePublishedStatus.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<query id="updatePublishedStatus" action="update">
|
||||
<tables>
|
||||
<table name="comments" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="status" var="status" notnull="notnull" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="in" column="comment_srl" var="comment_srls_list" notnull="notnull" pipe="or" />
|
||||
<condition operation="in" column="parent_srl" var="comment_srls_list" notnull="notnull" pipe="or" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -20,4 +20,5 @@
|
|||
<column name="last_update" type="date" index="idx_last_update" />
|
||||
<column name="ipaddress" type="varchar" size="128" notnull="notnull" index="idx_ipaddress" />
|
||||
<column name="list_order" type="number" size="11" notnull="notnull" index="idx_list_order" />
|
||||
<column name="status" type="number" size="1" default="1" notnull="notnull" index="idx_status" />
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -11,9 +11,18 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
<h1 class="h1">{$lang->comment}</h1>
|
||||
<div class="table even">
|
||||
<div class="cnb">
|
||||
<a href="{getUrl('','act','dispCommentAdminList', 'Y')}" <!--@if($search_keyword == '')-->class="active"<!--@end-->>{$lang->all}</a>
|
||||
<a href="{getUrl('search_keyword','','act','dispCommentAdminList', 'Y')}" <!--@if($search_keyword == '')-->class="active"<!--@end-->>{$lang->all}</a>
|
||||
| <a href="{getUrl('search_target','is_secret','search_keyword', 'N')}" <!--@if($search_target == 'is_secret' && $search_keyword == 'N')-->class="active"<!--@end-->>{$secret_name_list['N']}</a>
|
||||
| <a href="{getUrl('search_target','is_secret','search_keyword', 'Y')}" <!--@if($search_target == 'is_secret' && $search_keyword == 'Y')-->class="active"<!--@end-->>{$secret_name_list['Y']}</a>
|
||||
| <a href="{getUrl('search_target','is_published','search_keyword', 'N')}" <!--@if($search_target == 'is_published' && $search_keyword == 'N')-->class="active"<!--@end-->>{$lang->published_name_list['N']}</a>
|
||||
| <a href="{getUrl('search_target','is_published','search_keyword', 'Y')}" <!--@if($search_target == 'is_published' && $search_keyword == 'Y')-->class="active"<!--@end-->>{$lang->published_name_list['Y']}</a>
|
||||
| <label for="comment_modules" <!--@if($search_target == 'module')-->class="active"<!--@end-->>Select Module:
|
||||
<select id="comment_modules" name="comment_modules" onchange="location.href='{getUrl('search_target','module','search_keyword','')}&search_keyword='+this.value">
|
||||
<option></option>
|
||||
<!--@foreach($modules_list as $key => $node)-->
|
||||
<option value="{$key}"<!--@if($key==$search_keyword)-->selected<!--@end-->>{$node}</option>
|
||||
<!--@end-->
|
||||
</select></label>
|
||||
</div>
|
||||
<table width="100%" border="1" cellspacing="0" id="commentListTable">
|
||||
<caption>
|
||||
|
|
@ -23,6 +32,10 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
{$secret_name_list['N']}
|
||||
<!--@elseif($search_target == 'is_secret' && $search_keyword == 'Y')-->
|
||||
{$secret_name_list['Y']}
|
||||
<!--@elseif($search_target == 'is_published' && $search_keyword == 'N')-->
|
||||
{$published_name_list['N']}
|
||||
<!--@elseif($search_target == 'is_published' && $search_keyword == 'Y')-->
|
||||
{$published_name_list['Y']}
|
||||
<!--@end-->
|
||||
({number_format($total_count)})
|
||||
<div class="side">
|
||||
|
|
@ -37,6 +50,7 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
<th scope="col" class="nowr">{$lang->date}</th>
|
||||
<th scope="col" class="nowr">{$lang->ipaddress}</th>
|
||||
<th scope="col" class="nowr">{$lang->status}</th>
|
||||
<th scope="col">{$lang->published}</th>
|
||||
<th scope="col"><input type="checkbox" data-name="cart" title="Check All" /></th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -48,6 +62,7 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
<th scope="col" class="nowr">{$lang->date}</th>
|
||||
<th scope="col" class="nowr">{$lang->ipaddress}</th>
|
||||
<th scope="col" class="nowr">{$lang->status}</th>
|
||||
<th scope="col">{$lang->published}</th>
|
||||
<th scope="col"><input type="checkbox" data-name="cart" title="Check All" /></th>
|
||||
</tr>
|
||||
</tfoot>
|
||||
|
|
@ -61,6 +76,7 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
<td class="nowr">{(zdate($val->regdate,"Y-m-d\nH:i:s"))}</td>
|
||||
<td class="nowr"><a href="{getUrl('search_target','ipaddress','search_keyword',$val->ipaddress)}">{$val->ipaddress}</a></td>
|
||||
<td class="nowr"><!--@if($val->isSecret())-->{$secret_name_list['Y']}<!--@else-->{$secret_name_list['N']}<!--@end--></td>
|
||||
<td><!--@if($val->status)-->{$lang->published_name_list['Y']}<!--@else-->{$lang->published_name_list['N']}<!--@end--></td>
|
||||
<td><input type="checkbox" name="cart" value="{$val->comment_srl}" /></td>
|
||||
</tr>
|
||||
<!--@end-->
|
||||
|
|
@ -77,6 +93,7 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
<input type="hidden" name="act" value="procCommentAdminDeleteChecked" />
|
||||
<input type="hidden" name="page" value="{$page}" />
|
||||
<input type="hidden" name="is_trash" value="false" />
|
||||
<input type="hidden" name="will_publish" value="0" />
|
||||
<input type="hidden" name="search_target" value="{$search_target}" />
|
||||
<input type="hidden" name="search_keyword" value="{$search_keyword}" />
|
||||
<h2 class="h2">{$lang->comment_manager}</h2>
|
||||
|
|
@ -90,6 +107,7 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
<th scope="col" class="title">{$lang->comment}</th>
|
||||
<th scope="col" class="nowr">{$lang->writer}</th>
|
||||
<th scope="col" class="nowr">{$lang->status}</th>
|
||||
<th scope="col">{$lang->published}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
@ -101,6 +119,14 @@ xe.lang.msg_empty_search_keyword = '{$lang->msg_empty_search_keyword}';
|
|||
<textarea cols="42" rows="3" name="message_content" id="message" style="width:98%"></textarea>
|
||||
</p>
|
||||
<div class="btnArea">
|
||||
<!--@if ($search_target=='is_published' && $search_keyword=="N")-->
|
||||
<span class="btn"><button type="submit" name="will_publish" value="1" onclick="doChangePublishedStatus(this.value);">{$lang->cmd_publish}</button></span>
|
||||
<!--@elseif ($search_target=='is_published' && $search_keyword=="Y")-->
|
||||
<span class="btn"><button type="submit" name="will_publish" value="0" onclick="doChangePublishedStatus(this.value);">{$lang->cmd_unpublish}</button></span>
|
||||
<!--@else-->
|
||||
<span class="btn"><button type="submit" name="will_publish" value="1" onclick="doChangePublishedStatus(this.value);">{$lang->cmd_publish}</button></span>
|
||||
<span class="btn"><button type="submit" name="will_publish" value="0" onclick="doChangePublishedStatus(this.value);">{$lang->cmd_unpublish}</button></span>
|
||||
<!--@end-->
|
||||
<span class="btn"><button type="submit" name="is_trash" value="true">{$lang->cmd_trash}</button></span>
|
||||
<span class="btn"><button type="submit" name="is_trash" value="false">{$lang->cmd_delete}</button></span>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -32,6 +32,16 @@
|
|||
<option value="N" selected="selected"|cond="$comment_config->use_vote_down=='N'">{$lang->notuse}</option>
|
||||
</select>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="use_comment_validation">{$lang->cmd_comment_validation}</label></th>
|
||||
<td>
|
||||
<select name="use_comment_validation">
|
||||
<option value="N" selected="selected"|cond="$comment_config->use_comment_validation=='N'">{$lang->notuse}</option>
|
||||
<option value="Y" selected="selected"|cond="$comment_config->use_comment_validation=='Y'">{$lang->use}</option>
|
||||
</select>
|
||||
<p>{$lang->about_comment_validation}</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ function completeGetCommentList(ret_obj, response_tags)
|
|||
{
|
||||
var htmlListBuffer = '';
|
||||
var statusNameList = {"N":"Public", "Y":"Secret"};
|
||||
|
||||
var publishedStatusList = {0:'Unpublished', 1:'Published'};
|
||||
if(ret_obj['comment_list'] == null)
|
||||
{
|
||||
htmlListBuffer = '<tr>' +
|
||||
|
|
@ -58,6 +58,7 @@ function completeGetCommentList(ret_obj, response_tags)
|
|||
'<td class="title">'+ objComment.content +'</td>' +
|
||||
'<td class="nowr">'+ objComment.nick_name +'</td>' +
|
||||
'<td class="nowr">'+ statusNameList[objComment.is_secret] +'</td>' +
|
||||
'<td>'+ publishedStatusList[objComment.status] +'</td>' +
|
||||
'</tr>' +
|
||||
'<input type="hidden" name="cart[]" value="'+objComment.comment_srl+'" />';
|
||||
}
|
||||
|
|
@ -66,6 +67,16 @@ function completeGetCommentList(ret_obj, response_tags)
|
|||
jQuery('#commentManageListTable>tbody').html(htmlListBuffer);
|
||||
}
|
||||
|
||||
function doChangePublishedStatus(new_status)
|
||||
{
|
||||
container_div = jQuery("#listManager");
|
||||
var act = container_div.find("input[name=act]");
|
||||
var will_publish = container_div.find("input[name=will_publish]");
|
||||
var action = "procCommentAdminChangePublishedStatusChecked";
|
||||
will_publish.val(new_status);
|
||||
act.val(action);
|
||||
}
|
||||
|
||||
function checkSearch(form)
|
||||
{
|
||||
if(form.search_target.value == '')
|
||||
|
|
|
|||
|
|
@ -534,6 +534,7 @@
|
|||
// Create commentItem object from a comment list
|
||||
// If admin priviledge is granted on parent posts, you can read its child posts.
|
||||
$accessible = array();
|
||||
$comment_list = array();
|
||||
foreach($output->data as $key => $val) {
|
||||
$oCommentItem = new commentItem();
|
||||
$oCommentItem->setAttribute($val);
|
||||
|
|
@ -845,5 +846,23 @@
|
|||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public function getTranslationLangCodes()
|
||||
{
|
||||
$obj->document_srl = $this->document_srl;
|
||||
// -2 is an index for content. We are interested if content has other translations.
|
||||
$obj->var_idx = -2;
|
||||
$output = executeQueryArray('document.getDocumentTranslationLangCodes', $obj);
|
||||
|
||||
if (!$output->data)
|
||||
{
|
||||
$output->data = array();
|
||||
}
|
||||
// add original page's lang code as well
|
||||
$origLangCode->lang_code = $this->getLangCode();
|
||||
$output->data[] = $origLangCode;
|
||||
|
||||
return $output->data;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
12
modules/document/queries/getDocumentTranslationLangCodes.xml
Normal file
12
modules/document/queries/getDocumentTranslationLangCodes.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<query id="getDocumentTranslationLangCodes" action="select">
|
||||
<tables>
|
||||
<table name="document_extra_vars" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="DISTINCT(lang_code)" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="document_srl" var="document_srl" notnull="notnull" />
|
||||
<condition operation="equal" column="var_idx" var="var_idx" default="-2" notnull="notnull" pipe="and" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -3,7 +3,8 @@
|
|||
<table name="comments" />
|
||||
<table name="documents" type="left outer join" >
|
||||
<conditions>
|
||||
<condition operation="equal" column="comments.document_srl" default="documents.document_srl" />
|
||||
<condition operation="equal" column="comments.status" default="1" pipe="and" />
|
||||
<condition operation="equal" column="comments.document_srl" default="documents.document_srl" pipe="and" />
|
||||
</conditions>
|
||||
</table>
|
||||
</tables>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
<column name="count(*)" alias="count" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="document_srl" var="document_srl" filter="number" notnull="notnull" />
|
||||
<condition operation="equal" column="status" default="1" notnull="notnull" pipe="and" />
|
||||
<condition operation="equal" column="document_srl" var="document_srl" filter="number" notnull="notnull" pipe="and" />
|
||||
<condition operation="excess" column="member_srl" default="0" pipe="and" />
|
||||
</conditions>
|
||||
<groups>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue