merge sandbox to trunk for 1.4.4

git-svn-id: http://xe-core.googlecode.com/svn/trunk@7723 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
ngleader 2010-09-28 07:24:47 +00:00
parent 200d63636c
commit b8299c8a65
683 changed files with 70982 additions and 69716 deletions

View file

@ -1,7 +1,7 @@
<?php
/**
* @class communicationAdminController
* @author zero (zero@nzeo.com)
* @author NHN (developers@xpressengine.com)
* @brief communication module의 admin controller class
**/

View file

@ -1,40 +1,40 @@
<?php
/**
* @class communicationAdminModel
* @author zero (zero@nzeo.com)
* @brief communication module의 admin model class
**/
class communicationAdminModel extends communication {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 지정된 스킨의 컬러셋 선택을 위한 html을 return
**/
function getCommunicationAdminColorset() {
$skin = Context::get('skin');
if(!$skin) $tpl = "";
else {
$oModuleModel = &getModel('module');
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin);
Context::set('skin_info', $skin_info);
$oModuleModel = &getModel('module');
$communication_config = $oModuleModel->getModuleConfig('communication');
if(!$communication_config->colorset) $communication_config->colorset = "white";
Context::set('communication_config', $communication_config);
$oTemplate = &TemplateHandler::getInstance();
$tpl = $oTemplate->compile($this->module_path.'tpl', 'colorset_list');
}
$this->add('tpl', $tpl);
}
}
?>
<?php
/**
* @class communicationAdminModel
* @author NHN (developers@xpressengine.com)
* @brief communication module의 admin model class
**/
class communicationAdminModel extends communication {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 지정된 스킨의 컬러셋 선택을 위한 html을 return
**/
function getCommunicationAdminColorset() {
$skin = Context::get('skin');
if(!$skin) $tpl = "";
else {
$oModuleModel = &getModel('module');
$skin_info = $oModuleModel->loadSkinInfo($this->module_path, $skin);
Context::set('skin_info', $skin_info);
$oModuleModel = &getModel('module');
$communication_config = $oModuleModel->getModuleConfig('communication');
if(!$communication_config->colorset) $communication_config->colorset = "white";
Context::set('communication_config', $communication_config);
$oTemplate = &TemplateHandler::getInstance();
$tpl = $oTemplate->compile($this->module_path.'tpl', 'colorset_list');
}
$this->add('tpl', $tpl);
}
}
?>

View file

@ -1,40 +1,40 @@
<?php
/**
* @class communicationAdminView
* @author zero (zero@nzeo.com)
* @brief communication module의 admin view class
**/
class communicationAdminView extends communication {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 쪽지 친구등의 관리를 위한 설정
**/
function dispCommunicationAdminConfig() {
// 객체 생성
$oEditorModel = &getModel('editor');
$oModuleModel = &getModel('module');
$oCommunicationModel = &getModel('communication');
// communication 모듈의 모듈설정 읽음
Context::set('communication_config', $oCommunicationModel->getConfig() );
// 에디터 스킨 목록을 구함
Context::set('editor_skin_list', $oEditorModel->getEditorSkinList() );
// 커뮤니케이션 스킨 목록을 구함
Context::set('communication_skin_list', $oModuleModel->getSkins($this->module_path) );
// template 지정
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('index');
}
}
?>
<?php
/**
* @class communicationAdminView
* @author NHN (developers@xpressengine.com)
* @brief communication module의 admin view class
**/
class communicationAdminView extends communication {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 쪽지 친구등의 관리를 위한 설정
**/
function dispCommunicationAdminConfig() {
// 객체 생성
$oEditorModel = &getModel('editor');
$oModuleModel = &getModel('module');
$oCommunicationModel = &getModel('communication');
// communication 모듈의 모듈설정 읽음
Context::set('communication_config', $oCommunicationModel->getConfig() );
// 에디터 스킨 목록을 구함
Context::set('editor_skin_list', $oEditorModel->getEditorSkinList() );
// 커뮤니케이션 스킨 목록을 구함
Context::set('communication_skin_list', $oModuleModel->getSkins($this->module_path) );
// template 지정
$this->setTemplatePath($this->module_path.'tpl');
$this->setTemplateFile('index');
}
}
?>

View file

@ -1,42 +1,42 @@
<?php
/**
* @class communication
* @author zero (zero@nzeo.com)
* @brief communication module의 high class
**/
class communication extends ModuleObject {
/**
* @brief 설치시 추가 작업이 필요할시 구현
**/
function moduleInstall() {
// 새쪽지 알림을 위한 임시 파일 저장소 생성
FileHandler::makeDir('./files/member_extra_info/new_message_flags');
return new Object();
}
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
function checkUpdate() {
if(!is_dir("./files/member_extra_info/new_message_flags")) return true;
return false;
}
/**
* @brief 업데이트 실행
**/
function moduleUpdate() {
if(!is_dir("./files/member_extra_info/new_message_flags"))
FileHandler::makeDir('./files/member_extra_info/new_message_flags');
return new Object(0, 'success_updated');
}
/**
* @brief 캐시 파일 재생성
**/
function recompileCache() {
}
}
?>
<?php
/**
* @class communication
* @author NHN (developers@xpressengine.com)
* @brief communication module의 high class
**/
class communication extends ModuleObject {
/**
* @brief 설치시 추가 작업이 필요할시 구현
**/
function moduleInstall() {
// 새쪽지 알림을 위한 임시 파일 저장소 생성
FileHandler::makeDir('./files/member_extra_info/new_message_flags');
return new Object();
}
/**
* @brief 설치가 이상이 없는지 체크하는 method
**/
function checkUpdate() {
if(!is_dir("./files/member_extra_info/new_message_flags")) return true;
return false;
}
/**
* @brief 업데이트 실행
**/
function moduleUpdate() {
if(!is_dir("./files/member_extra_info/new_message_flags"))
FileHandler::makeDir('./files/member_extra_info/new_message_flags');
return new Object(0, 'success_updated');
}
/**
* @brief 캐시 파일 재생성
**/
function recompileCache() {
}
}
?>

View file

