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']}
+
- readed == 'Y'" class="unread"|cond="$val->readed != 'Y'">
@@ -14,4 +13,3 @@
{$page} / {$page_navigation->last_page}
{$lang->cmd_next}
-
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}
+
+
+
+