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

This commit is contained in:
zero 2007-04-03 10:39:34 +00:00
parent 0665b7848c
commit 9ec9da8963
15 changed files with 134 additions and 11 deletions

View file

@ -1,5 +1,5 @@
<?php <?php
if(!__ZBXE__) exit(); if(!defined("__ZBXE__")) exit();
/** /**
* @file image_name.addon.php * @file image_name.addon.php
@ -21,7 +21,7 @@
**/ **/
/** /**
* 1,2,3 기능 수행 : 출력되기 바로 직전일 경우에 이미지이름/이미지마크등을 변경 * 1,2 기능 수행 : 출력되기 바로 직전일 경우에 이미지이름/이미지마크등을 변경
* 조건 : called_position == 'before_display_content' * 조건 : called_position == 'before_display_content'
**/ **/
if($called_position == "before_display_content") { if($called_position == "before_display_content") {
@ -35,6 +35,23 @@
// 2. 출력문서중에 <div class="document_번호">내용</div> 를 찾아서 member_controller::transSignature()를 이용해서 서명을 추가 // 2. 출력문서중에 <div class="document_번호">내용</div> 를 찾아서 member_controller::transSignature()를 이용해서 서명을 추가
$output = preg_replace_callback('!<div([^\>]*)document_([0-9]*)([^\>]*)>(.*?)\<\/div\>!is', array($oMemberController, 'transSignature'), $output); $output = preg_replace_callback('!<div([^\>]*)document_([0-9]*)([^\>]*)>(.*?)\<\/div\>!is', array($oMemberController, 'transSignature'), $output);
/**
* 3 기능 수행 : 시작할때 새쪽지가 왔는지 검사
* 조건 : called_position = 'before_module_init', act != 'dispMemberNewMessage'
**/
} elseif($called_position == 'before_module_init' && $this->act != 'dispMemberNewMessage' && Context::get('is_logged') ) {
// 로그인된 사용자 정보를 구함
$logged_info = Context::get('logged_info');
$flag_path = './files/member_extra_info/new_message_flags/'.getNumberingPath($logged_info->member_srl);
$flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl);
// 새로운 쪽지에 대한 플래그가 있으면 쪽지 보기 팝업 띄움
if(file_exists($flag_file)) {
Context::addHtmlHeader( sprintf('<script type="text/javascript"> popopen("%s"); </script>', './?module=member&amp;act=dispMemberNewMessage') );
}
/** /**
* 4,5 기능 수행 : 사용자 이름을 클릭시 요청되는 MemberModel::getMemberMenu 후에 $menu_list에 쪽지 발송, 친구추가등의 링크 추가 * 4,5 기능 수행 : 사용자 이름을 클릭시 요청되는 MemberModel::getMemberMenu 후에 $menu_list에 쪽지 발송, 친구추가등의 링크 추가
* 조건 : called_position == 'after_module_proc', module = 'member', act = 'getMemberMenu' * 조건 : called_position == 'after_module_proc', module = 'member', act = 'getMemberMenu'

View file

@ -1,5 +1,5 @@
<?php <?php
if(!__ZBXE__) exit(); if(!defined("__ZBXE__")) exit();
/** /**
* @file naver_search_addon.addon.php * @file naver_search_addon.addon.php

View file

@ -1,5 +1,5 @@
<?php <?php
if(!__ZBXE__) exit(); if(!defined("__ZBXE__")) exit();
/** /**
* @file rainbow.addon.php * @file rainbow.addon.php

View file

@ -1,5 +1,5 @@
<?php <?php
if(!__ZBXE__) exit(); if(!defined("__ZBXE__")) exit();
/** /**
* @file spamfilter.addon.php * @file spamfilter.addon.php

View file

@ -93,7 +93,7 @@
$buff = preg_replace_callback('!<\!--%import\(\"([^\"]*?)\"\)-->!is', array($this, '_compileImportCode'), $buff); $buff = preg_replace_callback('!<\!--%import\(\"([^\"]*?)\"\)-->!is', array($this, '_compileImportCode'), $buff);
// 파일에 쓰기 전에 직접 호출되는 것을 방지 // 파일에 쓰기 전에 직접 호출되는 것을 방지
$buff = sprintf('%s%s%s','<?php if(!__ZBXE__) exit();?>',"\n",$buff); $buff = sprintf('%s%s%s','<?php if(!defined("__ZBXE__")) exit();?>',"\n",$buff);
// 컴파일된 코드를 파일에 저장 // 컴파일된 코드를 파일에 저장
FileHandler::writeFile($compiled_tpl_file, $buff); FileHandler::writeFile($compiled_tpl_file, $buff);

View file

@ -58,7 +58,7 @@
// 캐쉬 내용 작성 // 캐쉬 내용 작성
$buff = $buff =
sprintf( sprintf(
'<?php if(!__ZBXE__) exit();'."\n". '<?php if(!defined("__ZBXE__")) exit();'."\n".
'$pass_quotes = array();'."\n". '$pass_quotes = array();'."\n".
'$id = \'%s\';'."\n". '$id = \'%s\';'."\n".
'$action = \'%s\';'."\n". '$action = \'%s\';'."\n".

View file

@ -10,6 +10,7 @@
<action name="dispMemberMessages" type="view" standalone="true" /> <action name="dispMemberMessages" type="view" standalone="true" />
<action name="dispMemberSendMessage" type="view" standalone="true" /> <action name="dispMemberSendMessage" type="view" standalone="true" />
<action name="dispMemberNewMessage" type="view" standalone="true" />
<action name="dispMemberFriends" type="view" standalone="true" /> <action name="dispMemberFriends" type="view" standalone="true" />
<action name="dispMemberAddFriend" type="view" standalone="true" /> <action name="dispMemberAddFriend" type="view" standalone="true" />

View file

@ -76,6 +76,8 @@
$lang->msg_cart_is_null = '삭제할 쪽지를 선택해주세요'; $lang->msg_cart_is_null = '삭제할 쪽지를 선택해주세요';
$lang->msg_checked_file_is_deleted = '%d개의 첨부파일이 삭제되었습니다'; $lang->msg_checked_file_is_deleted = '%d개의 첨부파일이 삭제되었습니다';
$lang->msg_no_message = '쪽지가 없습니다';
$lang->msg_new_member = '회원 추가'; $lang->msg_new_member = '회원 추가';
$lang->msg_update_member = '회원 정보 수정'; $lang->msg_update_member = '회원 정보 수정';
$lang->msg_group_is_null = '등록된 그룹이 없습니다'; $lang->msg_group_is_null = '등록된 그룹이 없습니다';

View file

@ -21,8 +21,8 @@
$oModuleController->insertActionForward('member', 'view', 'dispMemberLogout'); $oModuleController->insertActionForward('member', 'view', 'dispMemberLogout');
$oModuleController->insertActionForward('member', 'view', 'dispMemberMessages'); $oModuleController->insertActionForward('member', 'view', 'dispMemberMessages');
$oModuleController->insertActionForward('member', 'view', 'dispMemberStoreMessage');
$oModuleController->insertActionForward('member', 'view', 'dispMemberSendMessage'); $oModuleController->insertActionForward('member', 'view', 'dispMemberSendMessage');
$oModuleController->insertActionForward('member', 'view', 'dispMemberNewMessage');
$oModuleController->insertActionForward('member', 'view', 'dispMemberFriends'); $oModuleController->insertActionForward('member', 'view', 'dispMemberFriends');
$oModuleController->insertActionForward('member', 'view', 'dispMemberAddFriend'); $oModuleController->insertActionForward('member', 'view', 'dispMemberAddFriend');
$oModuleController->insertActionForward('member', 'view', 'dispMemberAddFriendGroup'); $oModuleController->insertActionForward('member', 'view', 'dispMemberAddFriendGroup');
@ -119,7 +119,7 @@
FileHandler::makeDir('./files/member_extra_info/attach/image_name'); FileHandler::makeDir('./files/member_extra_info/attach/image_name');
FileHandler::makeDir('./files/member_extra_info/attach/image_mark'); FileHandler::makeDir('./files/member_extra_info/attach/image_mark');
FileHandler::makeDir('./files/member_extra_info/attach/signature'); FileHandler::makeDir('./files/member_extra_info/attach/signature');
FileHandler::makeDir('./files/session/'); FileHandler::makeDir('./files/member_extra_info/new_message_flags');
return new Object(); return new Object();
} }

View file

@ -93,6 +93,12 @@
$output = executeQuery('member.sendMessage', $receiver_args); $output = executeQuery('member.sendMessage', $receiver_args);
if(!$output->toBool()) return $output; if(!$output->toBool()) return $output;
// 받는 회원의 쪽지 발송 플래그 생성 (파일로 생성)
$flag_path = './files/member_extra_info/new_message_flags/'.getNumberingPath($receiver_srl);
FileHandler::makeDir($flag_path);
$flag_file = sprintf('%s%s', $flag_path, $receiver_srl);
FileHandler::writeFile($flag_file,'1');
$this->setMessage('success_sended'); $this->setMessage('success_sended');
} }

View file

@ -511,6 +511,24 @@
return $message; return $message;
} }
/**
* @brief 쪽지를 가져옴
**/
function getNewMessage() {
$logged_info = Context::get('logged_info');
$args->receiver_srl = $logged_info->member_srl;
$args->readed = 'N';
$output = executeQuery('member.getNewMessage', $args);
if(!count($output->data)) return;
$message = array_pop($output->data);
$oMemberController = &getController('member');
$oMemberController->setMessageReaded($message->message_srl);
return $message;
}
/** /**
* @brief 쪽지 목록 가져오기 * @brief 쪽지 목록 가져오기
* type = R : 받은 쪽지 * type = R : 받은 쪽지

View file

@ -221,6 +221,31 @@
$this->setTemplateFile('member_messages'); $this->setTemplateFile('member_messages');
} }
/**
* @brief 쪽지 보여줌
**/
function dispMemberNewMessage() {
$this->initNormal();
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) $this->stop('msg_not_logged');
$logged_info = Context::get('logged_info');
$oMemberModel = &getModel('member');
// 새 쪽지를 가져옴
$message = $oMemberModel->getNewMessage();
if($message) Context::set('message', $message);
// 플래그 삭제
$flag_path = './files/member_extra_info/new_message_flags/'.getNumberingPath($logged_info->member_srl);
$flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl);
@unlink($flag_file);
$this->setLayoutFile('popup_layout');
$this->setTemplateFile('member_new_message');
}
/** /**
* @brief 쪽지 발송 출력 * @brief 쪽지 발송 출력
**/ **/