@ -1,418 +1,418 @@
<?php
/**
* @class communicationController
* @author zero (zero@nzeo.com)
* @brief communication module의 Controller class
**/
class communicationController extends communication {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 쪽지함 설정 변경
**/
function procCommunicationUpdateAllowMessage() {
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$args->allow_message = Context::get('allow_message');
if(!in_array($args->allow_message, array('Y','N','F'))) $args->allow_message = 'Y';
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
$output = executeQuery('communication.updateAllowMessage', $args);
return $output;
}
/**
* @brief 쪽지 발송
**/
function procCommunicationSendMessage() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 검사
$receiver_srl = Context::get('receiver_srl');
if(!$receiver_srl) return new Object(-1, 'msg_not_exists_member');
$title = trim(Context::get('title'));
if(!$title) return new Object(-1, 'msg_title_is_null');
$content = trim(Context::get('content'));
if(!$content) return new Object(-1, 'msg_content_is_null');
$send_mail = Context::get('send_mail');
if($send_mail != 'Y') $send_mail = 'N';
// 받을 회원이 있는지에 대한 검사
$oMemberModel = &getModel('member');
$oCommunicationModel = &getModel('communication');
$receiver_member_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl);
if($receiver_member_info->member_srl != $receiver_srl) return new Object(-1, 'msg_not_exists_member');
// 받을 회원의 쪽지 수신여부 검사 (최고관리자이면 패스)
if($logged_info->is_admin != 'Y') {
if($receiver_member_info->allow_message == 'F') {
if(!$oCommunicationModel->isFriend($receiver_member_info->member_srl)) return new object(-1, 'msg_allow_message_to_friend');
} elseif($receiver_member_info->allow_messge == 'N') {
return new object(-1, 'msg_disallow_message');
}
}
// 쪽지 발송
$output = $this->sendMessage($logged_info->member_srl, $receiver_srl, $title, $content);
// 메일로도 발송
if($output->toBool() && $send_mail == 'Y') {
$view_url = Context::getRequestUri();
$content = sprintf("%s<br /><br />From : <a href=\"%s\" target=\"_blank\">%s</a>",$content, $view_url, $view_url);
$oMail = new Mail();
$oMail->setTitle($title);
$oMail->setContent($content);
$oMail->setSender($logged_info->user_name, $logged_info->email_address);
$oMail->setReceiptor($receiver_member_info->user_name, $receiver_member_info->email_address);
$oMail->send();
}
return $output;
}
function sendMessage($sender_srl, $receiver_srl, $title, $content, $sender_log = true) {
$content = removeHackTag($content);
$title = htmlspecialchars($title);
// 보내는 사용자의 쪽지함에 넣을 쪽지
$sender_args->sender_srl = $sender_srl;
$sender_args->receiver_srl = $receiver_srl;
$sender_args->message_type = 'S';
$sender_args->title = $title;
$sender_args->content = $content;
$sender_args->readed = 'N';
$sender_args->regdate = date("YmdHis");
$sender_args->related_srl = getNextSequence();
$sender_args->message_srl = getNextSequence();
$sender_args->list_order = getNextSequence()*-1;
// 받는 회원의 쪽지함에 넣을 쪽지
$receiver_args->message_srl = $sender_args->related_srl;
$receiver_args->related_srl = 0;
$receiver_args->list_order = $sender_args->related_srl*-1;
$receiver_args->sender_srl = $sender_srl;
if(!$receiver_args->sender_srl) $receiver_args->sender_srl = $receiver_srl;
$receiver_args->receiver_srl = $receiver_srl;
$receiver_args->message_type = 'R';
$receiver_args->title = $title;
$receiver_args->content = $content;
$receiver_args->readed = 'N';
$receiver_args->regdate = date("YmdHis");
$oDB = &DB::getInstance();
$oDB->begin();
// 발송하는 회원의 쪽지함에 넣을 쪽지
if($sender_srl && $sender_log) {
$output = executeQuery('communication.sendMessage', $sender_args);
if(!$output->toBool()) {
$oDB->rollback();
return $output;
}
}
// 받을 회원의 쪽지함에 넣을 쪽지
$output = executeQuery('communication.sendMessage', $receiver_args);
if(!$output->toBool()) {
$oDB->rollback();
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);
$flag_count = FileHandler::readFile($flag_file);
FileHandler::writeFile($flag_file, ++$flag_count);
$oDB->commit();
return new Object(0,'success_sended');
}
/**
* @brief 특정 쪽지를 보관함으로 보냄
**/
function procCommunicationStoreMessage() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 체크
$message_srl = Context::get('message_srl');
if(!$message_srl) return new Object(-1,'msg_invalid_request');
// 쪽지를 가져옴
$oCommunicationModel = &getModel('communication');
$message = $oCommunicationModel->getSelectedMessage($message_srl);
if(!$message || $message->message_type != 'R') return new Object(-1,'msg_invalid_request');
$args->message_srl = $message_srl;
$args->receiver_srl = $logged_info->member_srl;
$output = executeQuery('communication.setMessageStored', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_registed');
}
/**
* @brief 쪽지 삭제
**/
function procCommunicationDeleteMessage() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
// 변수 체크
$message_srl = Context::get('message_srl');
if(!$message_srl) return new Object(-1,'msg_invalid_request');
// 쪽지를 가져옴
$oCommunicationModel = &getModel('communication');
$message = $oCommunicationModel->getSelectedMessage($message_srl);
if(!$message) return new Object(-1,'msg_invalid_request');
// 발송인+type=S or 수신인+type=R 검사
if($message->sender_srl == $member_srl && $message->message_type == 'S') {
if(!$message_srl) return new Object(-1, 'msg_invalid_request');
} elseif($message->receiver_srl == $member_srl && $message->message_type == 'R') {
if(!$message_srl) return new Object(-1, 'msg_invalid_request');
}
// 삭제
$args->message_srl = $message_srl;
$output = executeQuery('communication.deleteMessage', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_deleted');
}
/**
* @brief 선택된 다수의 쪽지 삭제
**/
function procCommunicationDeleteMessages() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
// 변수 체크
$message_srl_list = trim(Context::get('message_srl_list'));
if(!$message_srl_list) return new Object(-1, 'msg_cart_is_null');
$message_srl_list = explode('|@|', $message_srl_list);
if(!count($message_srl_list)) return new Object(-1, 'msg_cart_is_null');
$message_type = Context::get('message_type');
if(!$message_type || !in_array($message_type, array('R','S','T'))) return new Object(-1, 'msg_invalid_request');
$message_count = count($message_srl_list);
$target = array();
for($i=0;$i<$message_count;$i++) {
$message_srl = (int)trim($message_srl_list[$i]);
if(!$message_srl) continue;
$target[] = $message_srl;
}
if(!count($target)) return new Object(-1,'msg_cart_is_null');
// 삭제
$args->message_srls = implode(',',$target);
$args->message_type = $message_type;
if($message_type == 'S') $args->sender_srl = $member_srl;
else $args->receiver_srl = $member_srl;
$output = executeQuery('communication.deleteMessages', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_deleted');
}
/**
* @brief 친구 추가
**/
function procCommunicationAddFriend() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
$target_srl = (int)trim(Context::get('target_srl'));
if(!$target_srl) return new Object(-1,'msg_invalid_request');
// 변수 정리
$args->friend_srl = getNextSequence();
$args->list_order = $args->friend_srl * -1;
$args->friend_group_srl = Context::get('friend_group_srl');
$args->member_srl = $logged_info->member_srl;
$args->target_srl = $target_srl;
$output = executeQuery('communication.addFriend', $args);
if(!$output->toBool()) return $output;
$this->add('member_srl', $target_srl);
$this->setMessage('success_registed');
}
/**
* @brief 등록된 친구의 그룹 이동
**/
function procCommunicationMoveFriend() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 체크
$friend_srl_list = trim(Context::get('friend_srl_list'));
if(!$friend_srl_list) return new Object(-1, 'msg_cart_is_null');
$friend_srl_list = explode('|@|', $friend_srl_list);
if(!count($friend_srl_list)) return new Object(-1, 'msg_cart_is_null');
$friend_count = count($friend_srl_list);
$target = array();
for($i=0;$i<$friend_count;$i++) {
$friend_srl = (int)trim($friend_srl_list[$i]);
if(!$friend_srl) continue;
$target[] = $friend_srl;
}
if(!count($target)) return new Object(-1,'msg_cart_is_null');
// 변수 정리
$args->friend_srls = implode(',',$target);
$args->member_srl = $logged_info->member_srl;
$args->friend_group_srl = Context::get('target_friend_group_srl');
$output = executeQuery('communication.moveFriend', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_moved');
}
/**
* @brief 친구 삭제
**/
function procCommunicationDeleteFriend() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
// 변수 체크
$friend_srl_list = trim(Context::get('friend_srl_list'));
if(!$friend_srl_list) return new Object(-1, 'msg_cart_is_null');
$friend_srl_list = explode('|@|', $friend_srl_list);
if(!count($friend_srl_list)) return new Object(-1, 'msg_cart_is_null');
$friend_count = count($friend_srl_list);
$target = array();
for($i=0;$i<$friend_count;$i++) {
$friend_srl = (int)trim($friend_srl_list[$i]);
if(!$friend_srl) continue;
$target[] = $friend_srl;
}
if(!count($target)) return new Object(-1,'msg_cart_is_null');
// 삭제
$args->friend_srls = implode(',',$target);
$args->member_srl = $logged_info->member_srl;
$output = executeQuery('communication.deleteFriend', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_deleted');
}
/**
* @brief 친구 그룹 추가
**/
function procCommunicationAddFriendGroup() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 정리
$args->friend_group_srl = trim(Context::get('friend_group_srl'));
$args->member_srl = $logged_info->member_srl;
$args->title = Context::get('title');
$args->title = htmlspecialchars($args->title);
if(!$args->title) return new Object(-1, 'msg_invalid_request');
// friend_group_srl이 있으면 수정
if($args->friend_group_srl) {
$output = executeQuery('communication.renameFriendGroup', $args);
$msg_code = 'success_updated';
// 아니면 입력
} else {
$output = executeQuery('communication.addFriendGroup', $args);
$msg_code = 'success_registed';
}
if(!$output->toBool()) return $output;
$this->setMessage($msg_code);
}
/**
* @brief 친구 그룹 이름 변경
**/
function procCommunicationRenameFriendGroup() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 정리
$args->friend_group_srl= Context::get('friend_group_srl');
$args->member_srl = $logged_info->member_srl;
$args->title = Context::get('title');
$args->title = htmlspecialchars($args->title);
if(!$args->title) return new Object(-1, 'msg_invalid_request');
$output = executeQuery('communication.renameFriendGroup', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_updated');
}
/**
* @brief 친구 그룹 삭제
**/
function procCommunicationDeleteFriendGroup() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 정리
$args->friend_group_srl = Context::get('friend_group_srl');
$args->member_srl = $logged_info->member_srl;
$output = executeQuery('communication.deleteFriendGroup', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_deleted');
}
/**
* @brief 특정 쪽지의 상태를 읽은 상태로 변경
**/
function setMessageReaded($message_srl) {
$args->message_srl = $message_srl;
$args->related_srl = $message_srl;
return executeQuery('communication.setMessageReaded', $args);
}
}
?>
<?php
/**
* @class communicationController
* @author NHN (developers@xpressengine.com)
* @brief communication module의 Controller class
**/
class communicationController extends communication {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 쪽지함 설정 변경
**/
function procCommunicationUpdateAllowMessage() {
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$args->allow_message = Context::get('allow_message');
if(!in_array($args->allow_message, array('Y','N','F'))) $args->allow_message = 'Y';
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
$output = executeQuery('communication.updateAllowMessage', $args);
return $output;
}
/**
* @brief 쪽지 발송
**/
function procCommunicationSendMessage() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 검사
$receiver_srl = Context::get('receiver_srl');
if(!$receiver_srl) return new Object(-1, 'msg_not_exists_member');
$title = trim(Context::get('title'));
if(!$title) return new Object(-1, 'msg_title_is_null');
$content = trim(Context::get('content'));
if(!$content) return new Object(-1, 'msg_content_is_null');
$send_mail = Context::get('send_mail');
if($send_mail != 'Y') $send_mail = 'N';
// 받을 회원이 있는지에 대한 검사
$oMemberModel = &getModel('member');
$oCommunicationModel = &getModel('communication');
$receiver_member_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl);
if($receiver_member_info->member_srl != $receiver_srl) return new Object(-1, 'msg_not_exists_member');
// 받을 회원의 쪽지 수신여부 검사 (최고관리자이면 패스)
if($logged_info->is_admin != 'Y') {
if($receiver_member_info->allow_message == 'F') {
if(!$oCommunicationModel->isFriend($receiver_member_info->member_srl)) return new object(-1, 'msg_allow_message_to_friend');
} elseif($receiver_member_info->allow_messge == 'N') {
return new object(-1, 'msg_disallow_message');
}
}
// 쪽지 발송
$output = $this->sendMessage($logged_info->member_srl, $receiver_srl, $title, $content);
// 메일로도 발송
if($output->toBool() && $send_mail == 'Y') {
$view_url = Context::getRequestUri();
$content = sprintf("%s<br /><br />From : <a href=\"%s\" target=\"_blank\">%s</a>",$content, $view_url, $view_url);
$oMail = new Mail();
$oMail->setTitle($title);
$oMail->setContent($content);
$oMail->setSender($logged_info->user_name, $logged_info->email_address);
$oMail->setReceiptor($receiver_member_info->user_name, $receiver_member_info->email_address);
$oMail->send();
}
return $output;
}
function sendMessage($sender_srl, $receiver_srl, $title, $content, $sender_log = true) {
$content = removeHackTag($content);
$title = htmlspecialchars($title);
// 보내는 사용자의 쪽지함에 넣을 쪽지
$sender_args->sender_srl = $sender_srl;
$sender_args->receiver_srl = $receiver_srl;
$sender_args->message_type = 'S';
$sender_args->title = $title;
$sender_args->content = $content;
$sender_args->readed = 'N';
$sender_args->regdate = date("YmdHis");
$sender_args->related_srl = getNextSequence();
$sender_args->message_srl = getNextSequence();
$sender_args->list_order = getNextSequence()*-1;
// 받는 회원의 쪽지함에 넣을 쪽지
$receiver_args->message_srl = $sender_args->related_srl;
$receiver_args->related_srl = 0;
$receiver_args->list_order = $sender_args->related_srl*-1;
$receiver_args->sender_srl = $sender_srl;
if(!$receiver_args->sender_srl) $receiver_args->sender_srl = $receiver_srl;
$receiver_args->receiver_srl = $receiver_srl;
$receiver_args->message_type = 'R';
$receiver_args->title = $title;
$receiver_args->content = $content;
$receiver_args->readed = 'N';
$receiver_args->regdate = date("YmdHis");
$oDB = &DB::getInstance();
$oDB->begin();
// 발송하는 회원의 쪽지함에 넣을 쪽지
if($sender_srl && $sender_log) {
$output = executeQuery('communication.sendMessage', $sender_args);
if(!$output->toBool()) {
$oDB->rollback();
return $output;
}
}
// 받을 회원의 쪽지함에 넣을 쪽지
$output = executeQuery('communication.sendMessage', $receiver_args);
if(!$output->toBool()) {
$oDB->rollback();
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);
$flag_count = FileHandler::readFile($flag_file);
FileHandler::writeFile($flag_file, ++$flag_count);
$oDB->commit();
return new Object(0,'success_sended');
}
/**
* @brief 특정 쪽지를 보관함으로 보냄
**/
function procCommunicationStoreMessage() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 체크
$message_srl = Context::get('message_srl');
if(!$message_srl) return new Object(-1,'msg_invalid_request');
// 쪽지를 가져옴
$oCommunicationModel = &getModel('communication');
$message = $oCommunicationModel->getSelectedMessage($message_srl);
if(!$message || $message->message_type != 'R') return new Object(-1,'msg_invalid_request');
$args->message_srl = $message_srl;
$args->receiver_srl = $logged_info->member_srl;
$output = executeQuery('communication.setMessageStored', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_registed');
}
/**
* @brief 쪽지 삭제
**/
function procCommunicationDeleteMessage() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
// 변수 체크
$message_srl = Context::get('message_srl');
if(!$message_srl) return new Object(-1,'msg_invalid_request');
// 쪽지를 가져옴
$oCommunicationModel = &getModel('communication');
$message = $oCommunicationModel->getSelectedMessage($message_srl);
if(!$message) return new Object(-1,'msg_invalid_request');
// 발송인+type=S or 수신인+type=R 검사
if($message->sender_srl == $member_srl && $message->message_type == 'S') {
if(!$message_srl) return new Object(-1, 'msg_invalid_request');
} elseif($message->receiver_srl == $member_srl && $message->message_type == 'R') {
if(!$message_srl) return new Object(-1, 'msg_invalid_request');
}
// 삭제
$args->message_srl = $message_srl;
$output = executeQuery('communication.deleteMessage', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_deleted');
}
/**
* @brief 선택된 다수의 쪽지 삭제
**/
function procCommunicationDeleteMessages() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
// 변수 체크
$message_srl_list = trim(Context::get('message_srl_list'));
if(!$message_srl_list) return new Object(-1, 'msg_cart_is_null');
$message_srl_list = explode('|@|', $message_srl_list);
if(!count($message_srl_list)) return new Object(-1, 'msg_cart_is_null');
$message_type = Context::get('message_type');
if(!$message_type || !in_array($message_type, array('R','S','T'))) return new Object(-1, 'msg_invalid_request');
$message_count = count($message_srl_list);
$target = array();
for($i=0;$i<$message_count;$i++) {
$message_srl = (int)trim($message_srl_list[$i]);
if(!$message_srl) continue;
$target[] = $message_srl;
}
if(!count($target)) return new Object(-1,'msg_cart_is_null');
// 삭제
$args->message_srls = implode(',',$target);
$args->message_type = $message_type;
if($message_type == 'S') $args->sender_srl = $member_srl;
else $args->receiver_srl = $member_srl;
$output = executeQuery('communication.deleteMessages', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_deleted');
}
/**
* @brief 친구 추가
**/
function procCommunicationAddFriend() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
$target_srl = (int)trim(Context::get('target_srl'));
if(!$target_srl) return new Object(-1,'msg_invalid_request');
// 변수 정리
$args->friend_srl = getNextSequence();
$args->list_order = $args->friend_srl * -1;
$args->friend_group_srl = Context::get('friend_group_srl');
$args->member_srl = $logged_info->member_srl;
$args->target_srl = $target_srl;
$output = executeQuery('communication.addFriend', $args);
if(!$output->toBool()) return $output;
$this->add('member_srl', $target_srl);
$this->setMessage('success_registed');
}
/**
* @brief 등록된 친구의 그룹 이동
**/
function procCommunicationMoveFriend() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 체크
$friend_srl_list = trim(Context::get('friend_srl_list'));
if(!$friend_srl_list) return new Object(-1, 'msg_cart_is_null');
$friend_srl_list = explode('|@|', $friend_srl_list);
if(!count($friend_srl_list)) return new Object(-1, 'msg_cart_is_null');
$friend_count = count($friend_srl_list);
$target = array();
for($i=0;$i<$friend_count;$i++) {
$friend_srl = (int)trim($friend_srl_list[$i]);
if(!$friend_srl) continue;
$target[] = $friend_srl;
}
if(!count($target)) return new Object(-1,'msg_cart_is_null');
// 변수 정리
$args->friend_srls = implode(',',$target);
$args->member_srl = $logged_info->member_srl;
$args->friend_group_srl = Context::get('target_friend_group_srl');
$output = executeQuery('communication.moveFriend', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_moved');
}
/**
* @brief 친구 삭제
**/
function procCommunicationDeleteFriend() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
$member_srl = $logged_info->member_srl;
// 변수 체크
$friend_srl_list = trim(Context::get('friend_srl_list'));
if(!$friend_srl_list) return new Object(-1, 'msg_cart_is_null');
$friend_srl_list = explode('|@|', $friend_srl_list);
if(!count($friend_srl_list)) return new Object(-1, 'msg_cart_is_null');
$friend_count = count($friend_srl_list);
$target = array();
for($i=0;$i<$friend_count;$i++) {
$friend_srl = (int)trim($friend_srl_list[$i]);
if(!$friend_srl) continue;
$target[] = $friend_srl;
}
if(!count($target)) return new Object(-1,'msg_cart_is_null');
// 삭제
$args->friend_srls = implode(',',$target);
$args->member_srl = $logged_info->member_srl;
$output = executeQuery('communication.deleteFriend', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_deleted');
}
/**
* @brief 친구 그룹 추가
**/
function procCommunicationAddFriendGroup() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 정리
$args->friend_group_srl = trim(Context::get('friend_group_srl'));
$args->member_srl = $logged_info->member_srl;
$args->title = Context::get('title');
$args->title = htmlspecialchars($args->title);
if(!$args->title) return new Object(-1, 'msg_invalid_request');
// friend_group_srl이 있으면 수정
if($args->friend_group_srl) {
$output = executeQuery('communication.renameFriendGroup', $args);
$msg_code = 'success_updated';
// 아니면 입력
} else {
$output = executeQuery('communication.addFriendGroup', $args);
$msg_code = 'success_registed';
}
if(!$output->toBool()) return $output;
$this->setMessage($msg_code);
}
/**
* @brief 친구 그룹 이름 변경
**/
function procCommunicationRenameFriendGroup() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 정리
$args->friend_group_srl= Context::get('friend_group_srl');
$args->member_srl = $logged_info->member_srl;
$args->title = Context::get('title');
$args->title = htmlspecialchars($args->title);
if(!$args->title) return new Object(-1, 'msg_invalid_request');
$output = executeQuery('communication.renameFriendGroup', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_updated');
}
/**
* @brief 친구 그룹 삭제
**/
function procCommunicationDeleteFriendGroup() {
// 로그인 정보 체크
if(!Context::get('is_logged')) return new Object(-1, 'msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 정리
$args->friend_group_srl = Context::get('friend_group_srl');
$args->member_srl = $logged_info->member_srl;
$output = executeQuery('communication.deleteFriendGroup', $args);
if(!$output->toBool()) return $output;
$this->setMessage('success_deleted');
}
/**
* @brief 특정 쪽지의 상태를 읽은 상태로 변경
**/
function setMessageReaded($message_srl) {
$args->message_srl = $message_srl;
$args->related_srl = $message_srl;
return executeQuery('communication.setMessageReaded', $args);
}
}
?>

