From 94227a556d26b7165d8b0de5197a8212f92f2230 Mon Sep 17 00:00:00 2001 From: zero Date: Wed, 25 Jul 2007 10:44:22 +0000 Subject: [PATCH] =?UTF-8?q?=EA=B8=80=EC=9E=91=EC=84=B1=EC=8B=9C=EC=97=90?= =?UTF-8?q?=20=EC=95=8C=EB=A6=BC=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?.=20=EC=95=8C=EB=A6=BC=20=EC=B2=B4=ED=81=AC=EC=8B=9C=20?= =?UTF-8?q?=EB=8C=93=EA=B8=80/=EC=97=AE=EC=9D=B8=EA=B8=80=EC=9D=B4=20?= =?UTF-8?q?=EC=B2=A8=EB=B6=80=EB=90=98=EB=A9=B4=20=EC=AA=BD=EC=A7=80?= =?UTF-8?q?=EB=A1=9C=20=EB=B0=9C=EC=86=A1=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/trunk@2015 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- common/lang/en.lang.php | 1 + common/lang/es.lang.php | 1 + common/lang/jp.lang.php | 1 + common/lang/ko.lang.php | 1 + common/lang/zh-CN.lang.php | 1 + modules/blog/tpl/blog_info.html | 2 +- modules/board/skins/default/write_form.html | 5 +++ .../board/skins/xe_gallery/write_form.html | 6 +++ modules/board/skins/xe_list/write_form.html | 6 +++ .../board/skins/xe_webzine/write_form.html | 6 +++ modules/comment/comment.controller.php | 9 ++-- modules/document/document.class.php | 15 ++++++- modules/document/document.controller.php | 2 + modules/document/document.item.php | 26 ++++++++++++ modules/document/queries/insertDocument.xml | 1 + modules/document/queries/updateDocument.xml | 1 + modules/document/schemas/documents.xml | 1 + modules/member/member.controller.php | 42 ++++++++++++------- modules/member/skins/default/css/normal.css | 2 +- .../member/skins/default/member_messages.html | 19 +++++++-- .../skins/default/member_new_message.html | 6 ++- modules/trackback/trackback.controller.php | 4 ++ 22 files changed, 134 insertions(+), 24 deletions(-) diff --git a/common/lang/en.lang.php b/common/lang/en.lang.php index 1094e8c74..1b4b551de 100644 --- a/common/lang/en.lang.php +++ b/common/lang/en.lang.php @@ -93,6 +93,7 @@ $lang->path = 'Path'; $lang->cart = 'Selected Item'; $lang->friend = 'Friends'; + $lang->notify = 'Notify'; $lang->mid = 'Module Name'; $lang->layout = 'Layout'; diff --git a/common/lang/es.lang.php b/common/lang/es.lang.php index 86ba80d3a..c86e7a001 100644 --- a/common/lang/es.lang.php +++ b/common/lang/es.lang.php @@ -93,6 +93,7 @@ $lang->path = 'Paso'; $lang->cart = 'Artículo Selecciónado'; $lang->friend = 'Amigos'; + $lang->notify = 'Notify'; $lang->mid = 'Module Name'; $lang->layout = 'Layout'; diff --git a/common/lang/jp.lang.php b/common/lang/jp.lang.php index 55f5c9ef3..67e219eda 100644 --- a/common/lang/jp.lang.php +++ b/common/lang/jp.lang.php @@ -93,6 +93,7 @@ $lang->path = 'パス'; $lang->cart = '選択項目'; $lang->friend = '友達'; + $lang->notify = 'Notify'; $lang->mid = 'モジュール名'; $lang->layout = 'レイアウト'; diff --git a/common/lang/ko.lang.php b/common/lang/ko.lang.php index 9fdf90205..cf4ec59cc 100644 --- a/common/lang/ko.lang.php +++ b/common/lang/ko.lang.php @@ -93,6 +93,7 @@ $lang->path = '경로'; $lang->cart = '선택항목'; $lang->friend = '친구'; + $lang->notify = '알림'; $lang->mid = '모듈이름'; $lang->layout = '레이아웃'; diff --git a/common/lang/zh-CN.lang.php b/common/lang/zh-CN.lang.php index ef01c2f6b..755fef670 100644 --- a/common/lang/zh-CN.lang.php +++ b/common/lang/zh-CN.lang.php @@ -93,6 +93,7 @@ $lang->path = '路径'; $lang->cart = '选择项目'; $lang->friend = '好友'; + $lang->notify = 'Notify'; $lang->mid = '模块名称'; $lang->layout = '布局'; diff --git a/modules/blog/tpl/blog_info.html b/modules/blog/tpl/blog_info.html index 598db1048..f5938d492 100644 --- a/modules/blog/tpl/blog_info.html +++ b/modules/blog/tpl/blog_info.html @@ -47,7 +47,7 @@ {$lang->admin_id} - {implode(",",$module_info->admin_id)} + {implode(",",$module_info->admin_id)} diff --git a/modules/board/skins/default/write_form.html b/modules/board/skins/default/write_form.html index 90eea3495..526ed01ad 100644 --- a/modules/board/skins/default/write_form.html +++ b/modules/board/skins/default/write_form.html @@ -64,6 +64,11 @@ allowTrackback())-->checked="checked" id="allow_trackback" /> + + + useNotify())-->checked="checked" id="notify_message" /> + + diff --git a/modules/board/skins/xe_gallery/write_form.html b/modules/board/skins/xe_gallery/write_form.html index 9a60b750c..7138f7727 100644 --- a/modules/board/skins/xe_gallery/write_form.html +++ b/modules/board/skins/xe_gallery/write_form.html @@ -63,6 +63,12 @@ allowTrackback())-->checked="checked" id="allow_trackback" /> + +
+ useNotify())-->checked="checked" id="notify_message" /> + +
+
{$editor}
diff --git a/modules/board/skins/xe_list/write_form.html b/modules/board/skins/xe_list/write_form.html index 9a60b750c..7138f7727 100644 --- a/modules/board/skins/xe_list/write_form.html +++ b/modules/board/skins/xe_list/write_form.html @@ -63,6 +63,12 @@ allowTrackback())-->checked="checked" id="allow_trackback" /> + +
+ useNotify())-->checked="checked" id="notify_message" /> + +
+
{$editor}
diff --git a/modules/board/skins/xe_webzine/write_form.html b/modules/board/skins/xe_webzine/write_form.html index 9a60b750c..7138f7727 100644 --- a/modules/board/skins/xe_webzine/write_form.html +++ b/modules/board/skins/xe_webzine/write_form.html @@ -63,6 +63,12 @@ allowTrackback())-->checked="checked" id="allow_trackback" /> + +
+ useNotify())-->checked="checked" id="notify_message" /> + +
+
{$editor}
diff --git a/modules/comment/comment.controller.php b/modules/comment/comment.controller.php index 7fb595712..b50d6e7c1 100644 --- a/modules/comment/comment.controller.php +++ b/modules/comment/comment.controller.php @@ -35,10 +35,10 @@ // 원본글을 가져옴 if(!$manual_inserted) { - $document = $oDocumentModel->getDocument($document_srl); + $oDocument = $oDocumentModel->getDocument($document_srl); - if($document_srl != $document->document_srl) return new Object(-1,'msg_invalid_document'); - if($document->lock_comment=='Y') return new Object(-1,'msg_invalid_request'); + if($document_srl != $oDocument->document_srl) return new Object(-1,'msg_invalid_document'); + if($oDocument->isLocked()) return new Object(-1,'msg_invalid_request'); if($obj->password) $obj->password = md5($obj->password); if($obj->homepage && !eregi('^http:\/\/',$obj->homepage)) $obj->homepage = 'http://'.$obj->homepage; @@ -95,6 +95,9 @@ // commit $oDB->commit(); + // 원본글에 알림(notify_message)가 설정되어 있으면 메세지 보냄 + if(!$manual_inserted) $oDocument->notify(Context::getLang('comment'), $obj->content); + $output->add('comment_srl', $obj->comment_srl); return $output; } diff --git a/modules/document/document.class.php b/modules/document/document.class.php index 40f99b4cd..eaec4297d 100644 --- a/modules/document/document.class.php +++ b/modules/document/document.class.php @@ -38,6 +38,11 @@ **/ if(!$oDB->isColumnExists("documents","extra_vars20")) return true; + /** + * 2007. 7. 25 : 알림 필드(notify_message) 추가 + **/ + if(!$oDB->isColumnExists("documents","notify_message")) return true; + return false; } @@ -45,10 +50,11 @@ * @brief 업데이트 실행 **/ function moduleUpdate() { + $oDB = &DB::getInstance(); + /** * 2007. 7. 23 : 확장변수(extra_vars1~20까지 추가) **/ - $oDB = &DB::getInstance(); if(!$oDB->isColumnExists("documents","extra_vars20")) { for($i=1;$i<=20;$i++) { $column_name = "extra_vars".$i; @@ -56,6 +62,13 @@ } } + /** + * 2007. 7. 25 : 알림 필드(notify_message) 추가 + **/ + if(!$oDB->isColumnExists("documents","notify_message")) { + $oDB->addColumn('documents',"notify_message","char",1); + } + return new Object(0,'success_updated'); } diff --git a/modules/document/document.controller.php b/modules/document/document.controller.php index 6b788be54..ab7feeecf 100644 --- a/modules/document/document.controller.php +++ b/modules/document/document.controller.php @@ -36,6 +36,7 @@ if($obj->lock_comment!='Y') $obj->lock_comment = 'N'; if($obj->allow_trackback!='Y') $obj->allow_trackback = 'N'; if($obj->homepage && !eregi('^http:\/\/',$obj->homepage)) $obj->homepage = 'http://'.$obj->homepage; + if($obj->notify_message != "Y") $obj->notify_message = "N"; // 자동저장용 필드 제거 unset($obj->_saved_doc_srl); @@ -127,6 +128,7 @@ if($obj->lock_comment!='Y') $obj->lock_comment = 'N'; if($obj->allow_trackback!='Y') $obj->allow_trackback = 'N'; if($obj->homepage && !eregi('^http:\/\/',$obj->homepage)) $obj->homepage = 'http://'.$obj->homepage; + if($obj->notify_message != "Y") $obj->notify_message = "N"; // 자동저장용 필드 제거 unset($obj->_saved_doc_srl); diff --git a/modules/document/document.item.php b/modules/document/document.item.php index 59e43a1d1..9213ed207 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -95,6 +95,32 @@ function isNotice() { return $this->get('is_notice') == 'Y' ? true : false; } + + function useNotify() { + return $this->get('notify_message')=='Y' ? true : false; + } + + function notify($type, $content) { + // useNotify가 아니면 return + if(!$this->useNotify()) return; + + // 글쓴이가 로그인 유저가 아니면 패스~ + if(!$this->get('member_srl')) return; + + // 현재 로그인한 사용자와 글을 쓴 사용자를 비교하여 동일하면 return + $logged_info = Context::get('logged_info'); + if($logged_info->member_srl == $this->get('member_srl')) return; + + // 변수 정리 + $title = sprintf("[%s] %s", $type, cut_str(strip_tags($content), 10, '...') ); + $content = sprintf('%s

