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

This commit is contained in:
zero 2007-02-20 10:36:01 +00:00
parent 515e928b12
commit 969c831a18
18 changed files with 78 additions and 64 deletions

View file

@ -11,8 +11,6 @@
* @brief 초기화
**/
function init() {
// 파일 업로드일 경우 $act값을 procUploadFile() 로 변경
if(Context::isUploaded() && $this->grant->fileupload) Context::set('act', 'procUploadFile');
}
/**
@ -25,7 +23,8 @@
// member모듈 controller 객체 생성
$oMemberController = &getController('member');
return $oMemberController->doLogin($user_id, $password);
$output = $oMemberController->doLogin($user_id, $password);
if(!$output->toBool()) return $output;
}
/**
@ -41,6 +40,7 @@
* @brief 문서 입력
**/
function procInsertDocument() {
// 글작성시 필요한 변수를 세팅
$obj = Context::getRequestVars();
$obj->module_srl = $this->module_srl;
@ -53,7 +53,7 @@
$oDocumentController = &getController('document');
// 이미 존재하는 글인지 체크
$document = $oDocumentModel->getDocument($obj->document_srl);
$document = $oDocumentModel->getDocument($obj->document_srl, $this->grant->manager);
// 이미 존재하는 경우 수정
if($document->document_srl == $obj->document_srl) {
@ -66,6 +66,7 @@
$msg_code = 'success_registed';
$obj->document_srl = $output->get('document_srl');
}
if(!$output->toBool()) return $output;
// 트랙백 발송
$trackback_url = Context::get('trackback_url');
@ -75,10 +76,9 @@
$oTrackbackController->sendTrackback($obj, $trackback_url, $trackback_charset);
}
if(!$output->toBool()) return $output;
$this->setMessage($msg_code);
$this->add('mid', Context::get('mid'));
$this->add('document_srl', $output->get('document_srl'));
$this->setMessage($msg_code);
}
/**
@ -270,6 +270,9 @@
* @brief 첨부파일 업로드
**/
function procUploadFile() {
// 업로드 권한이 없거나 정보가 없을시 종료
if(!Context::isUploaded() || !$this->grant->fileupload) exit();
// 기본적으로 필요한 변수인 document_srl, module_srl을 설정
$document_srl = Context::get('document_srl');
$module_srl = $this->module_srl;

View file

@ -104,7 +104,7 @@
// 지정된 글이 없다면 (신규) 새로운 번호를 만든다
if($document_srl) {
$document = $oDocumentModel->getDocument($document_srl);
$document = $oDocumentModel->getDocument($document_srl, $this->grant->manager);
if(!$document) {
unset($document_srl);
Context::set('document_srl','');

View file

@ -34,9 +34,9 @@
</tr>
<tr>
<td colspan="2">
<a href="{getUrl('act','dispCommentModifyForm','comment_srl',$val->comment_srl)}">[{$lang->cmd_modify}]</a>
<a href="{getUrl('act','dispCommentReplyForm','comment_srl',$val->comment_srl)}">[{$lang->cmd_reply}]</a>
<a href="{getUrl('act','dispCommentDeleteForm','comment_srl',$val->comment_srl)}">[{$lang->cmd_delete}]</a>
<a href="{getUrl('act','dispCommentModify','comment_srl',$val->comment_srl)}">[{$lang->cmd_modify}]</a>
<a href="{getUrl('act','dispCommentReply','comment_srl',$val->comment_srl)}">[{$lang->cmd_reply}]</a>
<a href="{getUrl('act','dispCommentDelete','comment_srl',$val->comment_srl)}">[{$lang->cmd_delete}]</a>
</td>
</tr>
</table>

View file

@ -1,7 +1,7 @@
<!--%import("filter/filter.delete_trackback.xml")-->
<!--%import("filter/delete_trackback.xml")-->
<!--#include("header.html")-->
<form action="./" method="get" onsubmit="return procFormFilter(this, delete_trackback)">
<form action="./" method="get" onsubmit="return procFilter(this, delete_trackback)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="act" value="procDeleteTrackback" />
<input type="hidden" name="page" value="{$page}" />

View file

@ -1,12 +1,7 @@
<filter name="logout" module="board" act="procLogout">
<form>
<node target="mid" required="true" />
<node target="act" required="true" />
</form>
<parameter>
<param name="mid" target="mid" />
<param name="act" target="act" />
</parameter>
<response>
<tag name="error" />
<tag name="message" />

View file

@ -17,13 +17,6 @@ function completeDocumentInserted(ret_obj) {
location.href = url;
}
/* 글 삭제 */
function procDeleteDocument(ret_obj, response_tags) {
var error = ret_obj['error'];

View file

@ -1,9 +1,8 @@
<!--%import("filter/filter.login.xml")-->
<!--%import("filter/login.xml")-->
<!--#include("header.html")-->
<form action="./" method="get" onsubmit="return procFilter(this, login)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="act" value="procLogin" />
<table>
<col width="120" />
<col width="*" />

View file

@ -1,9 +1,8 @@
<!--%import("filter/filter.logout.xml")-->
<!--%import("filter/logout.xml")-->
<!--#include("header.html")-->
<form action="./" method="get" onsubmit="return procFilter(this, logout)">
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="act" value="procLogout" />
<table>
<tr>
<th>{$lang->cmd_logout}</th>

View file

@ -38,7 +38,7 @@
</tr>
<tr>
<td colspan="2">
<a href="{getUrl('act','dispTrackbackDeleteForm','trackback_srl',$val->trackback_srl)}">[{$lang->cmd_delete}]</a>
<a href="{getUrl('act','dispTrackbackDelete','trackback_srl',$val->trackback_srl)}">[{$lang->cmd_delete}]</a>
</td>
</tr>
</table>

View file

@ -41,7 +41,7 @@
</tr>
<tr>
<th>{$lang->content}</th>
<td height="100" valign="top">{Document::transContent($document->content)}</td>
<td height="100" valign="top">{$document->content}</td>
</tr>
<tr>
<td colspan="2">
@ -92,8 +92,8 @@
<div>
<a href="{getUrl('document_srl','')}">[{$lang->cmd_list}]</a>
<a href="#" onclick="doVote();return false;">[{$lang->cmd_vote}]</a>
<a href="{getUrl('act','dispWriteForm')}">[{$lang->cmd_modify}]</a>
<a href="{getUrl('act','dispDeleteForm')}">[{$lang->cmd_delete}]</a>
<a href="{getUrl('act','dispWrite')}">[{$lang->cmd_modify}]</a>
<a href="{getUrl('act','dispDelete')}">[{$lang->cmd_delete}]</a>
</div>

View file

@ -3,7 +3,7 @@
<form action="./" method="post" onsubmit="return procFilter(this, insert)" <!--@if($grant->fileupload)-->enctype="multipart/form-data"<!--@end-->>
<input type="hidden" name="mid" value="{$mid}" />
<input type="hidden" name="act" value="procInsertDocument" />
<input type="hidden" name="act" value="procUploadFile" />
<input type="hidden" name="content" value="{htmlspecialchars($document->content)}" />
<input type="hidden" name="document_srl" value="{$document_srl}" />
<table width="100%">

View file

@ -77,6 +77,8 @@
* @brief 문서 수정
**/
function updateDocument($source_obj, $obj) {
$oDB = &DB::getInstance();
// 기본 변수들 정리
if($obj->is_secret!='Y') $obj->is_secret = 'N';
if($obj->allow_comment!='Y') $obj->allow_comment = 'N';
@ -91,16 +93,18 @@
// 카테고리가 변경되었으면 검사후 없는 카테고리면 0으로 세팅
if($source_obj->category_srl!=$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;
}
// 태그 처리
$oTagController = &getController('tag');
$obj->tags = $oTagController->insertTag($obj->module_srl, $obj->document_srl, $obj->tags);
if($source_obj->tags != $obj->tags) {
$oTagController = &getController('tag');
$obj->tags = $oTagController->insertTag($obj->module_srl, $obj->document_srl, $obj->tags);
}
// 수정
$oDB = &DB::getInstance();
$obj->update_order = $oDB->getNextSequence() * -1;
// 공지사항일 경우 list_order에 무지막지한 값을, 그렇지 않으면 document_srl*-1값을
@ -111,7 +115,6 @@
// DB에 입력
$output = $oDB->executeQuery('document.updateDocument', $obj);
if(!$output->toBool()) return $output;
// 성공하였을 경우 category_srl이 있으면 카테고리 update
@ -189,14 +192,26 @@
$document_srl = $document->document_srl;
// session에 정보로 조회수를 증가하였다고 생각하면 패스
if($_SESSION['readed_document'][$document_srl]) return;
if($_SESSION['readed_document'][$document_srl]) return false;
// member model 객체 생성
$oMemberModel = &getModel('member');
$member_srl = $oMemberModel->getLoggedMemberSrl();
// 글의 작성 ip와 현재 접속자의 ip가 동일하면 패스
if($document->ipaddress == $_SERVER['REMOTE_ADDR']) {
$_SESSION['readed_document'][$document_srl] = true;
return false;
}
// 글쓴이와 현재 로그인 사용자의 정보가 일치하면 읽었다고 생각하고 세션 등록후 패스
if($member_srl && $member_srl == $document->member_srl) return $_SESSION['readed_document'][$document_srl] = true;
// document의 작성자가 회원일때 조사
if($document->member_srl) {
// member model 객체 생성
$oMemberModel = &getModel('member');
$member_srl = $oMemberModel->getLoggedMemberSrl();
// 글쓴이와 현재 로그인 사용자의 정보가 일치하면 읽었다고 생각하고 세션 등록후 패스
if($member_srl && $member_srl == $document->member_srl) {
$_SESSION['readed_document'][$document_srl] = true;
return false;
}
}
// DB 객체 생성
$oDB = &DB::getInstance();
@ -207,6 +222,7 @@
} else {
$args->ipaddress = $_SERVER['REMOTE_ADDR'];
}
$args->document_srl = $document_srl;
$output = $oDB->executeQuery('document.getDocumentReadedLogInfo', $args);
// 로그 정보에 조회 로그가 있으면 세션 등록후 패스
@ -219,7 +235,7 @@
$output = $oDB->executeQuery('document.insertDocumentReadedLog', $args);
// 세션 정보에 남김
$_SESSION['readed_document'][$document_srl] = true;
return $_SESSION['readed_document'][$document_srl] = true;
}
/**

View file

@ -30,20 +30,12 @@
$output = $oDB->executeQuery('document.getDocument', $args);
$document = $output->data;
if(!$get_extra_info) return $document;
// document controller 객체 생성
$oDocumentController = &getController('document');
// 조회수 업데이트
$oDocumentController->updateReadedCount($document);
// 이 문서에 대한 권한이 있는지 확인
if($this->isGranted($document->document_srl) || $is_admin) {
$document->is_granted = true;
} elseif($document->member_srl) {
$oMemberModel = &getMemberModel('member');
$member_srl = $oMemberModel->getMemberSrl();
$member_srl = $oMemberModel->getLoggedMemberSrl();
if($member_srl && $member_srl ==$document->member_srl) $document->is_granted = true;
}
@ -51,6 +43,18 @@
if($document->is_secret=='Y' && !$document->is_granted) {
$document->title = $document->content = Context::getLang('msg_is_secret');
}
// 내용 변경
$document->content = $this->transContent($document->content);
// 확장 정보(코멘트나 기타 등등) 플래그가 false이면 기본 문서 정보만 return
if(!$get_extra_info) return $document;
// document controller 객체 생성
$oDocumentController = &getController('document');
// 조회수 업데이트
if($buff = $oDocumentController->updateReadedCount($document)) $document->readed_count++;
// 댓글 가져오기
if($document->comment_count && $document->allow_comment == 'Y') {
@ -89,7 +93,7 @@
// 권한 체크
$oMemberModel = &getModel('member');
$member_srl = $oMemberModel->getMemberSrl();
$member_srl = $oMemberModel->getLoggedMemberSrl();
$document_count = count($document_list);
for($i=0;$i<$document_count;$i++) {
@ -159,7 +163,7 @@
// 권한 체크
$oMemberModel = &getModel('member');
$member_srl = $oMemberModel->getMemberSrl();
$member_srl = $oMemberModel->getLoggedMemberSrl();
foreach($output->data as $key => $document) {
$is_granted = false;

View file

@ -5,7 +5,7 @@
<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="ipaddress" var="ipaddress" default="ipaddress()" />
<column name="regdate" var="regdate" default="curdate()" />
</columns>
</query>

View file

@ -1,5 +1,5 @@
<table name="document_readed_log">
<column name="document_srl" type="number" size="11" notnull="notnull" primary_key="primary_key" />
<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" />