View file

@ -1,189 +1,189 @@
<?php
/**
* @class communicationModel
* @author zero (zero@nzeo.com)
* @brief communication module의 Model class
**/
class communicationModel extends communication {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 설정된 내용을 구함
**/
function getConfig() {
$oModuleModel = &getModel('module');
$communication_config = $oModuleModel->getModuleConfig('communication');
if(!$communication_config->skin) $communication_config->skin = 'default';
if(!$communication_config->colorset) $communication_config->colorset = 'white';
if(!$communication_config->editor_skin) $communication_config->editor_skin = 'default';
return $communication_config;
}
/**
* @brief 쪽지 내용을 가져옴
**/
function getSelectedMessage($message_srl) {
$logged_info = Context::get('logged_info');
$args->message_srl = $message_srl;
$output = executeQuery('communication.getMessage',$args);
$message = $output->data;
if(!$message) return ;
// 보낸 쪽지일 경우 받는 사람 정보를 구함
$oMemberModel = &getModel('member');
if($message->sender_srl == $logged_info->member_srl && $message->message_type == 'S') $member_info = $oMemberModel->getMemberInfoByMemberSrl($message->receiver_srl);
// 보관/받은 쪽지일 경우 보낸 사람 정보를 구함
else $member_info = $oMemberModel->getMemberInfoByMemberSrl($message->sender_srl);
if($member_info) {
foreach($member_info as $key => $val) {
if($key != 'regdate') $message->{$key} = $val;
}
}
// 받은 쪽지이고 아직 읽지 않았을 경우 읽은 상태로 변경
if($message->message_type == 'R' && $message->readed != 'Y') {
$oCommunicationController = &getController('communication');
$oCommunicationController->setMessageReaded($message_srl);
}
return $message;
}
/**
* @brief 쪽지를 가져옴
**/
function getNewMessage() {
$logged_info = Context::get('logged_info');
$args->receiver_srl = $logged_info->member_srl;
$args->readed = 'N';
$output = executeQuery('communication.getNewMessage', $args);
if(!count($output->data)) return;
$message = array_pop($output->data);
$oCommunicationController = &getController('communication');
$oCommunicationController->setMessageReaded($message->message_srl);
return $message;
}
/**
* @brief 쪽지 목록 가져오기
* type = R : 받은 쪽지
* type = S : 보낸 쪽지
* type = T : 보관함
**/
function getMessages($message_type = "R") {
$logged_info = Context::get('logged_info');
switch($message_type) {
case 'R' :
$args->member_srl = $logged_info->member_srl;
$args->message_type = 'R';
$query_id = 'communication.getReceivedMessages';
break;
case 'T' :
$args->member_srl = $logged_info->member_srl;
$args->message_type = 'T';
$query_id = 'communication.getStoredMessages';
break;
default :
$args->member_srl = $logged_info->member_srl;
$args->message_type = 'S';
$query_id = 'communication.getSendedMessages';
break;
}
// 기타 변수들 정리
$args->sort_index = 'message.list_order';
$args->page = Context::get('page');
$args->list_count = 20;
$args->page_count = 10;
return executeQuery($query_id, $args);
}
/**
* @brief 친구 목록 가져오기
**/
function getFriends($friend_group_srl = 0) {
$logged_info = Context::get('logged_info');
$args->friend_group_srl = $friend_group_srl;
$args->member_srl = $logged_info->member_srl;
// 기타 변수들 정리
$args->page = Context::get('page');
$args->sort_index = 'friend.list_order';
$args->list_count = 10;
$args->page_count = 10;
$output = executeQuery('communication.getFriends', $args);
return $output;
}
/**
* @brief 이미 친구로 등록되었는지 검사
**/
function isAddedFriend($member_srl) {
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
$args->target_srl = $member_srl;
$output = executeQuery('communication.isAddedFriend', $args);
return $output->data->count;
}
/**
* @brief 특정 친구 그룹 가져오기
**/
function getFriendGroupInfo($friend_group_srl) {
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
$args->friend_group_srl = $friend_group_srl;
$output = executeQuery('communication.getFriendGroup', $args);
return $output->data;
}
/**
* @brief 그룹 목록 가져오기
**/
function getFriendGroups() {
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
$output = executeQuery('communication.getFriendGroups', $args);
$group_list = $output->data;
if(!$group_list) return;
if(!is_array($group_list)) $group_list = array($group_list);
return $group_list;
}
/**
* @brief 특정 회원의 친구 목록에 포함되어 있는지를 확인
**/
function isFriend($target_srl) {
$logged_info = Context::get('logged_info');
$args->member_srl = $target_srl;
$args->target_srl = $logged_info->member_srl;
$output = executeQuery('communication.isAddedFriend', $args);
if($output->data->count) return true;
return false;
}
}
?>
<?php
/**
* @class communicationModel
* @author NHN (developers@xpressengine.com)
* @brief communication module의 Model class
**/
class communicationModel extends communication {
/**
* @brief 초기화
**/
function init() {
}
/**
* @brief 설정된 내용을 구함
**/
function getConfig() {
$oModuleModel = &getModel('module');
$communication_config = $oModuleModel->getModuleConfig('communication');
if(!$communication_config->skin) $communication_config->skin = 'default';
if(!$communication_config->colorset) $communication_config->colorset = 'white';
if(!$communication_config->editor_skin) $communication_config->editor_skin = 'default';
return $communication_config;
}
/**
* @brief 쪽지 내용을 가져옴
**/
function getSelectedMessage($message_srl) {
$logged_info = Context::get('logged_info');
$args->message_srl = $message_srl;
$output = executeQuery('communication.getMessage',$args);
$message = $output->data;
if(!$message) return ;
// 보낸 쪽지일 경우 받는 사람 정보를 구함
$oMemberModel = &getModel('member');
if($message->sender_srl == $logged_info->member_srl && $message->message_type == 'S') $member_info = $oMemberModel->getMemberInfoByMemberSrl($message->receiver_srl);
// 보관/받은 쪽지일 경우 보낸 사람 정보를 구함
else $member_info = $oMemberModel->getMemberInfoByMemberSrl($message->sender_srl);
if($member_info) {
foreach($member_info as $key => $val) {
if($key != 'regdate') $message->{$key} = $val;
}
}
// 받은 쪽지이고 아직 읽지 않았을 경우 읽은 상태로 변경
if($message->message_type == 'R' && $message->readed != 'Y') {
$oCommunicationController = &getController('communication');
$oCommunicationController->setMessageReaded($message_srl);
}
return $message;
}
/**
* @brief 쪽지를 가져옴
**/
function getNewMessage() {
$logged_info = Context::get('logged_info');
$args->receiver_srl = $logged_info->member_srl;
$args->readed = 'N';
$output = executeQuery('communication.getNewMessage', $args);
if(!count($output->data)) return;
$message = array_pop($output->data);
$oCommunicationController = &getController('communication');
$oCommunicationController->setMessageReaded($message->message_srl);
return $message;
}
/**
* @brief 쪽지 목록 가져오기
* type = R : 받은 쪽지
* type = S : 보낸 쪽지
* type = T : 보관함
**/
function getMessages($message_type = "R") {
$logged_info = Context::get('logged_info');
switch($message_type) {
case 'R' :
$args->member_srl = $logged_info->member_srl;
$args->message_type = 'R';
$query_id = 'communication.getReceivedMessages';
break;
case 'T' :
$args->member_srl = $logged_info->member_srl;
$args->message_type = 'T';
$query_id = 'communication.getStoredMessages';
break;
default :
$args->member_srl = $logged_info->member_srl;
$args->message_type = 'S';
$query_id = 'communication.getSendedMessages';
break;
}
// 기타 변수들 정리
$args->sort_index = 'message.list_order';
$args->page = Context::get('page');
$args->list_count = 20;
$args->page_count = 10;
return executeQuery($query_id, $args);
}
/**
* @brief 친구 목록 가져오기
**/
function getFriends($friend_group_srl = 0) {
$logged_info = Context::get('logged_info');
$args->friend_group_srl = $friend_group_srl;
$args->member_srl = $logged_info->member_srl;
// 기타 변수들 정리
$args->page = Context::get('page');
$args->sort_index = 'friend.list_order';
$args->list_count = 10;
$args->page_count = 10;
$output = executeQuery('communication.getFriends', $args);
return $output;
}
/**
* @brief 이미 친구로 등록되었는지 검사
**/
function isAddedFriend($member_srl) {
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
$args->target_srl = $member_srl;
$output = executeQuery('communication.isAddedFriend', $args);
return $output->data->count;
}
/**
* @brief 특정 친구 그룹 가져오기
**/
function getFriendGroupInfo($friend_group_srl) {
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
$args->friend_group_srl = $friend_group_srl;
$output = executeQuery('communication.getFriendGroup', $args);
return $output->data;
}
/**
* @brief 그룹 목록 가져오기
**/
function getFriendGroups() {
$logged_info = Context::get('logged_info');
$args->member_srl = $logged_info->member_srl;
$output = executeQuery('communication.getFriendGroups', $args);
$group_list = $output->data;
if(!$group_list) return;
if(!is_array($group_list)) $group_list = array($group_list);
return $group_list;
}
/**
* @brief 특정 회원의 친구 목록에 포함되어 있는지를 확인
**/
function isFriend($target_srl) {
$logged_info = Context::get('logged_info');
$args->member_srl = $target_srl;
$args->target_srl = $logged_info->member_srl;
$output = executeQuery('communication.isAddedFriend', $args);
if($output->data->count) return true;
return false;
}
}
?>

View file

@ -1,228 +1,228 @@
<?php
/**
* @class communicationView
* @author zero (zero@nzeo.com)
* @brief communication module의 View class
**/
class communicationView extends communication {
/**
* @brief 초기화
**/
function init() {
$oCommunicationModel = &getModel('communication');
$this->communication_config = $oCommunicationModel->getConfig();
$skin = $this->communication_config->skin;
Context::set('communication_config', $this->communication_config);
$tpl_path = sprintf('%sskins/%s', $this->module_path, $skin);
$this->setTemplatePath($tpl_path);
}
/**
* @brief 쪽지함 출력
**/
function dispCommunicationMessages() {
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 설정
$message_srl = Context::get('message_srl');
$message_type = Context::get('message_type');
if(!in_array($message_type, array('R','S','T'))) {
$message_type = 'R';
Context::set('message_type', $message_type);
}
$oCommunicationModel = &getModel('communication');
// message_srl이 있으면 내용 추출
if($message_srl) {
$message = $oCommunicationModel->getSelectedMessage($message_srl);
if($message->message_srl == $message_srl && ($message->receiver_srl == $logged_info->member_srl || $message->sender_srl == $logged_info->member_srl) ) {
stripEmbedTagForAdmin($message->content, $message->sender_srl);
Context::set('message', $message);
}
}
// 목록 추출
$output = $oCommunicationModel->getMessages($message_type);
// 템플릿에 쓰기 위해서 context::set
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('message_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
$this->setTemplateFile('messages');
}
/**
* @brief 쪽지 보여줌
**/
function dispCommunicationNewMessage() {
$this->setLayoutFile('popup_layout');
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$logged_info = Context::get('logged_info');
$oCommunicationModel = &getModel('communication');
// 새 쪽지를 가져옴
$message = $oCommunicationModel->getNewMessage();
if($message) {
stripEmbedTagForAdmin($message->content, $message->sender_srl);
Context::set('message', $message);
}
// 플래그 삭제
$flag_path = './files/communication_extra_info/new_message_flags/'.getNumberingPath($logged_info->member_srl);
$flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl);
FileHandler::removeFile($flag_file);
$this->setTemplateFile('new_message');
}
/**
* @brief 쪽지 발송 출력
**/
function dispCommunicationSendMessage() {
$this->setLayoutFile("popup_layout");
$oCommunicationModel = &getModel('communication');
$oMemberModel = &getModel('member');
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$logged_info = Context::get('logged_info');
// 쪽지 받을 사용자 정보 구함
$receiver_srl = Context::get('receiver_srl');
if(!$receiver_srl || $logged_info->member_srl == $receiver_srl) return $this->stop('msg_not_logged');
// 답글 쪽지일 경우 원본 메세지의 글번호를 구함
$message_srl = Context::get('message_srl');
if($message_srl) {
$source_message = $oCommunicationModel->getSelectedMessage($message_srl);
if($source_message->message_srl == $message_srl && $source_message->sender_srl == $receiver_srl) {
$source_message->title = "[re] ".$source_message->title;
$source_message->content = "\r\n<br />\r\n<br /><div style=\"padding-left:5px; border-left:5px solid #DDDDDD;\">".trim($source_message->content)."</div>";
Context::set('source_message', $source_message);
}
}
$receiver_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl);
Context::set('receiver_info', $receiver_info);
// 에디터 모듈의 getEditor를 호출하여 서명용으로 세팅
$oEditorModel = &getModel('editor');
$option->primary_key_name = 'receiver_srl';
$option->content_key_name = 'content';
$option->allow_fileupload = false;
$option->enable_autosave = false;
$option->enable_default_component = true;// false;
$option->enable_component = false;
$option->resizable = false;
$option->disable_html = true;
$option->height = 300;
$option->skin = $this->communication_config->editor_skin;
$option->colorset = $this->communication_config->editor_colorset;
$editor = $oEditorModel->getEditor($logged_info->member_srl, $option);
Context::set('editor', $editor);
$this->setTemplateFile('send_message');
}
/**
* @brief 친구 목록 보기
**/
function dispCommunicationFriend() {
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$oCommunicationModel = &getModel('communication');
// 그룹 목록을 가져옴
$tmp_group_list = $oCommunicationModel->getFriendGroups();
$group_count = count($tmp_group_list);
for($i=0;$i<$group_count;$i++) $friend_group_list[$tmp_group_list[$i]->friend_group_srl] = $tmp_group_list[$i];
Context::set('friend_group_list', $friend_group_list);
// 친구 목록을 가져옴
$friend_group_srl = Context::get('friend_group_srl');
$output = $oCommunicationModel->getFriends($friend_group_srl);
$friend_count = count($output->data);
if($friend_count) {
foreach($output->data as $key => $val) {
$group_srl = $val->friend_group_srl;
$group_title = $friend_group_list[$group_srl]->title;
if(!$group_title) $group_title = Context::get('default_friend_group');
$output->data[$key]->group_title = $group_title;
}
}
// 템플릿에 쓰기 위해서 context::set
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('friend_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
$this->setTemplateFile('friends');
}
/**
* @brief 친구 추가
**/
function dispCommunicationAddFriend() {
$this->setLayoutFile("popup_layout");
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$logged_info = Context::get('logged_info');
$target_srl = Context::get('target_srl');
if(!$target_srl) return $this->stop('msg_invalid_request');
// 대상 회원의 정보를 구함
$oMemberModel = &getModel('member');
$oCommunicationModel = &getModel('communication');
$communication_info = $oMemberModel->getMemberInfoByMemberSrl($target_srl);
if($communication_info->member_srl != $target_srl) return $this->stop('msg_invalid_request');
Context::set('target_info', $communication_info);
// 그룹의 목록을 구함
$friend_group_list = $oCommunicationModel->getFriendGroups();
Context::set('friend_group_list', $friend_group_list);
$this->setTemplateFile('add_friend');
}
/**
* @brief 친구 그룹 추가
**/
function dispCommunicationAddFriendGroup() {
$this->setLayoutFile("popup_layout");
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$logged_info = Context::get('logged_info');
// 그룹 번호가 넘어오면 수정모드로..
$friend_group_srl = Context::get('friend_group_srl');
if($friend_group_srl) {
$oCommunicationModel = &getModel('communication');
$friend_group = $oCommunicationModel->getFriendGroupInfo($friend_group_srl);
if($friend_group->friend_group_srl == $friend_group_srl) Context::set('friend_group', $friend_group);
}
$this->setTemplateFile('add_friend_group');
}
}
?>
<?php
/**
* @class communicationView
* @author NHN (developers@xpressengine.com)
* @brief communication module의 View class
**/
class communicationView extends communication {
/**
* @brief 초기화
**/
function init() {
$oCommunicationModel = &getModel('communication');
$this->communication_config = $oCommunicationModel->getConfig();
$skin = $this->communication_config->skin;
Context::set('communication_config', $this->communication_config);
$tpl_path = sprintf('%sskins/%s', $this->module_path, $skin);
$this->setTemplatePath($tpl_path);
}
/**
* @brief 쪽지함 출력
**/
function dispCommunicationMessages() {
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$logged_info = Context::get('logged_info');
// 변수 설정
$message_srl = Context::get('message_srl');
$message_type = Context::get('message_type');
if(!in_array($message_type, array('R','S','T'))) {
$message_type = 'R';
Context::set('message_type', $message_type);
}
$oCommunicationModel = &getModel('communication');
// message_srl이 있으면 내용 추출
if($message_srl) {
$message = $oCommunicationModel->getSelectedMessage($message_srl);
if($message->message_srl == $message_srl && ($message->receiver_srl == $logged_info->member_srl || $message->sender_srl == $logged_info->member_srl) ) {
stripEmbedTagForAdmin($message->content, $message->sender_srl);
Context::set('message', $message);
}
}
// 목록 추출
$output = $oCommunicationModel->getMessages($message_type);
// 템플릿에 쓰기 위해서 context::set
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('message_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
$this->setTemplateFile('messages');
}
/**
* @brief 쪽지 보여줌
**/
function dispCommunicationNewMessage() {
$this->setLayoutFile('popup_layout');
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$logged_info = Context::get('logged_info');
$oCommunicationModel = &getModel('communication');
// 새 쪽지를 가져옴
$message = $oCommunicationModel->getNewMessage();
if($message) {
stripEmbedTagForAdmin($message->content, $message->sender_srl);
Context::set('message', $message);
}
// 플래그 삭제
$flag_path = './files/communication_extra_info/new_message_flags/'.getNumberingPath($logged_info->member_srl);
$flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl);
FileHandler::removeFile($flag_file);
$this->setTemplateFile('new_message');
}
/**
* @brief 쪽지 발송 출력
**/
function dispCommunicationSendMessage() {
$this->setLayoutFile("popup_layout");
$oCommunicationModel = &getModel('communication');
$oMemberModel = &getModel('member');
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$logged_info = Context::get('logged_info');
// 쪽지 받을 사용자 정보 구함
$receiver_srl = Context::get('receiver_srl');
if(!$receiver_srl || $logged_info->member_srl == $receiver_srl) return $this->stop('msg_not_logged');
// 답글 쪽지일 경우 원본 메세지의 글번호를 구함
$message_srl = Context::get('message_srl');
if($message_srl) {
$source_message = $oCommunicationModel->getSelectedMessage($message_srl);
if($source_message->message_srl == $message_srl && $source_message->sender_srl == $receiver_srl) {
$source_message->title = "[re] ".$source_message->title;
$source_message->content = "\r\n<br />\r\n<br /><div style=\"padding-left:5px; border-left:5px solid #DDDDDD;\">".trim($source_message->content)."</div>";
Context::set('source_message', $source_message);
}
}
$receiver_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl);
Context::set('receiver_info', $receiver_info);
// 에디터 모듈의 getEditor를 호출하여 서명용으로 세팅
$oEditorModel = &getModel('editor');
$option->primary_key_name = 'receiver_srl';
$option->content_key_name = 'content';
$option->allow_fileupload = false;
$option->enable_autosave = false;
$option->enable_default_component = true;// false;
$option->enable_component = false;
$option->resizable = false;
$option->disable_html = true;
$option->height = 300;
$option->skin = $this->communication_config->editor_skin;
$option->colorset = $this->communication_config->editor_colorset;
$editor = $oEditorModel->getEditor($logged_info->member_srl, $option);
Context::set('editor', $editor);
$this->setTemplateFile('send_message');
}
/**
* @brief 친구 목록 보기
**/
function dispCommunicationFriend() {
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$oCommunicationModel = &getModel('communication');
// 그룹 목록을 가져옴
$tmp_group_list = $oCommunicationModel->getFriendGroups();
$group_count = count($tmp_group_list);
for($i=0;$i<$group_count;$i++) $friend_group_list[$tmp_group_list[$i]->friend_group_srl] = $tmp_group_list[$i];
Context::set('friend_group_list', $friend_group_list);
// 친구 목록을 가져옴
$friend_group_srl = Context::get('friend_group_srl');
$output = $oCommunicationModel->getFriends($friend_group_srl);
$friend_count = count($output->data);
if($friend_count) {
foreach($output->data as $key => $val) {
$group_srl = $val->friend_group_srl;
$group_title = $friend_group_list[$group_srl]->title;
if(!$group_title) $group_title = Context::get('default_friend_group');
$output->data[$key]->group_title = $group_title;
}
}
// 템플릿에 쓰기 위해서 context::set
Context::set('total_count', $output->total_count);
Context::set('total_page', $output->total_page);
Context::set('page', $output->page);
Context::set('friend_list', $output->data);
Context::set('page_navigation', $output->page_navigation);
$this->setTemplateFile('friends');
}
/**
* @brief 친구 추가
**/
function dispCommunicationAddFriend() {
$this->setLayoutFile("popup_layout");
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$logged_info = Context::get('logged_info');
$target_srl = Context::get('target_srl');
if(!$target_srl) return $this->stop('msg_invalid_request');
// 대상 회원의 정보를 구함
$oMemberModel = &getModel('member');
$oCommunicationModel = &getModel('communication');
$communication_info = $oMemberModel->getMemberInfoByMemberSrl($target_srl);
if($communication_info->member_srl != $target_srl) return $this->stop('msg_invalid_request');
Context::set('target_info', $communication_info);
// 그룹의 목록을 구함
$friend_group_list = $oCommunicationModel->getFriendGroups();
Context::set('friend_group_list', $friend_group_list);
$this->setTemplateFile('add_friend');
}
/**
* @brief 친구 그룹 추가
**/
function dispCommunicationAddFriendGroup() {
$this->setLayoutFile("popup_layout");
// 로그인이 되어 있지 않으면 오류 표시
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
$logged_info = Context::get('logged_info');
// 그룹 번호가 넘어오면 수정모드로..
$friend_group_srl = Context::get('friend_group_srl');
if($friend_group_srl) {
$oCommunicationModel = &getModel('communication');
$friend_group = $oCommunicationModel->getFriendGroupInfo($friend_group_srl);
if($friend_group->friend_group_srl == $friend_group_srl) Context::set('friend_group', $friend_group);
}
$this->setTemplateFile('add_friend_group');
}
}
?>

View file

@ -1,30 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.2">
<title xml:lang="ko">커뮤니케이션</title>
<title xml:lang="jp">コミュニケーション</title>
<title xml:lang="zh-CN">会员交流</title>
<title xml:lang="en">Communication</title>
<title xml:lang="ru">Communication</title>
<title xml:lang="vi">Liên lạc</title>
<title xml:lang="zh-TW">交流</title>
<description xml:lang="ko">회원들간의 쪽지, 친구기능을 담당하는 모듈입니다.</description>
<description xml:lang="jp">会員間にメッセージや友達管理などコミュニティ機能を提供します。</description>
<description xml:lang="zh-CN">管理在线会员间短信息及好友功能的模块。</description>
<description xml:lang="en">This module is for managing message, friend functions.</description>
<description xml:lang="vi">Module quản lý tin nhắn và bạn bè.</description>
<description xml:lang="ru">This module is for managing message, friend functions.</description>
<description xml:lang="zh-TW">管理線上會員間短訊及好友功能的模組。</description>
<version>0.1</version>
<date>2008-05-30</date>
<category>member</category>
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
<name xml:lang="ko">zero</name>
<name xml:lang="vi">zero</name>
<name xml:lang="jp">zero</name>
<name xml:lang="zh-CN">zero</name>
<name xml:lang="en">zero</name>
<name xml:lang="zh-TW">zero</name>
<name xml:lang="ru">zero</name>
</author>
</module>
<?xml version="1.0" encoding="UTF-8"?>
<module version="0.2">
<title xml:lang="ko">커뮤니케이션</title>
<title xml:lang="jp">コミュニケーション</title>
<title xml:lang="zh-CN">会员交流</title>
<title xml:lang="en">Communication</title>
<title xml:lang="ru">Communication</title>
<title xml:lang="vi">Liên lạc</title>
<title xml:lang="zh-TW">交流</title>
<description xml:lang="ko">회원들간의 쪽지, 친구기능을 담당하는 모듈입니다.</description>
<description xml:lang="jp">会員間にメッセージや友達管理などコミュニティ機能を提供します。</description>
<description xml:lang="zh-CN">管理在线会员间短信息及好友功能的模块。</description>
<description xml:lang="en">This module is for managing message, friend functions.</description>
<description xml:lang="vi">Module quản lý tin nhắn và bạn bè.</description>
<description xml:lang="ru">This module is for managing message, friend functions.</description>
<description xml:lang="zh-TW">管理線上會員間短訊及好友功能的模組。</description>
<version>0.1</version>
<date>2008-05-30</date>
<category>member</category>
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
<name xml:lang="ko">NHN</name>
<name xml:lang="vi">NHN</name>
<name xml:lang="jp">NHN</name>
<name xml:lang="zh-CN">NHN</name>
<name xml:lang="en">NHN</name>
<name xml:lang="zh-TW">NHN</name>
<name xml:lang="ru">NHN</name>
</author>
</module>

View file

@ -1,48 +1,48 @@
<?php
/**
* @file en.lang.php
* @author zero (zero@nzeo.com)
* @brief English Language Pack (Only Basic Things)
**/
$lang->communication = 'Communication';
$lang->about_communication = 'Communication module is for communications between members with messages or friends.';
$lang->allow_message = 'Receive Messages';
$lang->allow_message_type = array(
'Y' => 'Receive All',
'N' => 'Reject All',
'F' => 'Only Friends',
);
$lang->message_box = array(
'R' => 'Received',
'S' => 'Sent',
'T' => 'Mailbox',
);
$lang->readed_date = "Read Date";
$lang->sender = 'Sender';
$lang->receiver = 'Receiver';
$lang->friend_group = 'Friend Group';
$lang->default_friend_group = 'Unassigned Group';
$lang->cmd_send_message = 'Send Message';
$lang->cmd_reply_message = 'Reply Message';
$lang->cmd_view_friend = 'Friends';
$lang->cmd_add_friend = 'Add Friend';
$lang->cmd_view_message_box = 'Message Box';
$lang->cmd_store = "Save";
$lang->cmd_add_friend_group = 'Add Friend Group';
$lang->cmd_rename_friend_group = 'Modify Friend Group Name';
$lang->msg_no_message = 'There is no message';
$lang->message_received = 'You have a new message';
$lang->msg_title_is_null = 'Please input the title of message';
$lang->msg_content_is_null = 'Please input the content';
$lang->msg_allow_message_to_friend = "Failed to send because receiver only allows friends' messages";
$lang->msg_disallow_message = 'Failed to send because receiver rejects message reception';
$lang->about_allow_message = 'You can decide message reception';
?>
<?php
/**
* @file en.lang.php
* @author NHN (developers@xpressengine.com)
* @brief English Language Pack (Only Basic Things)
**/
$lang->communication = 'Communication';
$lang->about_communication = 'Communication module is for communications between members with messages or friends.';
$lang->allow_message = 'Receive Messages';
$lang->allow_message_type = array(
'Y' => 'Receive All',
'N' => 'Reject All',
'F' => 'Only Friends',
);
$lang->message_box = array(
'R' => 'Received',
'S' => 'Sent',
'T' => 'Mailbox',
);
$lang->readed_date = "Read Date";
$lang->sender = 'Sender';
$lang->receiver = 'Receiver';
$lang->friend_group = 'Friend Group';
$lang->default_friend_group = 'Unassigned Group';
$lang->cmd_send_message = 'Send Message';
$lang->cmd_reply_message = 'Reply Message';
$lang->cmd_view_friend = 'Friends';
$lang->cmd_add_friend = 'Add Friend';
$lang->cmd_view_message_box = 'Message Box';
$lang->cmd_store = "Save";
$lang->cmd_add_friend_group = 'Add Friend Group';
$lang->cmd_rename_friend_group = 'Modify Friend Group Name';
$lang->msg_no_message = 'There is no message';
$lang->message_received = 'You have a new message';
$lang->msg_title_is_null = 'Please input the title of message';
$lang->msg_content_is_null = 'Please input the content';
$lang->msg_allow_message_to_friend = "Failed to send because receiver only allows friends' messages";
$lang->msg_disallow_message = 'Failed to send because receiver rejects message reception';
$lang->about_allow_message = 'You can decide message reception';
?>

View file