from : %s',$content, $this->getPermanentUrl(), $this->getPermanentUrl()); + $receiver_srl = $this->get('member_srl'); + $sender_member_srl = $logged_info->member_srl; + + // 쪽지 발송 + $oMemberController = &getController('member'); + $oMemberController->sendMessage($sender_member_srl, $receiver_srl, $title, $content, false); + } function getUserID() { return htmlspecialchars($this->get('user_id')); diff --git a/modules/document/queries/insertDocument.xml b/modules/document/queries/insertDocument.xml index e6a3039de..21b09a6c4 100644 --- a/modules/document/queries/insertDocument.xml +++ b/modules/document/queries/insertDocument.xml @@ -31,6 +31,7 @@ + diff --git a/modules/document/queries/updateDocument.xml b/modules/document/queries/updateDocument.xml index e80f98ab3..7f6e8a46c 100644 --- a/modules/document/queries/updateDocument.xml +++ b/modules/document/queries/updateDocument.xml @@ -24,6 +24,7 @@ + diff --git a/modules/document/schemas/documents.xml b/modules/document/schemas/documents.xml index 1a3a8d5d5..ec6eaf273 100644 --- a/modules/document/schemas/documents.xml +++ b/modules/document/schemas/documents.xml @@ -31,6 +31,7 @@ + diff --git a/modules/member/member.controller.php b/modules/member/member.controller.php index 652e78107..19f60f80a 100644 --- a/modules/member/member.controller.php +++ b/modules/member/member.controller.php @@ -139,8 +139,10 @@ // 변수 검사 $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'); @@ -156,37 +158,49 @@ return new object(-1, 'msg_disallow_message'); } - $oDB = &DB::getInstance(); - $oDB->begin(); + // 쪽지 발송 + return $this->sendMessage($logged_info->member_srl, $receiver_srl, $title, $content); + } - // 발송하는 회원의 쪽지함에 넣을 쪽지 - $sender_args->message_srl = getNextSequence(); - $sender_args->related_srl = getNextSequence(); - $sender_args->list_order = getNextSequence()*-1; - $sender_args->sender_srl = $logged_info->member_srl; + function sendMessage($sender_srl, $receiver_srl, $title, $content, $sender_log = true) { + // 보내는 사용자의 쪽지함에 넣을 쪽지 + $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"); - $output = executeQuery('member.sendMessage', $sender_args); - if(!$output->toBool()) { - $oDB->rollback(); - return $output; - } + $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 = $logged_info->member_srl; + $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('member.sendMessage', $sender_args); + if(!$output->toBool()) { + $oDB->rollback(); + return $output; + } + } + + // 받을 회원의 쪽지함에 넣을 쪽지 $output = executeQuery('member.sendMessage', $receiver_args); if(!$output->toBool()) { $oDB->rollback(); @@ -201,7 +215,7 @@ $oDB->commit(); - $this->setMessage('success_sended'); + return new Object(0,'success_sended'); } /** diff --git a/modules/member/skins/default/css/normal.css b/modules/member/skins/default/css/normal.css index 2808507d7..50cc7991f 100644 --- a/modules/member/skins/default/css/normal.css +++ b/modules/member/skins/default/css/normal.css @@ -37,7 +37,7 @@ .list td.registDate { font:.8em Tahoma; color:#999999; text-align:center;} .list td.num { font:.8em Tahoma; color:#999999; text-align:center;} .list td.check { text-align:center;} -.list td.user { color:#333333; font-size:.9em;} +.list td.user { color:#333333; font-size:.9em; text-align:left;} .list td.user a { color:#333333;} .list td.userId { font:.9em Tahoma;} .list td.userNick { font-size:.9em; color:#999999;} diff --git a/modules/member/skins/default/member_messages.html b/modules/member/skins/default/member_messages.html index 822500ded..b3576371e 100644 --- a/modules/member/skins/default/member_messages.html +++ b/modules/member/skins/default/member_messages.html @@ -11,14 +11,21 @@