View file

@ -0,0 +1,20 @@
<query id="getNewMessage" action="select">
<tables>
<table name="member_message" alias="member_message" />
<table name="member" alias="member"/>
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="equal" column="member_message.receiver_srl" var="receiver_srl" notnull="notnull" />
<condition operation="equal" column="member_message.readed" var="readed" default="N" notnull="notnull" pipe="and" />
<condition operation="equal" column="member_message.sender_srl" var="member.member_srl" pipe="and" />
</conditions>
<navigation>
<index var="sort_index" default="member_message.list_order" order="desc" />
<list_count var="list_count" default="1" />
<page_count var="page_count" default="1" />
<page var="page" default="1" />
</navigation>
</query>

View file

@ -1,6 +1,6 @@
<filter name="send_message" module="member" act="procMemberSendMessage" confirm_msg_code="confirm_submit"> <filter name="send_message" module="member" act="procMemberSendMessage" confirm_msg_code="confirm_submit">
<form> <form>
<node target="title" required="true" minlength="1" maxlength="20" /> <node target="title" required="true" minlength="1" maxlength="240" />
<node target="content" required="true" minlength="1" /> <node target="content" required="true" minlength="1" />
</form> </form>
<parameter /> <parameter />

View file

@ -0,0 +1,34 @@
<!--%import("js/member.js")-->
<div style="width:400px;">
<!--@if($message)-->
<table border="1">
<tr>
<th>
{$lang->sender}
</th>
<td><div class="member_{$message->member_srl}">{$message->nick_name} ({$message->user_id})</div></td>
</tr>
<tr>
<th>{$lang->title}</th>
<td>{htmlspecialchars($message->title)}</td>
</tr>
<tr>
<td colspan="2">{$message->content}</td>
</tr>
<tr>
<td colspan="2">
<input type="button" value="{$lang->cmd_delete}" onclick="doDeleteMessage('{$message->message_srl}');return false;" />
<input type="button" value="{$lang->cmd_store}" onclick="doStoreMessage('{$message->message_srl}');return false;" />
<input type="button" value="{$lang->cmd_next}" onclick="location.href=location.href;return false;" />
</td>
</tr>
</table>
<!--@else-->
<script type="text/javascript">
alert("{$lang->msg_no_message}");
window.close();
</script>
<!--@end-->
</div>