@ -1,49 +1,49 @@
<?php
/**
* @file es.lang.php
* @author zero (zero@nzeo.com)
* @brief Spanish Language Pack (Only Basic Things)
**/
$lang->communication = 'Communication';
$lang->about_communication = '회원간의 쪽지나 친구 관리등 커뮤니케이션 기능을 수행하는 모듈입니다';
$lang->allow_message = 'Permitir la recepción del mensaje';
$lang->allow_message_type = array(
'Y' => 'Recibir todo',
'N' => 'Rechazar',
'F' => 'Sólo amigos',
);
$lang->message_box = array(
'R' => 'Recibido',
'S' => 'Enviado',
'T' => 'Buzon de Email',
);
$lang->readed_date = "Fecha Leído";
$lang->sender = 'Remitente';
$lang->receiver = 'Receptor';
$lang->friend_group = 'Grupo de amigos';
$lang->default_friend_group = 'Grupo desasignado';
$lang->cmd_send_message = 'Enviar Mensaje';
$lang->cmd_reply_message = 'Responder el mensaje';
$lang->cmd_view_friend = 'Amigos';
$lang->cmd_add_friend = 'Registrar como Amigo';
$lang->cmd_view_message_box = 'Buzón de mensajes';
$lang->cmd_store = "Guardar";
$lang->cmd_add_friend_group = 'agregar grupo de amigos';
$lang->cmd_rename_friend_group = 'Cambiar el nombre del grupo de amigos';
$lang->msg_no_message = 'No hay mensajes';
$lang->message_received = 'Usted ha recibido un mensaje';
$lang->msg_title_is_null = 'Por favor ingresar el título de la nota';
$lang->msg_content_is_null = 'Por favor ingresar el contenido';
$lang->msg_allow_message_to_friend = "Falló el envío por permitir sólo mensajes de sus amigos";
$lang->msg_disallow_message = 'Falló el envío por ser usuario rechazado para recibir mensajes';
$lang->about_allow_message = 'Usted puede decidir la recepción del mensaje';
?>
<?php
/**
* @file es.lang.php
* @author NHN (developers@xpressengine.com)
* @brief Spanish Language Pack (Only Basic Things)
**/
$lang->communication = 'Communication';
$lang->about_communication = '회원간의 쪽지나 친구 관리등 커뮤니케이션 기능을 수행하는 모듈입니다';
$lang->allow_message = 'Permitir la recepción del mensaje';
$lang->allow_message_type = array(
'Y' => 'Recibir todo',
'N' => 'Rechazar',
'F' => 'Sólo amigos',
);
$lang->message_box = array(
'R' => 'Recibido',
'S' => 'Enviado',
'T' => 'Buzon de Email',
);
$lang->readed_date = "Fecha Leído";
$lang->sender = 'Remitente';
$lang->receiver = 'Receptor';
$lang->friend_group = 'Grupo de amigos';
$lang->default_friend_group = 'Grupo desasignado';
$lang->cmd_send_message = 'Enviar Mensaje';
$lang->cmd_reply_message = 'Responder el mensaje';
$lang->cmd_view_friend = 'Amigos';
$lang->cmd_add_friend = 'Registrar como Amigo';
$lang->cmd_view_message_box = 'Buzón de mensajes';
$lang->cmd_store = "Guardar";
$lang->cmd_add_friend_group = 'agregar grupo de amigos';
$lang->cmd_rename_friend_group = 'Cambiar el nombre del grupo de amigos';
$lang->msg_no_message = 'No hay mensajes';
$lang->message_received = 'Usted ha recibido un mensaje';
$lang->msg_title_is_null = 'Por favor ingresar el título de la nota';
$lang->msg_content_is_null = 'Por favor ingresar el contenido';
$lang->msg_allow_message_to_friend = "Falló el envío por permitir sólo mensajes de sus amigos";
$lang->msg_disallow_message = 'Falló el envío por ser usuario rechazado para recibir mensajes';
$lang->about_allow_message = 'Usted puede decidir la recepción del mensaje';
?>

View file

@ -1,48 +1,48 @@
<?php
/**
* @file fr.lang.php
* @author zero (zero@nzeo.com) Traduit par Pierre Duvent(PierreDuvent@gamil.com)
* @brief Paquet du langage en français pour le module de Communication
**/
$lang->communication = 'Communication';
$lang->about_communication = 'Ce module exécute des fonctions communicatives comme Messages ou Amis';
$lang->allow_message = 'Recevoir les Messages';
$lang->allow_message_type = array(
'Y' => 'Recevoir tout',
'N' => 'Refuser tout',
'F' => 'Amis seulement',
);
$lang->message_box = array(
'R' => 'Reçu',
'S' => 'Envoyé',
'T' => 'Boîte aux Lettres',
);
$lang->readed_date = "Jour lu";
$lang->sender = 'Envoyeur';
$lang->receiver = 'Receveur';
$lang->friend_group = 'Groupe des Amis';
$lang->default_friend_group = 'Groupe pas assigné ';
$lang->cmd_send_message = 'Envoyer un Message';
$lang->cmd_reply_message = 'Répondre à un Message';
$lang->cmd_view_friend = 'Amis';
$lang->cmd_add_friend = 'Inscrire des Amis';
$lang->cmd_view_message_box = 'Lire des Messages';
$lang->cmd_store = "Conserver";
$lang->cmd_add_friend_group = 'Ajouter un Groupe des Amis';
$lang->cmd_rename_friend_group = 'Modifier le Nom du Groupe des Amis';
$lang->msg_no_message = 'Nul Message';
$lang->message_received = 'Nouveau message';
$lang->msg_title_is_null = 'Entrez le titre du message, S.V.P.';
$lang->msg_content_is_null = 'Entrez le contenu, S.V.P.';
$lang->msg_allow_message_to_friend = "Echoué à envoyer parce que le receveur permet seulement les messages des Amis.";
$lang->msg_disallow_message = 'Echoué à envoyer parce que le receveur refuse la réception des messages';
$lang->about_allow_message = 'Vous pouvez refuser la réception des messages';
?>
<?php
/**
* @file fr.lang.php
* @author NHN (developers@xpressengine.com) Traduit par Pierre Duvent(PierreDuvent@gamil.com)
* @brief Paquet du langage en français pour le module de Communication
**/
$lang->communication = 'Communication';
$lang->about_communication = 'Ce module exécute des fonctions communicatives comme Messages ou Amis';
$lang->allow_message = 'Recevoir les Messages';
$lang->allow_message_type = array(
'Y' => 'Recevoir tout',
'N' => 'Refuser tout',
'F' => 'Amis seulement',
);
$lang->message_box = array(
'R' => 'Reçu',
'S' => 'Envoyé',
'T' => 'Boîte aux Lettres',
);
$lang->readed_date = "Jour lu";
$lang->sender = 'Envoyeur';
$lang->receiver = 'Receveur';
$lang->friend_group = 'Groupe des Amis';
$lang->default_friend_group = 'Groupe pas assigné ';
$lang->cmd_send_message = 'Envoyer un Message';
$lang->cmd_reply_message = 'Répondre à un Message';
$lang->cmd_view_friend = 'Amis';
$lang->cmd_add_friend = 'Inscrire des Amis';
$lang->cmd_view_message_box = 'Lire des Messages';
$lang->cmd_store = "Conserver";
$lang->cmd_add_friend_group = 'Ajouter un Groupe des Amis';
$lang->cmd_rename_friend_group = 'Modifier le Nom du Groupe des Amis';
$lang->msg_no_message = 'Nul Message';
$lang->message_received = 'Nouveau message';
$lang->msg_title_is_null = 'Entrez le titre du message, S.V.P.';
$lang->msg_content_is_null = 'Entrez le contenu, S.V.P.';
$lang->msg_allow_message_to_friend = "Echoué à envoyer parce que le receveur permet seulement les messages des Amis.";
$lang->msg_disallow_message = 'Echoué à envoyer parce que le receveur refuse la réception des messages';
$lang->about_allow_message = 'Vous pouvez refuser la réception des messages';
?>

View file

@ -1,48 +1,48 @@
<?php
/**
* @file modules/member/jp.lang.php
* @author zero (zero@nzeo.com) 翻訳RisaPapa、ミニミ、liahona
* @brief 日本語言語パッケージ(基本的な内容のみ)
**/
$lang->communication = 'コミュニケーション';
$lang->about_communication = '会員間にメッセージや友達管理などコミュニティ機能を提供するモジュールです。';
$lang->allow_message = 'メッセージの受信';
$lang->allow_message_type = array(
'Y' => '全て受信',
'N' => '全て受信しない',
'F' => '友達からのみ受信する',
);
$lang->message_box = array(
'R' => 'メッセージ受信箱',
'S' => 'メッセージ送信箱',
'T' => '保存箱',
);
$lang->readed_date = '開封時間';
$lang->sender = '送信者';
$lang->receiver = '受信者';
$lang->friend_group = '友達グループ';
$lang->default_friend_group = 'グループ未指定';
$lang->cmd_send_message = 'メッセージ送信';
$lang->cmd_reply_message = 'メッセージ返信';
$lang->cmd_view_friend = '友達リスト';
$lang->cmd_add_friend = '友達登録';
$lang->cmd_view_message_box = 'メッセージ';
$lang->cmd_store = '保存';
$lang->cmd_add_friend_group = '友達グループ追加';
$lang->cmd_rename_friend_group = '友達グループ名変更';
$lang->msg_no_message = 'メッセージがありません。';
$lang->message_received = 'メッセージが届きました。';
$lang->msg_title_is_null = 'メッセージのタイトルを入力して下さい。';
$lang->msg_content_is_null = '内容を入力して下さい。';
$lang->msg_allow_message_to_friend = '友達からのみメッセージを受信出来るように設定したユーザであるため、送信出来ませんでした。';
$lang->msg_disallow_message = 'メッセージの受信を拒否している受信者であるため、送信出来ませんでした。';
$lang->about_allow_message = 'メッセージを受信するかを設定します。';
?>
<?php
/**
* @file modules/member/jp.lang.php
* @author NHN (developers@xpressengine.com) 翻訳RisaPapa、ミニミ、liahona
* @brief 日本語言語パッケージ(基本的な内容のみ)
**/
$lang->communication = 'コミュニケーション';
$lang->about_communication = '会員間にメッセージや友達管理などコミュニティ機能を提供するモジュールです。';
$lang->allow_message = 'メッセージの受信';
$lang->allow_message_type = array(
'Y' => '全て受信',
'N' => '全て受信しない',
'F' => '友達からのみ受信する',
);
$lang->message_box = array(
'R' => 'メッセージ受信箱',
'S' => 'メッセージ送信箱',
'T' => '保存箱',
);
$lang->readed_date = '開封時間';
$lang->sender = '送信者';
$lang->receiver = '受信者';
$lang->friend_group = '友達グループ';
$lang->default_friend_group = 'グループ未指定';
$lang->cmd_send_message = 'メッセージ送信';
$lang->cmd_reply_message = 'メッセージ返信';
$lang->cmd_view_friend = '友達リスト';
$lang->cmd_add_friend = '友達登録';
$lang->cmd_view_message_box = 'メッセージ';
$lang->cmd_store = '保存';
$lang->cmd_add_friend_group = '友達グループ追加';
$lang->cmd_rename_friend_group = '友達グループ名変更';
$lang->msg_no_message = 'メッセージがありません。';
$lang->message_received = 'メッセージが届きました。';
$lang->msg_title_is_null = 'メッセージのタイトルを入力して下さい。';
$lang->msg_content_is_null = '内容を入力して下さい。';
$lang->msg_allow_message_to_friend = '友達からのみメッセージを受信出来るように設定したユーザであるため、送信出来ませんでした。';
$lang->msg_disallow_message = 'メッセージの受信を拒否している受信者であるため、送信出来ませんでした。';
$lang->about_allow_message = 'メッセージを受信するかを設定します。';
?>

View file

@ -1,48 +1,48 @@
<?php
/**
* @file modules/communication/lang/ko.lang.php
* @author zero (zero@nzeo.com)
* @brief 한국어 언어팩 (기본적인 내용만 수록)
**/
$lang->communication = '커뮤니케이션';
$lang->about_communication = '회원 간의 쪽지나 친구 관리 등 커뮤니케이션 기능을 수행하는 모듈입니다.';
$lang->allow_message = '쪽지 수신 허용';
$lang->allow_message_type = array(
'Y' => '전체 수신',
'N' => '거부',
'F' => '친구만 허용',
);
$lang->message_box = array(
'R' => '받은 쪽지함',
'S' => '보낸 쪽지함',
'T' => '보관함',
);
$lang->readed_date = '읽은 시간';
$lang->sender = '보낸이';
$lang->receiver = '받는이';
$lang->friend_group = '친구 그룹';
$lang->default_friend_group = '그룹 미지정';
$lang->cmd_send_message = '쪽지 보내기';
$lang->cmd_reply_message = '쪽지 답장';
$lang->cmd_view_friend = '친구 보기';
$lang->cmd_add_friend = '친구 등록';
$lang->cmd_view_message_box = '쪽지함 보기';
$lang->cmd_store = '보관';
$lang->cmd_add_friend_group = '친구 그룹 추가';
$lang->cmd_rename_friend_group = '친구 그룹 이름 변경';
$lang->msg_no_message = '쪽지가 없습니다.';
$lang->message_received = '쪽지가 왔습니다.';
$lang->msg_title_is_null = '쪽지 제목을 입력해주세요.';
$lang->msg_content_is_null = '내용을 입력해주세요.';
$lang->msg_allow_message_to_friend = '친구에게만 쪽지 발송을 허용한 사용자라서 쪽지 발송을 하지 못했습니다.';
$lang->msg_disallow_message = '쪽지 수신을 거부한 사용자라서 쪽지 발송을 하지 못했습니다.';
$lang->about_allow_message = '쪽지 수신 여부를 결정할 수 있습니다.';
?>
<?php
/**
* @file modules/communication/lang/ko.lang.php
* @author NHN (developers@xpressengine.com)
* @brief 한국어 언어팩 (기본적인 내용만 수록)
**/
$lang->communication = '커뮤니케이션';
$lang->about_communication = '회원 간의 쪽지나 친구 관리 등 커뮤니케이션 기능을 수행하는 모듈입니다.';
$lang->allow_message = '쪽지 수신 허용';
$lang->allow_message_type = array(
'Y' => '전체 수신',
'N' => '거부',
'F' => '친구만 허용',
);
$lang->message_box = array(
'R' => '받은 쪽지함',
'S' => '보낸 쪽지함',
'T' => '보관함',
);
$lang->readed_date = '읽은 시간';
$lang->sender = '보낸이';
$lang->receiver = '받는이';
$lang->friend_group = '친구 그룹';
$lang->default_friend_group = '그룹 미지정';
$lang->cmd_send_message = '쪽지 보내기';
$lang->cmd_reply_message = '쪽지 답장';
$lang->cmd_view_friend = '친구 보기';
$lang->cmd_add_friend = '친구 등록';
$lang->cmd_view_message_box = '쪽지함 보기';
$lang->cmd_store = '보관';
$lang->cmd_add_friend_group = '친구 그룹 추가';
$lang->cmd_rename_friend_group = '친구 그룹 이름 변경';
$lang->msg_no_message = '쪽지가 없습니다.';
$lang->message_received = '쪽지가 왔습니다.';
$lang->msg_title_is_null = '쪽지 제목을 입력해주세요.';
$lang->msg_content_is_null = '내용을 입력해주세요.';
$lang->msg_allow_message_to_friend = '친구에게만 쪽지 발송을 허용한 사용자라서 쪽지 발송을 하지 못했습니다.';
$lang->msg_disallow_message = '쪽지 수신을 거부한 사용자라서 쪽지 발송을 하지 못했습니다.';
$lang->about_allow_message = '쪽지 수신 여부를 결정할 수 있습니다.';
?>

View file

@ -1,49 +1,49 @@
<?php
/**
* @file ru.lang.php
* @author zero <zero@nzeo.com> | translation by Maslennikov Evgeny aka X-[Vr]bL1s5 | e-mail: x-bliss[a]tut.by; ICQ: 225035467;
* @brief Russian basic language pack
**/
$lang->communication = 'Общение';
$lang->about_communication = 'Модуль для общения между пользователями';
$lang->allow_message = 'Получать сообщения';
$lang->allow_message_type = array(
'Y' => 'Принимать все',
'N' => 'Отклонять все',
'F' => 'Принимать только от друзей',
);
$lang->message_box = array(
'R' => 'Полученные',
'S' => 'Отправленные',
'T' => 'Почтовый ящик',
);
$lang->readed_date = "Дата прочтения сообщения";
$lang->sender = 'Отправитель';
$lang->receiver = 'Получатель';
$lang->friend_group = 'Группа Друзья';
$lang->default_friend_group = 'Незарегистрированная группа';
$lang->cmd_send_message = 'Отправить сообщение';
$lang->cmd_reply_message = 'Ответить';
$lang->cmd_view_friend = 'Друзья';
$lang->cmd_add_friend = 'Добавить в друзья';
$lang->cmd_view_message_box = 'Личные сообщений';
$lang->cmd_store = "Сохранить";
$lang->cmd_add_friend_group = 'Добавить в группу друзей';
$lang->cmd_rename_friend_group = 'Изменить имя группы друзей';
$lang->msg_no_message = 'Сообщений нет';
$lang->message_received = 'У Вас новое сообщение';
$lang->msg_title_is_null = 'Пожалуйста, введите тему сообщения';
$lang->msg_content_is_null = 'Пожалуйста, введите содержание';
$lang->msg_allow_message_to_friend = "Сообщение не отправлено, поскольку являетесь пользователем, имеющим право посылать сообщения только друзьям";
$lang->msg_disallow_message = 'Сообщение не отправлено, поскольку получатель запретил прием сообщений';
$lang->about_allow_message = 'Вы можете установить режим принятия сообщений';
?>
<?php
/**
* @file ru.lang.php
* @author NHN (developers@xpressengine.com) | translation by Maslennikov Evgeny aka X-[Vr]bL1s5 | e-mail: x-bliss[a]tut.by; ICQ: 225035467;
* @brief Russian basic language pack
**/
$lang->communication = 'Общение';
$lang->about_communication = 'Модуль для общения между пользователями';
$lang->allow_message = 'Получать сообщения';
$lang->allow_message_type = array(
'Y' => 'Принимать все',
'N' => 'Отклонять все',
'F' => 'Принимать только от друзей',
);
$lang->message_box = array(
'R' => 'Полученные',
'S' => 'Отправленные',
'T' => 'Почтовый ящик',
);
$lang->readed_date = "Дата прочтения сообщения";
$lang->sender = 'Отправитель';
$lang->receiver = 'Получатель';
$lang->friend_group = 'Группа Друзья';
$lang->default_friend_group = 'Незарегистрированная группа';
$lang->cmd_send_message = 'Отправить сообщение';
$lang->cmd_reply_message = 'Ответить';
$lang->cmd_view_friend = 'Друзья';
$lang->cmd_add_friend = 'Добавить в друзья';
$lang->cmd_view_message_box = 'Личные сообщений';
$lang->cmd_store = "Сохранить";
$lang->cmd_add_friend_group = 'Добавить в группу друзей';
$lang->cmd_rename_friend_group = 'Изменить имя группы друзей';
$lang->msg_no_message = 'Сообщений нет';
$lang->message_received = 'У Вас новое сообщение';
$lang->msg_title_is_null = 'Пожалуйста, введите тему сообщения';
$lang->msg_content_is_null = 'Пожалуйста, введите содержание';
$lang->msg_allow_message_to_friend = "Сообщение не отправлено, поскольку являетесь пользователем, имеющим право посылать сообщения только друзьям";
$lang->msg_disallow_message = 'Сообщение не отправлено, поскольку получатель запретил прием сообщений';
$lang->about_allow_message = 'Вы можете установить режим принятия сообщений';
?>

View file

@ -1,50 +1,50 @@
<?php
/* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░ * @File : common/lang/vi.lang.php ░░
░░ * @Author : zero (zero@nzeo.com) ░░
░░ * @Trans : Đào Đức Duy (ducduy.dao.vn@vietxe.net) ░░
░░ * @Website: http://vietxe.net ░░
░░ * @Brief : Vietnamese Language Pack (Only basic words are included here) ░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ */
$lang->communication = 'Thông báo';
$lang->about_communication = 'Module này thực hiện chức năng giao tiếp, tin nhắn hay bạn bè.';
$lang->allow_message = 'Nhận tin nhắn';
$lang->allow_message_type = array(
'Y' => 'Nhận tất cả',
'N' => 'Từ chối tất cả',
'F' => 'Chỉ bạn bè',
);
$lang->message_box = array(
'R' => 'Đã nhận',
'S' => 'Gửi',
'T' => 'Hòm thư',
);
$lang->readed_date = "Ngày đọc";
$lang->sender = 'Người gửi';
$lang->receiver = 'Người nhận';
$lang->friend_group = 'Nhóm bạn';
$lang->default_friend_group = 'Nhóm mặc định';
$lang->cmd_send_message = 'Gửi tin nhắn';
$lang->cmd_reply_message = 'Trả lời tin nhắn';
$lang->cmd_view_friend = 'Bạn bè';
$lang->cmd_add_friend = 'Thêm bạn';
$lang->cmd_view_message_box = 'Hộp tin nhắn';
$lang->cmd_store = "Lưu";
$lang->cmd_add_friend_group = 'Thêm nhóm bạn';
$lang->cmd_rename_friend_group = 'Sử tên nhóm';
$lang->msg_no_message = 'Không có tin nhắn nào.';
$lang->message_received = 'Bạn có tin nhắn mới.';
$lang->msg_title_is_null = 'Xin vui lòng nhập tiêu đề của tin nhắn.';
$lang->msg_content_is_null = 'Xin vui lòng nhập nội dung.';
$lang->msg_allow_message_to_friend = "Không thể gửi vì người nhận chỉ chấp nhận những tin nhắn từ bạn bè của họ.";
$lang->msg_disallow_message = 'Không thể gửi vì người nhận đã từ chối nhận tin nhắn.';
$lang->about_allow_message = 'Bạn có thể đồng ý nhận tin nhắn.';
?>
<?php
/* ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░ * @File : common/lang/vi.lang.php ░░
░░ * @Author : NHN (developers@xpressengine.com) ░░
░░ * @Trans : Đào Đức Duy (ducduy.dao.vn@vietxe.net) ░░
░░ * @Website: http://vietxe.net ░░
░░ * @Brief : Vietnamese Language Pack (Only basic words are included here) ░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ */
$lang->communication = 'Thông báo';
$lang->about_communication = 'Module này thực hiện chức năng giao tiếp, tin nhắn hay bạn bè.';
$lang->allow_message = 'Nhận tin nhắn';
$lang->allow_message_type = array(
'Y' => 'Nhận tất cả',
'N' => 'Từ chối tất cả',
'F' => 'Chỉ bạn bè',
);
$lang->message_box = array(
'R' => 'Đã nhận',
'S' => 'Gửi',
'T' => 'Hòm thư',
);
$lang->readed_date = "Ngày đọc";
$lang->sender = 'Người gửi';
$lang->receiver = 'Người nhận';
$lang->friend_group = 'Nhóm bạn';
$lang->default_friend_group = 'Nhóm mặc định';
$lang->cmd_send_message = 'Gửi tin nhắn';
$lang->cmd_reply_message = 'Trả lời tin nhắn';
$lang->cmd_view_friend = 'Bạn bè';
$lang->cmd_add_friend = 'Thêm bạn';
$lang->cmd_view_message_box = 'Hộp tin nhắn';
$lang->cmd_store = "Lưu";
$lang->cmd_add_friend_group = 'Thêm nhóm bạn';
$lang->cmd_rename_friend_group = 'Sử tên nhóm';
$lang->msg_no_message = 'Không có tin nhắn nào.';
$lang->message_received = 'Bạn có tin nhắn mới.';
$lang->msg_title_is_null = 'Xin vui lòng nhập tiêu đề của tin nhắn.';
$lang->msg_content_is_null = 'Xin vui lòng nhập nội dung.';
$lang->msg_allow_message_to_friend = "Không thể gửi vì người nhận chỉ chấp nhận những tin nhắn từ bạn bè của họ.";
$lang->msg_disallow_message = 'Không thể gửi vì người nhận đã từ chối nhận tin nhắn.';
$lang->about_allow_message = 'Bạn có thể đồng ý nhận tin nhắn.';
?>

View file

@ -1,49 +1,49 @@
<?php
/**
* @file zh-CN.lang.php
* @author zero (zero@nzeo.com)
* @brief 简体中文语言包 (只收录基本内容)
**/
$lang->communication = '会员交流';
$lang->about_communication = '管理在线会员间短信息及好友功能的模块。';
$lang->allow_message = '接收短消息';
$lang->allow_message_type = array(
'Y' => '全部接收',
'N' => '拒收',
'F' => '只允许好友',
);
$lang->message_box = array(
'R' => '收件箱',
'S' => '发件箱',
'T' => '保管箱',
);
$lang->readed_date = "阅读日期";
$lang->sender = '寄件人';
$lang->receiver = '收件人';
$lang->friend_group = '好友组';
$lang->default_friend_group = '组未指定';
$lang->cmd_send_message = '发送短消息';
$lang->cmd_reply_message = '回复短消息';
$lang->cmd_view_friend = '我的好友';
$lang->cmd_add_friend = '加为好友';
$lang->cmd_view_message_box = '短信箱';
$lang->cmd_store = "保管";
$lang->cmd_add_friend_group = '添加好友组';
$lang->cmd_rename_friend_group = '修改好友组名称';
$lang->msg_no_message = '没有短消息。';
$lang->message_received = '您有新消息。';
$lang->msg_title_is_null = '请输入短消息标题。';
$lang->msg_content_is_null = '请输入内容。';
$lang->msg_allow_message_to_friend = '因其为只允许接收好友短消息的用户,所以不能发送短消息。';
$lang->msg_disallow_message = '因其为拒绝接收短消息的用户,所以不能发送短消息。';
$lang->about_allow_message = '可以选择短消息接收与否。';
?>
<?php
/**
* @file zh-CN.lang.php
* @author NHN (developers@xpressengine.com)
* @brief 简体中文语言包 (只收录基本内容)
**/
$lang->communication = '会员交流';
$lang->about_communication = '管理在线会员间短信息及好友功能的模块。';
$lang->allow_message = '接收短消息';
$lang->allow_message_type = array(
'Y' => '全部接收',
'N' => '拒收',
'F' => '只允许好友',
);
$lang->message_box = array(
'R' => '收件箱',
'S' => '发件箱',
'T' => '保管箱',
);
$lang->readed_date = "阅读日期";
$lang->sender = '寄件人';
$lang->receiver = '收件人';
$lang->friend_group = '好友组';
$lang->default_friend_group = '组未指定';
$lang->cmd_send_message = '发送短消息';
$lang->cmd_reply_message = '回复短消息';
$lang->cmd_view_friend = '我的好友';
$lang->cmd_add_friend = '加为好友';
$lang->cmd_view_message_box = '短信箱';
$lang->cmd_store = "保管";
$lang->cmd_add_friend_group = '添加好友组';
$lang->cmd_rename_friend_group = '修改好友组名称';
$lang->msg_no_message = '没有短消息。';
$lang->message_received = '您有新消息。';
$lang->msg_title_is_null = '请输入短消息标题。';
$lang->msg_content_is_null = '请输入内容。';
$lang->msg_allow_message_to_friend = '因其为只允许接收好友短消息的用户,所以不能发送短消息。';
$lang->msg_disallow_message = '因其为拒绝接收短消息的用户,所以不能发送短消息。';
$lang->about_allow_message = '可以选择短消息接收与否。';
?>

View file

@ -1,7 +1,7 @@
<?php
/**
* @file modules/communication/lang/zh-TW.lang.php
* @author zero (zero@nzeo.com) 翻譯royallin
* @author NHN (developers@xpressengine.com) 翻譯royallin
* @brief 交流(communication)模組正體中文語言
**/

View file

@ -1,119 +1,111 @@
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.2">
<title xml:lang="ko">기본 스킨</title>
<title xml:lang="zh-CN">默认皮肤</title>
<title xml:lang="jp">基本スキン</title>
<title xml:lang="en">Default Skin</title>
<title xml:lang="vi">Skin Mặc định</title>
<title xml:lang="es">Por defecto piel</title>
<title xml:lang="ru">기본 스킨</title>
<title xml:lang="zh-TW">預設面板</title>
<description xml:lang="ko">
디자인 : 서기정 (http://blog.naver.com/addcozy)
HTML/CSS : 정찬명 (http://naradesign.net)
</description>
<description xml:lang="zh-CN">
设计 : Ki-Jeong Seo (http://blog.naver.com/addcozy)
HTML/CSS : Chan-Myung Jeong (http://naradesign.net)
</description>
<description xml:lang="jp">
デザインKi-Jeong Seo (http://blog.naver.com/addcozy)
HTML/CSSChan-Myung Jeong (http://naradesign.net)
</description>
<description xml:lang="en">
Design : Ki-Jeong Seo (http://blog.naver.com/addcozy)
HTML/CSS : Chan-Myung Jeong (http://naradesign.net)
</description>
<description xml:lang="vi">
Thiết kế: Ki-Jeong Seo (http://blog.naver.com/addcozy)
HTML/CSS : Chan-Myung Jeong (http://naradesign.net)
</description>
<description xml:lang="es">
Diseño: Ki-Jeong Seo (http://blog.naver.com/addcozy)
HTML / CSS: Jeong Chan-Myung (http://naradesign.net)
</description>
<description xml:lang="ru">
Дизайн: Ги Чен Се (http://blog.naver.com/addcozy)
HTML / CSS: Чен-Чен Мен (http://naradesign.net)
</description>
<description xml:lang="zh-TW">
設計 : Ki-Jeong Seo (http://blog.naver.com/addcozy)
HTML/CSS : Chan-Myung Jeong (http://naradesign.net)
</description>
<version>0.1</version>
<date>2008-05-28</date>
<author email_address="zero@zeroboard.com" link="http://blog.nzeo.com">
<name xml:lang="ko">(주)NHN</name>
<name xml:lang="jp">NHN</name>
<name xml:lang="zh-CN">(株)NHN</name>
<name xml:lang="en">NHN Corp</name>
<name xml:lang="vi">NHN Corp</name>
<name xml:lang="es">NHN Corp</name>
<name xml:lang="ru">NHN Корп</name>
<name xml:lang="zh-TW">NHN Corp</name>
</author>
<colorset>
<color name="white" src="screenshot/white.gif">
<title xml:lang="ko">기본</title>
<title xml:lang="zh-CN">默认</title>
<title xml:lang="jp">デフォルト</title>
<title xml:lang="en">default</title>
<title xml:lang="vi">Mặc định</title>
<title xml:lang="es">Por defecto</title>
<title xml:lang="ru">умолчанию</title>
<title xml:lang="zh-TW">預設</title>
</color>
<color name="cyan" src="screenshot/cyan.gif">
<title xml:lang="ko">청록색</title>
<title xml:lang="jp">青緑</title>
<title xml:lang="zh-CN">青绿色</title>
<title xml:lang="en">cyan</title>
<title xml:lang="vi">Cyan</title>
<title xml:lang="es">Cian</title>
<title xml:lang="ru">бирюзовый</title>
<title xml:lang="zh-TW">青綠色</title>
</color>
<color name="green" src="screenshot/green.gif">
<title xml:lang="ko">초록색</title>
<title xml:lang="jp"></title>
<title xml:lang="zh-CN">绿色</title>
<title xml:lang="en">green</title>
<title xml:lang="vi">Green</title>
<title xml:lang="es">Verde</title>
<title xml:lang="ru">зеленый</title>
<title xml:lang="zh-TW">綠色</title>
</color>
<color name="red" src="screenshot/red.gif">
<title xml:lang="ko">빨간색</title>
<title xml:lang="jp"></title>
<title xml:lang="zh-CN">红色</title>
<title xml:lang="en">red</title>
<title xml:lang="vi">Red</title>
<title xml:lang="es">Roja</title>
<title xml:lang="ru">красный</title>
<title xml:lang="zh-TW">紅色</title>
</color>
<color name="purple" src="screenshot/purple.gif">
<title xml:lang="ko">보라색</title>
<title xml:lang="jp"></title>
<title xml:lang="zh-CN">紫色</title>
<title xml:lang="en">purple</title>
<title xml:lang="vi">Purple</title>
<title xml:lang="es">Púrpura</title>
<title xml:lang="ru">Лиловый</title>
<title xml:lang="zh-TW">紫色</title>
</color>
<color name="black" src="screenshot/black.gif">
<title xml:lang="ko">검은색</title>
<title xml:lang="jp"></title>
<title xml:lang="en">Black</title>
<title xml:lang="vi">Black</title>
<title xml:lang="ru">Черного</title>
<title xml:lang="es">Negro</title>
<title xml:lang="zh-CN">黑色</title>
<title xml:lang="zh-TW">黑色</title>
</color>
</colorset>
</skin>
<?xml version="1.0" encoding="UTF-8"?>
<skin version="0.2">
<title xml:lang="ko">기본 스킨</title>
<title xml:lang="zh-CN">默认皮肤</title>
<title xml:lang="jp">基本スキン</title>
<title xml:lang="en">Default Skin</title>
<title xml:lang="vi">Skin Mặc định</title>
<title xml:lang="es">Por defecto piel</title>
<title xml:lang="ru">기본 스킨</title>
<title xml:lang="zh-TW">預設面板</title>
<description xml:lang="ko">
NHN (developers@xpressengine.com)
</description>
<description xml:lang="zh-CN">
NHN (developers@xpressengine.com)
</description>
<description xml:lang="jp">
NHN (developers@xpressengine.com)
</description>
<description xml:lang="en">
NHN (developers@xpressengine.com)
</description>
<description xml:lang="vi">
NHN (developers@xpressengine.com)
</description>
<description xml:lang="es">
NHN (developers@xpressengine.com)
</description>
<description xml:lang="ru">
NHN (developers@xpressengine.com)
</description>
<description xml:lang="zh-TW">
NHN (developers@xpressengine.com)
</description>
<version>0.1</version>
<date>2008-05-28</date>
<author email_address="developers@xpressengine.com" link="http://xpressengine.com/">
<name xml:lang="ko">NHN</name>
<name xml:lang="jp">NHN</name>
<name xml:lang="zh-CN">NHN</name>
<name xml:lang="en">NHN</name>
<name xml:lang="vi">NHN</name>
<name xml:lang="es">NHN</name>
<name xml:lang="ru">NHN</name>
<name xml:lang="zh-TW">NHN</name>
</author>
<colorset>
<color name="white" src="screenshot/white.gif">
<title xml:lang="ko">기본</title>
<title xml:lang="zh-CN">默认</title>
<title xml:lang="jp">デフォルト</title>
<title xml:lang="en">default</title>
<title xml:lang="vi">Mặc định</title>
<title xml:lang="es">Por defecto</title>
<title xml:lang="ru">умолчанию</title>
<title xml:lang="zh-TW">預設</title>
</color>
<color name="cyan" src="screenshot/cyan.gif">
<title xml:lang="ko">청록색</title>
<title xml:lang="jp">青緑</title>
<title xml:lang="zh-CN">青绿色</title>
<title xml:lang="en">cyan</title>
<title xml:lang="vi">Cyan</title>
<title xml:lang="es">Cian</title>
<title xml:lang="ru">бирюзовый</title>
<title xml:lang="zh-TW">青綠色</title>
</color>
<color name="green" src="screenshot/green.gif">
<title xml:lang="ko">초록색</title>
<title xml:lang="jp"></title>
<title xml:lang="zh-CN">绿色</title>
<title xml:lang="en">green</title>
<title xml:lang="vi">Green</title>
<title xml:lang="es">Verde</title>
<title xml:lang="ru">зеленый</title>
<title xml:lang="zh-TW">綠色</title>
</color>
<color name="red" src="screenshot/red.gif">
<title xml:lang="ko">빨간색</title>
<title xml:lang="jp"></title>
<title xml:lang="zh-CN">红色</title>
<title xml:lang="en">red</title>
<title xml:lang="vi">Red</title>
<title xml:lang="es">Roja</title>
<title xml:lang="ru">красный</title>
<title xml:lang="zh-TW">紅色</title>
</color>
<color name="purple" src="screenshot/purple.gif">
<title xml:lang="ko">보라색</title>
<title xml:lang="jp"></title>
<title xml:lang="zh-CN">紫色</title>
<title xml:lang="en">purple</title>
<title xml:lang="vi">Purple</title>
<title xml:lang="es">Púrpura</title>
<title xml:lang="ru">Лиловый</title>
<title xml:lang="zh-TW">紫色</title>
</color>
<color name="black" src="screenshot/black.gif">
<title xml:lang="ko">검은색</title>
<title xml:lang="jp"></title>
<title xml:lang="en">Black</title>
<title xml:lang="vi">Black</title>
<title xml:lang="ru">Черного</title>
<title xml:lang="es">Negro</title>
<title xml:lang="zh-CN">黑色</title>
<title xml:lang="zh-TW">黑色</title>
</color>
</colorset>
</skin>