From 76b100e0761bb708fec06a75b320bf542b93b49d Mon Sep 17 00:00:00 2001 From: chschy Date: Tue, 20 Nov 2012 10:53:33 +0000 Subject: [PATCH] Issue 2617 added send message in communication module git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@12267 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- .../communication.controller.php | 23 +++-- .../communication/communication.mobile.php | 93 ++++++++++++++++++- modules/communication/conf/module.xml | 49 +++++----- modules/communication/lang/lang.xml | 14 ++- .../m.skins/default/css/mcommunication.css | 5 +- .../m.skins/default/js/communication.js | 22 +++++ .../m.skins/default/message_box.html | 11 +++ .../m.skins/default/messages.html | 4 +- .../m.skins/default/read_message.html | 11 ++- .../m.skins/default/send_message.html | 44 +++++++++ 10 files changed, 233 insertions(+), 43 deletions(-) create mode 100644 modules/communication/m.skins/default/js/communication.js create mode 100644 modules/communication/m.skins/default/message_box.html create mode 100644 modules/communication/m.skins/default/send_message.html diff --git a/modules/communication/communication.controller.php b/modules/communication/communication.controller.php index 896206cb5..68695adb0 100644 --- a/modules/communication/communication.controller.php +++ b/modules/communication/communication.controller.php @@ -88,13 +88,22 @@ class communicationController extends communication if(!in_array(Context::getRequestMethod(),array('XMLRPC','JSON'))) { - global $lang; - htmlHeader(); - alertScript($lang->success_sended); - closePopupScript(); - htmlFooter(); - Context::close(); - exit; + if(Context::get('is_popup') != 'Y') + { + global $lang; + htmlHeader(); + alertScript($lang->success_sended); + closePopupScript(); + htmlFooter(); + Context::close(); + exit; + } + else + { + $this->setMessage('success_sended'); + $returnUrl = Context::get('success_return_url') ? Context::get('success_return_url') : getNotEncodedUrl('act','dispCommunicationMessages','message_type','S','receiver_srl',$receiver_srl,'message_srl',''); + $this->setRedirectUrl($returnUrl); + } } return $output; } diff --git a/modules/communication/communication.mobile.php b/modules/communication/communication.mobile.php index e5a80d0bc..3085310f8 100644 --- a/modules/communication/communication.mobile.php +++ b/modules/communication/communication.mobile.php @@ -1,6 +1,11 @@ getSelectedMessage($message_srl, $columnList); - if($message->message_srl == $message_srl && ($message->receiver_srl == $logged_info->member_srl) ) + switch($message->message_type) + { + case 'R': + if($message->receiver_srl != $logged_info->member_srl) + { + return $this->stop('msg_invalid_request'); + } + break; + case 'S': + if($message->sender_srl != $logged_info->member_srl) + { + return $this->stop('msg_invalid_request'); + } + break; + case 'T': + if($message->receiver_srl != $logged_info->member_srl && $message->sender_srl != $logged_info->member_srl) + { + return $this->stop('msg_invalid_request'); + } + break; + } + 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); @@ -76,6 +109,58 @@ class communicationMobile extends communicationView $this->setTemplateFile($templateFile); } + + /** + * Display list of message box + * @return void + */ + function dispCommunicationMessageBoxList() + { + $this->setTemplateFile('message_box'); + } + + /** + * Display message sending + * @return void|Object (void : success, Object : fail) + */ + function dispCommunicationSendMessage() + { + $oCommunicationModel = &getModel('communication'); + $oMemberModel = &getModel('member'); + // Error appears if not logged-in + if(!Context::get('is_logged')) return $this->stop('msg_not_logged'); + $logged_info = Context::get('logged_info'); + // get receipient's information + + // check inalid request + $receiver_srl = Context::get('receiver_srl'); + if(!$receiver_srl) return $this->stop('msg_invalid_request'); + + // check receiver and sender are same + if($logged_info->member_srl == $receiver_srl) return $this->stop('msg_cannot_send_to_yourself'); + // get message_srl of the original message if it is a reply + $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
\r\n
".trim($source_message->content)."
"; + Context::set('source_message', $source_message); + } + } + + $receiver_info = $oMemberModel->getMemberInfoByMemberSrl($receiver_srl); + if(!$receiver_info) + { + return $this->stop('msg_invalid_request'); + } + + Context::set('receiver_info', $receiver_info); + $this->setTemplateFile('send_message'); + } + } /* End of file communication.mobile.php */ /* Location: ./modules/comment/communication.mobile.php */ diff --git a/modules/communication/conf/module.xml b/modules/communication/conf/module.xml index 7385c3774..a3dc6d0f8 100644 --- a/modules/communication/conf/module.xml +++ b/modules/communication/conf/module.xml @@ -1,32 +1,33 @@ - - - - - - + + + + + + - - - + + + + - - - - - + + + + + - - - + + + - - - + + + - - - - + + + + diff --git a/modules/communication/lang/lang.xml b/modules/communication/lang/lang.xml index 5a3b66338..2915cd377 100644 --- a/modules/communication/lang/lang.xml +++ b/modules/communication/lang/lang.xml @@ -11,7 +11,7 @@ - + 이 기능을 사용하려면 [설치된 애드온] > [커뮤니케이션] 애드온을 활성화 하세요.]]> @@ -217,6 +217,18 @@ + + + + + + + + + + + + diff --git a/modules/communication/m.skins/default/css/mcommunication.css b/modules/communication/m.skins/default/css/mcommunication.css index e236dcad9..437704350 100644 --- a/modules/communication/m.skins/default/css/mcommunication.css +++ b/modules/communication/m.skins/default/css/mcommunication.css @@ -33,7 +33,7 @@ input[type=radio]{width:13px;height:13px;margin:0;padding:0} .hx a{color:#000} .hx .ex{font-size:12px} .hx .tg{position:absolute;top:0;left:0;width:100%;height:100%;margin:0;padding:0;overflow:visible;border:0;cursor:pointer;opacity:0;background:none} -.hx .ca{font-size:12px;text-decoration:underline;color:#333} +.hx .ca{font-size:12px;text-decoration:underline;color:#333;margin-left:10px} .hx .ca:after{content:"";display:inline-block;position:relative;left:4px;width:0;height:0;border:4px solid;border-color:transparent;border-left-color:#8d7de1;margin:0 -8px 0 0} .hx .write{position:absolute;top:8px;right:10px;background-position:0 0;display:inline-block;width:28px;height:27px;font-size:0;overflow:hidden;text-indent:-28px} /* Global Navigation */ @@ -104,6 +104,7 @@ input[type=radio]{width:13px;height:13px;margin:0;padding:0} .ff label+input[type=text], .ff label+input[type=password], .ff label+textarea{padding:5px} +.ff .memberInfo{padding:5px 5px 5px 28px;background:url(../img/member.png) no-repeat 0px center;} /* Button Area */ .bna{text-align:center;padding:0 10px;margin:10px 0;zoom:1} .bna:after{content:"";display:block;clear:both} @@ -112,7 +113,7 @@ input[type=radio]{width:13px;height:13px;margin:0;padding:0} .bn[type=button]{height:28px} .bn[href]{height:26px} .bn.dark{border-color:#666;background:#777 -webkit-gradient(linear,0% 0%,0% 100%,from(#7e7c78),to(#5c5b58));background:#777 -moz-linear-gradient(top,#7e7c78,#5c5b58);background-color:#777;color:#fff;box-shadow:0 0 1px #fff inset;-moz-box-shadow:0 0 1px #fff inset;-webkit-box-shadow:0 0 1px #fff inset} -.bn.white{border-color:#b5b5b5;background:#1b1b1b -webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#f6f6f6),color-stop(0.5,#f0f0f0),color-stop(0.5,#e4e4e4));background:#1b1b1b -moz-linear-gradient(top,#fff,#e4e4e4);background-color:#fff;color:#000} +.bn.white{border-color:#b5b5b5;background:#1b1b1b -webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#f6f6f6),color-stop(0.5,#f0f0f0),color-stop(0.5,#e4e4e4));background:#1b1b1b -moz-linear-gradient(top,#fff,#e4e4e4);background-color:#fff;color:#000;margin-right:2px} /* Pagination */ .pn{font-size:12px;text-align:center;background:#f2f0ec;padding:15px 0;border-top:1px solid #fff} .pn a{color:#333;text-decoration:none} diff --git a/modules/communication/m.skins/default/js/communication.js b/modules/communication/m.skins/default/js/communication.js new file mode 100644 index 000000000..e37272d41 --- /dev/null +++ b/modules/communication/m.skins/default/js/communication.js @@ -0,0 +1,22 @@ +/* 개별 쪽지 삭제 */ +function doDeleteMessage(message_srl) { + if(!message_srl) return; + if(!confirm(confirm_delete_msg)) return; + + var params = new Array(); + params['message_srl'] = message_srl; + exec_xml('communication', 'procCommunicationDeleteMessage', params, completeDeleteMessage); +} + +function completeDeleteMessage(ret_obj) { + alert(ret_obj['message']); + location.href = current_url.setQuery('message_srl',''); +} + +function mergeContents() +{ + var $form = jQuery('#fo_comm'); + var content = $form.find('textarea[name=new_content]').val() + $form.find('input[name=source_content]').val(); + $form.find('input[name=content]').val(content); + $form.submit(); +} diff --git a/modules/communication/m.skins/default/message_box.html b/modules/communication/m.skins/default/message_box.html new file mode 100644 index 000000000..e3cc0c69a --- /dev/null +++ b/modules/communication/m.skins/default/message_box.html @@ -0,0 +1,11 @@ + +
+
+

{$lang->cmd_message_box}

+
+ +
diff --git a/modules/communication/m.skins/default/messages.html b/modules/communication/m.skins/default/messages.html index 485a3105f..03461a365 100644 --- a/modules/communication/m.skins/default/messages.html +++ b/modules/communication/m.skins/default/messages.html @@ -1,7 +1,6 @@ -
-

{$lang->message_box['R']}

+

{$lang->message_box[$message_type]}{$lang->cmd_message_box}

- diff --git a/modules/communication/m.skins/default/read_message.html b/modules/communication/m.skins/default/read_message.html index 26f5a2bd4..796d7af1f 100644 --- a/modules/communication/m.skins/default/read_message.html +++ b/modules/communication/m.skins/default/read_message.html @@ -1,12 +1,19 @@ +{@ Context::addJsFile("./common/js/jquery.js", true, '', -100000) } +{@ Context::addJsFile("./common/js/xe.min.js", true, '', -100000) } - +

{$message->title}

{$message->nick_name} | {zdate($message->regdate, "Y.m.d H:i")}
-
{$message->content}
+
{$message->content}
+ diff --git a/modules/communication/m.skins/default/send_message.html b/modules/communication/m.skins/default/send_message.html new file mode 100644 index 000000000..e07e7590f --- /dev/null +++ b/modules/communication/m.skins/default/send_message.html @@ -0,0 +1,44 @@ +{@ Context::addJsFile("./common/js/jquery.min.js", true, '', -100000) } +{@ Context::addJsFile("./common/js/xe.min.js", true, '', -100000) } + + + +
+

{$lang->cmd_send_message}

+
+
+

{$XE_VALIDATOR_MESSAGE}

+
+
+ + + + + + +
    +
  • + {$receiver_info->nick_name} +
  • +
  • + + +
  • +
  • + {$source_message->content} +
  • +
  • + + +
  • +
  • + {$lang->cmd_send_mail} +
  • +
+
+ {$lang->cmd_back} + +
+
+ +