git-svn-id: http://xe-core.googlecode.com/svn/trunk@131 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-02-20 12:11:42 +00:00
parent 2525fe0838
commit d21fbeb6c6
19 changed files with 132 additions and 65 deletions

View file

@ -18,7 +18,7 @@
/** /**
* @brief debug mode = true 일때 files/_debug_message.php 디버그 내용이 쌓임 * @brief debug mode = true 일때 files/_debug_message.php 디버그 내용이 쌓임
**/ **/
define('__DEBUG__', true); define('__DEBUG__', false);
if(__DEBUG__) { if(__DEBUG__) {
// php5이상이면 error handling을 handleError() 로 set // php5이상이면 error handling을 handleError() 로 set

View file

@ -93,7 +93,7 @@
$oDocumentController = &getController('document'); $oDocumentController = &getController('document');
// 삭제 시도 // 삭제 시도
$output = $oDocumentController->deleteDocument($document_srl); $output = $oDocumentController->deleteDocument($document_srl, $this->grant->manager);
if(!$output->toBool()) return $output; if(!$output->toBool()) return $output;
$this->add('mid', Context::get('mid')); $this->add('mid', Context::get('mid'));
@ -232,17 +232,16 @@
} }
// 글이 없을 경우 에러 // 글이 없을 경우 에러
if(!$data) return $this->doError('msg_invalid_request'); if(!$data) return new Object(-1, 'msg_invalid_request');
// 문서의 비밀번호와 입력한 비밀번호의 비교 // 문서의 비밀번호와 입력한 비밀번호의 비교
if($data->password != $password) return $this->doError('msg_invalid_password'); if($data->password != $password) return new Object(-1, 'msg_invalid_password');
// 해당 글에 대한 권한 부여 // 해당 글에 대한 권한 부여
if($comment_srl) { if($comment_srl) {
$oCommentController = &getController('comment'); $oCommentController = &getController('comment');
$oCommentController->addGrant($comment_srl); $oCommentController->addGrant($comment_srl);
} else { } else {
$_SESSION['own_document'][$document_srl] = true;
$oDocumentController = &getController('document'); $oDocumentController = &getController('document');
$oDocumentController->addGrant($document_srl); $oDocumentController->addGrant($document_srl);
} }
@ -291,7 +290,7 @@
* file_srl : 파일의 sequence\n * file_srl : 파일의 sequence\n
* sid : db에 저장된 비교 , 틀리면 다운로드 하지 낳음\n * sid : db에 저장된 비교 , 틀리면 다운로드 하지 낳음\n
**/ **/
function procDownload() { function procDownloadFile() {
// 다운로드에 필요한 변수 체크 // 다운로드에 필요한 변수 체크
$file_srl = Context::get('file_srl'); $file_srl = Context::get('file_srl');
$sid = Context::get('sid'); $sid = Context::get('sid');

View file

@ -143,7 +143,7 @@
} }
// 삭제하려는 글이 없으면 에러 // 삭제하려는 글이 없으면 에러
if(!$document) return $this->list(); if(!$document) return $this->dispContent();
// 권한이 없는 경우 비밀번호 입력화면으로 // 권한이 없는 경우 비밀번호 입력화면으로
if($document&&!$document->is_granted) return $this->setTemplateFile('input_password_form'); if($document&&!$document->is_granted) return $this->setTemplateFile('input_password_form');
@ -169,7 +169,7 @@
// 해당 댓글를 찾아본다 // 해당 댓글를 찾아본다
$oCommentModel = &getModel('comment'); $oCommentModel = &getModel('comment');
$source_comment = $oCommentModel->getComment($parent_srl); $source_comment = $oCommentModel->getComment($parent_srl, $this->grant->manager);
// 댓글이 없다면 오류 // 댓글이 없다면 오류
if(!$source_comment) return $this->dispMessage('msg_invalid_request'); if(!$source_comment) return $this->dispMessage('msg_invalid_request');
@ -199,7 +199,7 @@
// 해당 댓글를 찾아본다 // 해당 댓글를 찾아본다
$oCommentModel = &getModel('comment'); $oCommentModel = &getModel('comment');
$comment = $oCommentModel->getComment($comment_srl); $comment = $oCommentModel->getComment($comment_srl, $this->grant->manager);
// 댓글이 없다면 오류 // 댓글이 없다면 오류
if(!$comment) return $this->dispMessage('msg_invalid_request'); if(!$comment) return $this->dispMessage('msg_invalid_request');
@ -228,11 +228,11 @@
// 삭제하려는 댓글가 있는지 확인 // 삭제하려는 댓글가 있는지 확인
if($comment_srl) { if($comment_srl) {
$oCommentModel = &getModel('comment'); $oCommentModel = &getModel('comment');
$comment = $oCommentModel->getComment($comment_srl); $comment = $oCommentModel->getComment($comment_srl, $this->grant->manager);
} }
// 삭제하려는 글이 없으면 에러 // 삭제하려는 글이 없으면 에러
if(!$comment) return $this->list(); if(!$comment) return $this->dispContent();
// 권한이 없는 경우 비밀번호 입력화면으로 // 권한이 없는 경우 비밀번호 입력화면으로
if($comment_srl&&$comment&&!$comment->is_granted) return $this->setTemplateFile('input_password_form'); if($comment_srl&&$comment&&!$comment->is_granted) return $this->setTemplateFile('input_password_form');
@ -364,7 +364,7 @@
* @brief 게시판의 정보 출력 * @brief 게시판의 정보 출력
**/ **/
function dispAdminBoardInfo() { function dispAdminBoardInfo() {
if(!Context::get('module_srl')) return $this->list(); if(!Context::get('module_srl')) return $this->dispContent();
// 템플릿 파일 지정 // 템플릿 파일 지정
$this->setTemplateFile('info'); $this->setTemplateFile('info');
@ -382,7 +382,7 @@
* @brief 게시판 삭제 화면 출력 * @brief 게시판 삭제 화면 출력
**/ **/
function dispAdminDeleteBoard() { function dispAdminDeleteBoard() {
if(!Context::get('module_srl')) return $this->list(); if(!Context::get('module_srl')) return $this->dispContent();
$module_info = Context::get('module_info'); $module_info = Context::get('module_info');

View file

@ -57,7 +57,7 @@
<action name="procVerificationPassword" type="controller" /> <action name="procVerificationPassword" type="controller" />
<action name="procDeleteFile" type="controller" /> <action name="procDeleteFile" type="controller" />
<action name="procUploadFile" type="controller" /> <action name="procUploadFile" type="controller" />
<action name="procDownload" type="controller" /> <action name="procDownloadFile" type="controller" />
<action name="procClearFile" type="controller" /> <action name="procClearFile" type="controller" />
<action name="procInsertGrant" type="controller" grant="root"/> <action name="procInsertGrant" type="controller" grant="root"/>
<action name="procUpdateSkinInfo" type="controller" grant="root"/> <action name="procUpdateSkinInfo" type="controller" grant="root"/>

View file

@ -46,7 +46,7 @@
<!--@end--> <!--@end-->
<!-- 댓글 입력 폼 --> <!-- 댓글 입력 폼 -->
<!--@if($document->lock_comment == 'N')--> <!--@if($grant->write_comment && $document->lock_comment == 'N')-->
<!--#include("./comment_form.html")--> <!--#include("./comment_form.html")-->
<!--@end--> <!--@end-->

View file

@ -15,14 +15,6 @@
<th>{$lang->user_name}</th> <th>{$lang->user_name}</th>
<td>{$source_comment->user_name}</td> <td>{$source_comment->user_name}</td>
</tr> </tr>
<tr>
<th>{$lang->readed_count}</th>
<td>{$source_comment->readed_count}</td>
</tr>
<tr>
<th>{$lang->voted_count}</th>
<td>{$source_comment->voted_count}</td>
</tr>
<tr> <tr>
<th>{$lang->content}</th> <th>{$lang->content}</th>
<td height="100" valign="top">{nl2br($source_comment->content)}</td> <td height="100" valign="top">{nl2br($source_comment->content)}</td>

View file

@ -1,4 +1,4 @@
<filter name="insert_comment" module="board" action="procInsertComment" confirm_msg_code="confirm_submit"> <filter name="insert_comment" module="board" act="procInsertComment" confirm_msg_code="confirm_submit">
<form> <form>
<node target="document_srl" required="true" /> <node target="document_srl" required="true" />
<node target="user_name" required="true" /> <node target="user_name" required="true" />
@ -9,7 +9,6 @@
</form> </form>
<parameter> <parameter>
<param name="mid" target="mid" /> <param name="mid" target="mid" />
<param name="act" target="act" />
<param name="document_srl" target="document_srl" /> <param name="document_srl" target="document_srl" />
<param name="comment_srl" target="comment_srl" /> <param name="comment_srl" target="comment_srl" />
<param name="parent_srl" target="parent_srl" /> <param name="parent_srl" target="parent_srl" />

View file

@ -1,14 +1,14 @@
<filter name="search" module="board" act="procSearch"> <filter name="search" module="board">
<form> <form>
<node target="search_target" required="true" /> <node target="search_target" required="true" />
<node target="keyword" minlegnth="2" maxlength="40" required="true" /> <node target="search_keyword" minlegnth="2" maxlength="40" required="true" />
</form> </form>
<parameter> <parameter>
<param name="mid" target="mid" /> <param name="mid" target="mid" />
<param name="search_target" target="search_target" /> <param name="search_target" target="search_target" />
<param name="keyword" target="keyword" /> <param name="search_keyword" target="search_keyword" />
</parameter> </parameter>
<response> <response callback_func="completeSearch">
<tag name="error" /> <tag name="error" />
<tag name="message" /> <tag name="message" />
</response> </response>

View file

@ -1,10 +1,9 @@
<filter name="vote" module="board" act="procVote" confirm_msg_code="confirm_vote"> <filter name="vote" module="board" act="procVoteDocument" confirm_msg_code="confirm_vote">
<form> <form>
<node target="document_srl" required="true" /> <node target="document_srl" required="true" />
</form> </form>
<parameter> <parameter>
<param name="mid" target="mid" /> <param name="mid" target="mid" />
<param name="act" target="act" />
<param name="document_srl" target="document_srl" /> <param name="document_srl" target="document_srl" />
</parameter> </parameter>
<response callback_func="completeVote"> <response callback_func="completeVote">

View file

@ -30,7 +30,7 @@ function completeDeleteDocument(ret_obj) {
} }
/* 검색 실행 */ /* 검색 실행 */
function completeSearch(fo_obj, args) { function completeSearch(fo_obj, params) {
fo_obj.submit(); fo_obj.submit();
} }
@ -44,7 +44,6 @@ function completeVote(ret_obj) {
var error = ret_obj['error']; var error = ret_obj['error'];
var message = ret_obj['message']; var message = ret_obj['message'];
alert(message); alert(message);
location.href = location.href; location.href = location.href;
} }
@ -99,7 +98,7 @@ function completeDeleteTrackback(ret_obj) {
} }
/* 카테고리 이동 */ /* 카테고리 이동 */
function completeChangeCategory(sel_obj, url) { function doChangeCategory(sel_obj, url) {
var category_srl = sel_obj.options[sel_obj.selectedIndex].value; var category_srl = sel_obj.options[sel_obj.selectedIndex].value;
if(!category_srl) location.href=url; if(!category_srl) location.href=url;
else location.href=url+'&category='+category_srl; else location.href=url+'&category='+category_srl;

View file

@ -49,7 +49,7 @@
<!--@if($category_list)--> <!--@if($category_list)-->
<th> <th>
<form action="./" method="get"> <form action="./" method="get">
<select name="category" onchange="procChangeCategory(this, '{getUrl('category','')}')" > <select name="category" onchange="doChangeCategory(this, '{getUrl('category','')}')" >
<option value="">{$lang->category}</option> <option value="">{$lang->category}</option>
<!--@foreach($category_list as $val)--> <!--@foreach($category_list as $val)-->
<option value="{$val->category_srl}" <!--@if($category==$val->category_srl)-->selected="true"<!--@end-->>{$val->title} <!--@if($val->document_count)-->({$val->document_count})<!--@end--></option> <option value="{$val->category_srl}" <!--@if($category==$val->category_srl)-->selected="true"<!--@end-->>{$val->title} <!--@if($val->document_count)-->({$val->document_count})<!--@end--></option>
@ -105,14 +105,15 @@
<div> <div>
<form action="./" method="get" onsubmit="return procFilter(this, search)"> <form action="./" method="get" onsubmit="return procFilter(this, search)">
<input type="hidden" name="mid" value="{$mid}" /> <input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="category" value="{$category}" />
<select name="search_target"> <select name="search_target">
<!--@foreach($search_option as $key => $val)--> <!--@foreach($search_option as $key => $val)-->
<option value="{$key}" <!--@if($search_target==$key)-->selected="true"<!--@end-->>{$val}</option> <option value="{$key}" <!--@if($search_target==$key)-->selected="true"<!--@end-->>{$val}</option>
<!--@end--> <!--@end-->
</select> </select>
<input type="text" name="keyword" value="{htmlspecialchars($keyword)}" /> <input type="text" name="search_keyword" value="{htmlspecialchars($search_keyword)}" />
<input type="submit" value="{$lang->cmd_search}" /> <input type="submit" value="{$lang->cmd_search}" />
<input type="button" value="{$lang->cmd_cancel}" onclick="location.href='{getUrl('search_target','','keyword','','page','1','document_srl','')}'"/> <input type="button" value="{$lang->cmd_cancel}" onclick="location.href='{getUrl('search_target','','search_keyword','','page','1','document_srl','')}'"/>
</form> </form>
</div> </div>

View file

@ -4,7 +4,6 @@
<!-- 현 글의 기본 정보를 담고 있는 form. 필수 --> <!-- 현 글의 기본 정보를 담고 있는 form. 필수 -->
<form id="fo_document_info" action="./" method="get"> <form id="fo_document_info" action="./" method="get">
<input type="hidden" name="mid" value="{$mid}" /> <input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="act" value="procVoteDocument" />
<input type="hidden" name="document_srl" value="{$document_srl}" /> <input type="hidden" name="document_srl" value="{$document_srl}" />
</form> </form>

View file

@ -35,7 +35,7 @@
// 원본글을 가져옴 // 원본글을 가져옴
$document = $oDocumentModel->getDocument($document_srl); $document = $oDocumentModel->getDocument($document_srl);
if(!$document_srl) return new Object(-1,'msg_invalid_document'); if($document_srl != $document->document_srl) return new Object(-1,'msg_invalid_document');
if($document->lock_comment=='Y') return new Object(-1,'msg_invalid_request'); if($document->lock_comment=='Y') return new Object(-1,'msg_invalid_request');
// 댓글를 입력 // 댓글를 입력
@ -55,13 +55,16 @@
// 해당 글의 전체 댓글 수를 구해옴 // 해당 글의 전체 댓글 수를 구해옴
$comment_count = $oCommentModel->getCommentCount($document_srl); $comment_count = $oCommentModel->getCommentCount($document_srl);
// document의 controller 객체 생성
$oDocumentController = &getController('document');
// 해당글의 댓글 수를 업데이트 // 해당글의 댓글 수를 업데이트
$output = $this->updateCommentCount($document_srl, $comment_count); $output = $oDocumentController->updateCommentCount($document_srl, $comment_count);
// 댓글의 권한을 부여 // 댓글의 권한을 부여
$this->addGrant($obj->comment_srl); $this->addGrant($obj->comment_srl);
$output->add('comment_srl', $obj->comment_srl);
$output->add('comment_srl', $obj->comment_srl);
return $output; return $output;
} }

View file

@ -35,10 +35,11 @@
/** /**
* @brief 댓글 가져오기 * @brief 댓글 가져오기
**/ **/
function getComment($comment_srl) { function getComment($comment_srl, $is_admin = false) {
$oDB = &DB::getInstance(); $oDB = &DB::getInstance();
$args->comment_srl = $comment_srl; $args->comment_srl = $comment_srl;
$output = $oDB->executeQuery('comment.getComment', $args); $output = $oDB->executeQuery('comment.getComment', $args);
if($is_admin || $this->isGranted($comment_srl)) $output->data->is_granted = true;
return $output->data; return $output->data;
} }
@ -68,7 +69,7 @@
/** /**
* @brief document_srl에 해당하는 문서의 댓글 목록을 가져옴 * @brief document_srl에 해당하는 문서의 댓글 목록을 가져옴
**/ **/
function getCommentList($document_srl) { function getCommentList($document_srl, $is_admin = false) {
$oDB = &DB::getInstance(); $oDB = &DB::getInstance();
$args->document_srl = $document_srl; $args->document_srl = $document_srl;

View file

@ -42,7 +42,8 @@
// 카테고리가 있나 검사하여 없는 카테고리면 0으로 세팅 // 카테고리가 있나 검사하여 없는 카테고리면 0으로 세팅
if($obj->category_srl) { if($obj->category_srl) {
$category_list = $this->getCategoryList($obj->module_srl); $oDocumentModel = &getModel('document');
$category_list = $oDocumentModel->getCategoryList($obj->module_srl);
if(!$category_list[$obj->category_srl]) $obj->category_srl = 0; if(!$category_list[$obj->category_srl]) $obj->category_srl = 0;
} }
@ -130,20 +131,17 @@
/** /**
* @brief 문서 삭제 * @brief 문서 삭제
**/ **/
function deleteDocument($obj) { function deleteDocument($document_srl, $is_admin = false) {
// 변수 세팅
$document_srl = $obj->document_srl;
$category_srl = $obj->category_srl;
// document의 model 객체 생성 // document의 model 객체 생성
$oDocumentModel = &getModel('document'); $oDocumentModel = &getModel('document');
// 기존 문서가 있는지 확인 // 기존 문서가 있는지 확인
$document = $oDocumentModel->getDocument($document_srl); $document = $oDocumentModel->getDocument($document_srl, $is_admin);
if($document->document_srl != $document_srl) return new Object(-1, 'msg_invalid_document'); if($document->document_srl != $document_srl) return new Object(-1, 'msg_invalid_document');
// 권한이 있는지 확인 // 권한이 있는지 확인
if(!$document->is_granted) return new Object(-1, 'msg_not_permitted'); if(!$document->is_granted&&!$is_admin) return new Object(-1, 'msg_not_permitted');
$oDB = &DB::getInstance(); $oDB = &DB::getInstance();
@ -242,16 +240,61 @@
* @brief 해당 document의 추천수 증가 * @brief 해당 document의 추천수 증가
**/ **/
function updateVotedCount($document_srl) { function updateVotedCount($document_srl) {
// 세션 정보에 추천 정보가 있으면 중단
if($_SESSION['voted_document'][$document_srl]) return new Object(-1, 'failed_voted'); if($_SESSION['voted_document'][$document_srl]) return new Object(-1, 'failed_voted');
// 문서 원본을 가져옴
$oDocumentModel = &getModel('document');
$document = $oDocumentModel->getDocument($document_srl, false, false);
// 글의 작성 ip와 현재 접속자의 ip가 동일하면 패스
if($document->ipaddress == $_SERVER['REMOTE_ADDR']) {
$_SESSION['voted_document'][$document_srl] = true;
return new Object(-1, 'failed_voted');
}
// document의 작성자가 회원일때 조사
if($document->member_srl) {
// member model 객체 생성
$oMemberModel = &getModel('member');
$member_srl = $oMemberModel->getLoggedMemberSrl();
// 글쓴이와 현재 로그인 사용자의 정보가 일치하면 읽었다고 생각하고 세션 등록후 패스
if($member_srl && $member_srl == $document->member_srl) {
$_SESSION['voted_document'][$document_srl] = true;
return new Object(-1, 'failed_voted');
}
}
// DB 객체 생성
$oDB = &DB::getInstance(); $oDB = &DB::getInstance();
// 로그인 사용자이면 member_srl, 비회원이면 ipaddress로 판단
if($member_srl) {
$args->member_srl = $member_srl;
} else {
$args->ipaddress = $_SERVER['REMOTE_ADDR'];
}
$args->document_srl = $document_srl; $args->document_srl = $document_srl;
$output = $oDB->executeQuery('document.getDocumentVotedLogInfo', $args);
// 로그 정보에 추천 로그가 있으면 세션 등록후 패스
if($output->data->count) {
$_SESSION['voted_document'][$document_srl] = true;
return new Object(-1, 'failed_voted');
}
// 추천수 업데이트
$output = $oDB->executeQuery('document.updateVotedCount', $args); $output = $oDB->executeQuery('document.updateVotedCount', $args);
// 로그 남기기
$output = $oDB->executeQuery('document.insertDocumentVotedLog', $args);
// 세션 정보에 남김
$_SESSION['voted_document'][$document_srl] = true; $_SESSION['voted_document'][$document_srl] = true;
return $output; // 결과 리턴
return new Object(0, 'success_voted');
} }
/** /**

View file

@ -116,23 +116,23 @@
function getDocumentList($obj) { function getDocumentList($obj) {
// 검색 키워드가 있으면 공백을 % 로 변경하여 키워드 or 연산이 되도록 수정 // 검색 키워드가 있으면 공백을 % 로 변경하여 키워드 or 연산이 되도록 수정
if($obj->keyword) $obj->keyword = str_replace(' ','%',$obj->keyword); if($obj->search_keyword) $obj->search_keyword = str_replace(' ','%',$obj->search_keyword);
if($obj->search_target && $obj->keyword) { if($obj->search_target && $obj->search_keyword) {
switch($obj->search_target) { switch($obj->search_target) {
case 'title' : case 'title' :
$search_obj->s_title = $obj->keyword; $search_obj->s_title = $obj->search_keyword;
break; break;
case 'content' : case 'content' :
$search_obj->s_content = $obj->keyword; $search_obj->s_content = $obj->search_keyword;
break; break;
case 'title_content' : case 'title_content' :
$search_obj->s_title = $obj->keyword; $search_obj->s_title = $obj->search_keyword;
$search_obj->s_content = $obj->keyword; $search_obj->s_content = $obj->search_keyword;
break; break;
case 'user_name' : case 'user_name' :
$search_obj->s_user_name = $obj->keyword; $search_obj->s_user_name = $obj->search_keyword;
break; break;
} }
} }
@ -142,12 +142,12 @@
// 변수 설정 // 변수 설정
$args->module_srl = $obj->module_srl; $args->module_srl = $obj->module_srl;
$args->s_title = $obj->search_target=='title'?$obj->keyword:''; $args->s_title = $obj->search_target=='title'?$obj->search_keyword:'';
$args->s_content = $obj->search_target=='content'?$obj->keyword:''; $args->s_content = $obj->search_target=='content'?$obj->search_keyword:'';
$args->s_user_name = $obj->search_target=='user_name'?$obj->keyword:''; $args->s_user_name = $obj->search_target=='user_name'?$obj->search_keyword:'';
$args->s_member_srl = $obj->search_target=='member'?$obj->keyword:''; $args->s_member_srl = $obj->search_target=='member'?$obj->search_keyword:'';
$args->s_ipaddress = $obj->search_target=='ipaddress'?$obj->keyword:''; $args->s_ipaddress = $obj->search_target=='ipaddress'?$obj->search_keyword:'';
$args->s_regdate = $obj->search_target=='regdate'?$obj->keyword:''; $args->s_regdate = $obj->search_target=='regdate'?$obj->search_keyword:'';
$args->category_srl = $obj->category_srl?$obj->category_srl:''; $args->category_srl = $obj->category_srl?$obj->category_srl:'';
$args->sort_index = $obj->sort_index; $args->sort_index = $obj->sort_index;
@ -266,7 +266,7 @@
**/ **/
function transContent($content) { function transContent($content) {
// 멀티미디어 코드의 변환 // 멀티미디어 코드의 변환
$content = preg_replace_callback('!<img([^\>]*)editor_multimedia([^\>]*?)>!is', array('Document','_transMultimedia'), $content); $content = preg_replace_callback('!<img([^\>]*)editor_multimedia([^\>]*?)>!is', array($this,'_transMultimedia'), $content);
// <br> 코드 변환 // <br> 코드 변환
$content = str_replace(array("<BR>","<br>","<Br>"),"<br />", $content); $content = str_replace(array("<BR>","<br>","<Br>"),"<br />", $content);

View file

@ -0,0 +1,15 @@
<query id="getDocumentVotedLogInfo" action="select">
<tables>
<table name="document_voted_log" />
</tables>
<columns>
<column name="count(*)" alias="count" />
</columns>
<conditions>
<condition operation="equal" column="document_srl" var="document_srl" filter="number" notnull="notnull" />
<group pipe="and">
<condition operation="equal" column="member_srl" var="member_srl" filter="number" pipe="and" />
<condition operation="equal" column="ipaddress" var="ipaddress" pipe="and" />
</group>
</conditions>
</query>

View file

@ -0,0 +1,11 @@
<query id="insertDocumentVotedLog" action="insert">
<tables>
<table name="document_voted_log" />
</tables>
<columns>
<column name="document_srl" var="document_srl" filter="number" default="0" notnull="notnull" />
<column name="member_srl" var="member_srl" filter="number" default="0" />
<column name="ipaddress" var="ipaddress" default="ipaddress()" />
<column name="regdate" var="regdate" default="curdate()" />
</columns>
</query>

View file

@ -0,0 +1,6 @@
<table name="document_voted_log">
<column name="document_srl" type="number" size="11" notnull="notnull" index="idx_document_srl" />
<column name="member_srl" type="number" size="11" notnull="notnull" index="idx_member_srl" />
<column name="ipaddress" type="varchar" size="128" notnull="notnull" index="idx_ipaddress"/>
<column name="regdate" type="date" index="idx_regdate" />
</table>