{$message->title}

- {$message->nick_name} ({$message->user_id}) {zdate($message->regdate, "Y.m.d H:i:s")} + + +   + + {$message->nick_name} ({$message->user_id}) + + {zdate($message->regdate, "Y.m.d H:i:s")} +
{$message->content}
- + {$lang->cmd_reply} @@ -70,7 +77,13 @@ -
{$val->nick_name} ({$val->user_id})
+ + +   + +
{$val->nick_name} ({$val->user_id})
+ + {$val->title} diff --git a/modules/member/skins/default/member_new_message.html b/modules/member/skins/default/member_new_message.html index 6e45cdeaa..3873ff509 100644 --- a/modules/member/skins/default/member_new_message.html +++ b/modules/member/skins/default/member_new_message.html @@ -12,10 +12,12 @@ + + @@ -27,7 +29,9 @@
- {$lang->cmd_reply_message} + + {$lang->cmd_reply_message} + {$lang->cmd_delete} {$lang->cmd_store} {$lang->cmd_next} diff --git a/modules/trackback/trackback.controller.php b/modules/trackback/trackback.controller.php index 73eed28d6..0e479f785 100644 --- a/modules/trackback/trackback.controller.php +++ b/modules/trackback/trackback.controller.php @@ -70,6 +70,10 @@ if(!$output->toBool()) return $output; } + // 원본글에 알림(notify_message)가 설정되어 있으면 메세지 보냄 + if(!$manual_inserted) $oDocument->notify(Context::getLang('trackback'), $obj->excerpt); + + return new Object(); }
{$lang->sender}
{$message->nick_name} ({$message->user_id})
{$lang->title} {htmlspecialchars($message->title)}