mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-05 09:41:40 +09:00
이전의 설문조사는 어쩔 수 없으나 신규 설문조사 부터는 문서/댓글의 위치를 trigger을 이용하여 제대로 연결되도록 하고 관리자 페이지에서 문서 또는 댓글에서의 등록 유무를 체크하여 원본을 잘 찾도록 기능 변경
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@4127 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
0e38dea1d0
commit
a69193bc50
13 changed files with 153 additions and 13 deletions
|
|
@ -27,7 +27,6 @@
|
|||
<input type="hidden" name="component" value="{$component_info->component_name}" />
|
||||
<input type="hidden" name="method" value="insertPoll" />
|
||||
<input type="hidden" name="poll_srl" value="" />
|
||||
<input type="hidden" name="editor_sequence" value="{$editor_sequence}" />
|
||||
<input type="hidden" name="stop_date" id="stop_date" value="{date("Ymd",time()+60*60*24*30)}" />
|
||||
|
||||
<div id="popBody">
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@
|
|||
|
||||
<action name="getPollGetColorsetList" type="model" standalone="true" />
|
||||
|
||||
<action name="getPollAdminTarget" type="model" standalone="true" />
|
||||
|
||||
<action name="procInsert" type="controller" standalone="true" />
|
||||
<action name="procPoll" type="controller" standalone="true" />
|
||||
<action name="procPollViewResult" type="controller" standalone="true" />
|
||||
|
|
|
|||
|
|
@ -24,5 +24,27 @@
|
|||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 설문조사의 원본을 구함
|
||||
**/
|
||||
function getPollAdminTarget() {
|
||||
$poll_srl = Context::get('poll_srl');
|
||||
$upload_target_srl = Context::get('upload_target_srl');
|
||||
|
||||
$oDocumentModel = &getModel('document');
|
||||
$oCommentModel = &getModel('comment');
|
||||
|
||||
$oDocument = $oDocumentModel->getDocument($upload_target_srl);
|
||||
|
||||
if(!$oDocument->isExists()) $oComment = $oCommentModel->getComment($upload_target_srl);
|
||||
|
||||
if($oComment->isExists()) {
|
||||
$this->add('document_srl', $oComment->get('document_srl'));
|
||||
$this->add('comment_srl', $oComment->get('comment_srl'));
|
||||
} elseif($oDocument->isExists()) {
|
||||
$this->add('document_srl', $oDocument->get('document_srl'));
|
||||
} else return new Object(-1, 'msg_not_founded');
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -23,6 +23,10 @@
|
|||
$oModuleController->insertModuleConfig('poll', $config);
|
||||
|
||||
// 2007. 10. 17 글/댓글의 삭제시 설문조사도 삭제
|
||||
$oModuleController->insertTrigger('document.insertDocument', 'poll', 'controller', 'triggerInsertDocumentPoll', 'after');
|
||||
$oModuleController->insertTrigger('comment.insertComment', 'poll', 'controller', 'triggerInsertCommentPoll', 'after');
|
||||
$oModuleController->insertTrigger('document.updateDocument', 'poll', 'controller', 'triggerUpdateDocumentPoll', 'after');
|
||||
$oModuleController->insertTrigger('comment.updateComment', 'poll', 'controller', 'triggerUpdateCommentPoll', 'after');
|
||||
$oModuleController->insertTrigger('document.deleteDocument', 'poll', 'controller', 'triggerDeleteDocumentPoll', 'after');
|
||||
$oModuleController->insertTrigger('comment.deleteComment', 'poll', 'controller', 'triggerDeleteCommentPoll', 'after');
|
||||
|
||||
|
|
@ -36,6 +40,10 @@
|
|||
$oModuleModel = &getModel('module');
|
||||
|
||||
// 2007. 10. 17 글/댓글의 삭제시 설문조사도 삭제
|
||||
if(!$oModuleModel->getTrigger('document.insertDocument', 'poll', 'controller', 'triggerInsertDocumentPoll', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('comment.insertComment', 'poll', 'controller', 'triggerInsertCommentPoll', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('document.updateDocument', 'poll', 'controller', 'triggerUpdateDocumentPoll', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('comment.updateComment', 'poll', 'controller', 'triggerUpdateCommentPoll', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('document.deleteDocument', 'poll', 'controller', 'triggerDeleteDocumentPoll', 'after')) return true;
|
||||
if(!$oModuleModel->getTrigger('comment.deleteComment', 'poll', 'controller', 'triggerDeleteCommentPoll', 'after')) return true;
|
||||
|
||||
|
|
@ -55,6 +63,16 @@
|
|||
if(!$oModuleModel->getTrigger('comment.deleteComment', 'poll', 'controller', 'triggerDeleteCommentPoll', 'after'))
|
||||
$oModuleController->insertTrigger('comment.deleteComment', 'poll', 'controller', 'triggerDeleteCommentPoll', 'after');
|
||||
|
||||
// 2008. 04. 22 글/댓글의 추가기 설문조사의 연결
|
||||
if(!$oModuleModel->getTrigger('document.insertDocument', 'poll', 'controller', 'triggerInsertDocumentPoll', 'after'))
|
||||
$oModuleController->insertTrigger('document.insertDocument', 'poll', 'controller', 'triggerInsertDocumentPoll', 'after');
|
||||
if(!$oModuleModel->getTrigger('comment.insertComment', 'poll', 'controller', 'triggerInsertCommentPoll', 'after'))
|
||||
$oModuleController->insertTrigger('comment.insertComment', 'poll', 'controller', 'triggerInsertCommentPoll', 'after');
|
||||
if(!$oModuleModel->getTrigger('document.updateDocument', 'poll', 'controller', 'triggerUpdateDocumentPoll', 'after'))
|
||||
$oModuleController->insertTrigger('document.updateDocument', 'poll', 'controller', 'triggerUpdateDocumentPoll', 'after');
|
||||
if(!$oModuleModel->getTrigger('comment.updateComment', 'poll', 'controller', 'triggerUpdateCommentPoll', 'after'))
|
||||
$oModuleController->insertTrigger('comment.updateComment', 'poll', 'controller', 'triggerUpdateCommentPoll', 'after');
|
||||
|
||||
return new Object(0, 'success_updated');
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -17,13 +17,6 @@
|
|||
* @brief 팝업창에서 설문 작성 완료후 저장을 누를때 설문 등록
|
||||
**/
|
||||
function procInsert() {
|
||||
// 기본적으로 필요한 변수 설정
|
||||
$editor_sequence = Context::get('editor_sequence');
|
||||
|
||||
// upload_target_srl 구함
|
||||
$upload_target_srl = $_SESSION['upload_info'][$editor_sequence]->upload_target_srl;
|
||||
if(!$upload_target_srl) $upload_target_srl = getNextSequence();
|
||||
|
||||
$stop_date = Context::get('stop_date');
|
||||
if($stop_date < date("Ymd")) $stop_date = date("YmdHis", time()+60*60*24*365);
|
||||
|
||||
|
|
@ -67,7 +60,6 @@
|
|||
$poll_args->list_order = $poll_srl*-1;
|
||||
$poll_args->stop_date = $args->stop_date;
|
||||
$poll_args->poll_count = 0;
|
||||
$poll_args->upload_target_srl = $upload_target_srl;
|
||||
$output = executeQuery('poll.insertPoll', $poll_args);
|
||||
if(!$output->toBool()) {
|
||||
$oDB->rollback();
|
||||
|
|
@ -197,6 +189,38 @@
|
|||
$this->add('tpl',$tpl);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 게시글 등록시 poll 연결하는 trigger
|
||||
**/
|
||||
function triggerInsertDocumentPoll(&$obj) {
|
||||
$this->syncPoll($obj->document_srl, $obj->content);
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 댓글 등록시 poll 연결하는 trigger
|
||||
**/
|
||||
function triggerInsertCommentPoll(&$obj) {
|
||||
$this->syncPoll($obj->comment_srl, $obj->content);
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 게시글 수정시 poll 연결하는 trigger
|
||||
**/
|
||||
function triggerUpdateDocumentPoll(&$obj) {
|
||||
$this->syncPoll($obj->document_srl, $obj->content);
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 댓글 등록시 poll 연결하는 trigger
|
||||
**/
|
||||
function triggerUpdateCommentPoll(&$obj) {
|
||||
$this->syncPoll($obj->comment_srl, $obj->content);
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 게시글 삭제시 poll 삭제하는 trigger
|
||||
**/
|
||||
|
|
@ -260,5 +284,27 @@
|
|||
|
||||
return new Object();
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 게시글 내용의 설문조사를 구해와서 문서 번호와 연결
|
||||
**/
|
||||
function syncPoll($upload_target_srl, $content) {
|
||||
$match_cnt = preg_match_all('!<img([^\>]*)poll_srl=(["\']?)([0-9]*)(["\']?)([^\>]*?)\>!is',$content, $matches);
|
||||
for($i=0;$i<$match_cnt;$i++) {
|
||||
$poll_srl = $matches[3][$i];
|
||||
|
||||
$args = null;
|
||||
$args->poll_srl = $poll_srl;
|
||||
$output = executeQuery('poll.getPoll', $args);
|
||||
$poll = $output->data;
|
||||
|
||||
if($poll->upload_target_srl) continue;
|
||||
|
||||
$args->upload_target_srl = $upload_target_srl;
|
||||
$output = executeQuery('poll.updatePollTarget', $args);
|
||||
$output = executeQuery('poll.updatePollTitleTarget', $args);
|
||||
$output = executeQuery('poll.updatePollItemTarget', $args);
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<column name="member_srl" var="member_srl" />
|
||||
<column name="ipaddress" var="ipaddress" default="ipaddress()" />
|
||||
<column name="poll_count" var="poll_count" default="0" />
|
||||
<column name="upload_target_srl" var="upload_target_srl" filter="number" notnull="notnull" />
|
||||
<column name="upload_target_srl" default="0" />
|
||||
<column name="regdate" var="regdate" default="curdate()" />
|
||||
<column name="list_order" var="list_order" default="0" />
|
||||
</columns>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@
|
|||
<column name="poll_srl" var="poll_srl" filter="number" notnull="notnull" />
|
||||
<column name="poll_index_srl" var="poll_index_srl" filter="number" notnull="notnull" />
|
||||
<column name="poll_count" var="poll_count" default="0" />
|
||||
<column name="upload_target_srl" var="upload_target_srl" filter="number" notnull="notnull" />
|
||||
<column name="upload_target_srl" default="0" />
|
||||
<column name="title" var="title" notnull="notnull" />
|
||||
</columns>
|
||||
</query>
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@
|
|||
<column name="poll_count" var="poll_count" default="0" />
|
||||
<column name="checkcount" var="checkcount" notnull="notnull" default="1" />
|
||||
<column name="member_srl" var="member_srl" />
|
||||
<column name="upload_target_srl" var="upload_target_srl" filter="number" notnull="notnull" />
|
||||
<column name="upload_target_srl" default="0" />
|
||||
<column name="ipaddress" var="ipaddress" default="ipaddress()" />
|
||||
<column name="regdate" var="regdate" default="curdate()" />
|
||||
<column name="list_order" var="list_order" default="0" />
|
||||
|
|
|
|||
12
modules/poll/queries/updatePollItemTarget.xml
Normal file
12
modules/poll/queries/updatePollItemTarget.xml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
<query id="updatePollTarget" action="update">
|
||||
<tables>
|
||||
<table name="poll_item" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="upload_target_srl" var="upload_target_srl" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="poll_srl" var="poll_srl" filter="number" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
||||
11
modules/poll/queries/updatePollTarget.xml
Normal file
11
modules/poll/queries/updatePollTarget.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="updatePollTarget" action="update">
|
||||
<tables>
|
||||
<table name="poll" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="upload_target_srl" var="upload_target_srl" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="poll_srl" var="poll_srl" filter="number" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
11
modules/poll/queries/updatePollTitleTarget.xml
Normal file
11
modules/poll/queries/updatePollTitleTarget.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<query id="updatePollTitleTarget" action="update">
|
||||
<tables>
|
||||
<table name="poll_title" />
|
||||
</tables>
|
||||
<columns>
|
||||
<column name="upload_target_srl" var="upload_target_srl" />
|
||||
</columns>
|
||||
<conditions>
|
||||
<condition operation="equal" column="poll_srl" var="poll_srl" filter="number" notnull="notnull" />
|
||||
</conditions>
|
||||
</query>
|
||||
|
|
@ -36,3 +36,21 @@ function completeGetSkinColorset(ret_obj, response_tags, params, fo_obj) {
|
|||
sel.selectedIndex = selected_index;
|
||||
}
|
||||
|
||||
/* 관리자 페이지에서 선택된 설문조사 원본글로 이동하는 함수 */
|
||||
function doMovePoll(poll_srl, upload_target_srl) {
|
||||
|
||||
var params = new Array();
|
||||
params['poll_srl'] = poll_srl;
|
||||
params['upload_target_srl'] = upload_target_srl;
|
||||
|
||||
var response_tags = new Array('error','message','document_srl','comment_srl');
|
||||
exec_xml('poll','getPollAdminTarget', params, completeMovePoll, response_tags);
|
||||
}
|
||||
|
||||
function completeMovePoll(ret_obj, response_tags) {
|
||||
var document_srl = ret_obj['document_srl'];
|
||||
var comment_srl = ret_obj['comment_srl'];
|
||||
var url = request_uri.setQuery('document_srl', document_srl);
|
||||
if(comment_srl) url = url+'#comment_'+comment_srl;
|
||||
winopen(url, 'pollTarget');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
<!--%import("filter/delete_checked.xml")-->
|
||||
<!--%import("js/poll_admin.js")-->
|
||||
|
||||
<!--#include("./header.html")-->
|
||||
|
||||
|
|
@ -82,7 +83,7 @@
|
|||
<tr>
|
||||
<td class="tahoma">{$no}</td>
|
||||
<td><input type="checkbox" name="cart" value="{$val->poll_index_srl}" /></td>
|
||||
<td class="left blue"><a href="{getUrl('','document_srl',$val->upload_target_srl)}" onclick="winopen(this.href); return false;">{htmlspecialchars($val->title)}</a></td>
|
||||
<td class="left blue"><a href="#" onclick="doMovePoll({$val->poll_srl},{$val->upload_target_srl});return false;">{htmlspecialchars($val->title)}</a></td>
|
||||
<td class="tahoma">{$val->checkcount}</td>
|
||||
<td class="tahoma">{$val->poll_count}</td>
|
||||
<td class="tahoma">{zdate($val->regdate,"Y-m-d H:i")}</td>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue