mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-25 21:32:51 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/trunk@131 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
2525fe0838
commit
d21fbeb6c6
19 changed files with 132 additions and 65 deletions
|
|
@ -42,7 +42,8 @@
|
|||
|
||||
// 카테고리가 있나 검사하여 없는 카테고리면 0으로 세팅
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
@ -130,20 +131,17 @@
|
|||
/**
|
||||
* @brief 문서 삭제
|
||||
**/
|
||||
function deleteDocument($obj) {
|
||||
// 변수 세팅
|
||||
$document_srl = $obj->document_srl;
|
||||
$category_srl = $obj->category_srl;
|
||||
function deleteDocument($document_srl, $is_admin = false) {
|
||||
|
||||
// document의 model 객체 생성
|
||||
$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->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();
|
||||
|
||||
|
|
@ -242,16 +240,61 @@
|
|||
* @brief 해당 document의 추천수 증가
|
||||
**/
|
||||
function updateVotedCount($document_srl) {
|
||||
// 세션 정보에 추천 정보가 있으면 중단
|
||||
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();
|
||||
|
||||
// 로그인 사용자이면 member_srl, 비회원이면 ipaddress로 판단
|
||||
if($member_srl) {
|
||||
$args->member_srl = $member_srl;
|
||||
} else {
|
||||
$args->ipaddress = $_SERVER['REMOTE_ADDR'];
|
||||
}
|
||||
$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.insertDocumentVotedLog', $args);
|
||||
|
||||
// 세션 정보에 남김
|
||||
$_SESSION['voted_document'][$document_srl] = true;
|
||||
|
||||
return $output;
|
||||
// 결과 리턴
|
||||
return new Object(0, 'success_voted');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -116,23 +116,23 @@
|
|||
function getDocumentList($obj) {
|
||||
|
||||
// 검색 키워드가 있으면 공백을 % 로 변경하여 키워드 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) {
|
||||
case 'title' :
|
||||
$search_obj->s_title = $obj->keyword;
|
||||
$search_obj->s_title = $obj->search_keyword;
|
||||
break;
|
||||
case 'content' :
|
||||
$search_obj->s_content = $obj->keyword;
|
||||
$search_obj->s_content = $obj->search_keyword;
|
||||
break;
|
||||
case 'title_content' :
|
||||
$search_obj->s_title = $obj->keyword;
|
||||
$search_obj->s_content = $obj->keyword;
|
||||
$search_obj->s_title = $obj->search_keyword;
|
||||
$search_obj->s_content = $obj->search_keyword;
|
||||
break;
|
||||
case 'user_name' :
|
||||
$search_obj->s_user_name = $obj->keyword;
|
||||
$search_obj->s_user_name = $obj->search_keyword;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -142,12 +142,12 @@
|
|||
|
||||
// 변수 설정
|
||||
$args->module_srl = $obj->module_srl;
|
||||
$args->s_title = $obj->search_target=='title'?$obj->keyword:'';
|
||||
$args->s_content = $obj->search_target=='content'?$obj->keyword:'';
|
||||
$args->s_user_name = $obj->search_target=='user_name'?$obj->keyword:'';
|
||||
$args->s_member_srl = $obj->search_target=='member'?$obj->keyword:'';
|
||||
$args->s_ipaddress = $obj->search_target=='ipaddress'?$obj->keyword:'';
|
||||
$args->s_regdate = $obj->search_target=='regdate'?$obj->keyword:'';
|
||||
$args->s_title = $obj->search_target=='title'?$obj->search_keyword:'';
|
||||
$args->s_content = $obj->search_target=='content'?$obj->search_keyword:'';
|
||||
$args->s_user_name = $obj->search_target=='user_name'?$obj->search_keyword:'';
|
||||
$args->s_member_srl = $obj->search_target=='member'?$obj->search_keyword:'';
|
||||
$args->s_ipaddress = $obj->search_target=='ipaddress'?$obj->search_keyword:'';
|
||||
$args->s_regdate = $obj->search_target=='regdate'?$obj->search_keyword:'';
|
||||
$args->category_srl = $obj->category_srl?$obj->category_srl:'';
|
||||
|
||||
$args->sort_index = $obj->sort_index;
|
||||
|
|
@ -266,7 +266,7 @@
|
|||
**/
|
||||
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> 코드 변환
|
||||
$content = str_replace(array("<BR>","<br>","<Br>"),"<br />", $content);
|
||||
|
|
|
|||
15
modules/document/queries/getDocumentVotedLogInfo.xml
Normal file
15
modules/document/queries/getDocumentVotedLogInfo.xml
Normal 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>
|
||||
11
modules/document/queries/insertDocumentVotedLog.xml
Normal file
11
modules/document/queries/insertDocumentVotedLog.xml
Normal 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>
|
||||
6
modules/document/schemas/document_voted_log.xml
Normal file
6
modules/document/schemas/document_voted_log.xml
Normal 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>
|
||||
Loading…
Add table
Add a link
Reference in a new issue