From b0639e383d3c6fdd5fbcf63e3a76128c5483db43 Mon Sep 17 00:00:00 2001 From: zero Date: Thu, 24 Jan 2008 05:06:07 +0000 Subject: [PATCH] =?UTF-8?q?=ED=9A=8C=EC=9B=90=EC=9D=98=20=EC=84=9C?= =?UTF-8?q?=EB=AA=85=EA=B3=BC=20=ED=94=84=EB=A1=9C=ED=95=84=20=EC=9D=B4?= =?UTF-8?q?=EB=AF=B8=EC=A7=80=EB=A5=BC=20=EC=B6=9C=EB=A0=A5=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EA=B2=83=EC=9D=84=20document.item/=20comment.item?= =?UTF-8?q?=20=EA=B0=81=EA=B0=81=EC=97=90=20getProfileImage(),=20getSignat?= =?UTF-8?q?ure()=20method=EB=A5=BC=20=EB=B9=BC=EC=84=9C=20=EA=B0=81=20?= =?UTF-8?q?=EC=8A=A4=ED=82=A8=EC=97=90=EC=84=9C=20=EC=95=8C=EC=95=84?= =?UTF-8?q?=EC=84=9C=20=EC=A0=81=EC=9A=A9=ED=95=A0=20=EC=88=98=20=EC=9E=88?= =?UTF-8?q?=EB=8F=84=EB=A1=9D=20=EC=9E=90=EC=9C=A0=EB=8F=84=20=EC=98=AC?= =?UTF-8?q?=EB=A6=BC.=20member=5Fextra=5Finfo=20=EC=95=A0=EB=93=9C?= =?UTF-8?q?=EC=98=A8=EC=97=90=EC=84=9C=20=EC=84=9C=EB=AA=85=20=EB=B6=80?= =?UTF-8?q?=EB=B6=84=EC=9D=80=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@3585 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- .../member_extra_info.addon.php | 7 +- .../member_extra_info.lib.php | 45 ---------- common/css/default.css | 2 - modules/board/skins/cozy_board/comment.html | 3 + modules/board/skins/cozy_board/css/common.css | 6 ++ .../board/skins/cozy_board/view_document.html | 13 +++ modules/board/skins/xe_board/comment.html | 4 + modules/board/skins/xe_board/css/common.css | 6 ++ .../board/skins/xe_board/view_document.html | 13 +++ modules/comment/comment.item.php | 21 +++++ modules/document/document.item.php | 22 +++++ modules/member/member.model.php | 82 +++++++++++-------- 12 files changed, 138 insertions(+), 86 deletions(-) diff --git a/addons/member_extra_info/member_extra_info.addon.php b/addons/member_extra_info/member_extra_info.addon.php index 8cb3df8a5..815c44ae1 100644 --- a/addons/member_extra_info/member_extra_info.addon.php +++ b/addons/member_extra_info/member_extra_info.addon.php @@ -9,9 +9,6 @@ * 1. 출력되기 직전
....
로 정의가 된 부분을 찾아 회원번호를 구해서 * 이미지이름, 이미지마크가 있는지를 확인하여 있으면 내용을 변경해버립니다. * - * 2. 출력되기 직전
...
로 정의된 곳을 찾아 글의 내용이라 판단, - * 하단에 서명을 추가합니다. - * * 3. 새로운 쪽지가 왔을 경우 팝업으로 띄움 * * 4. MemberModel::getMemberMenu 호출시 대상이 회원일 경우 쪽지 보내기 기능 추가합니다. @@ -26,14 +23,12 @@ **/ if($called_position == "before_display_content") { - // 회원 이미지이름/ 마크/ 서명을 찾아서 대체할 함수를 담고 있는 파일을 include + // 회원 이미지이름/ 마크/ 찾아서 대체할 함수를 담고 있는 파일을 include require_once('./addons/member_extra_info/member_extra_info.lib.php'); // 1. 출력문서중에서
content
를 찾아 MemberController::transImageName() 를 이용하여 이미지이름/마크로 변경 $output = preg_replace_callback('!<(div|span)([^\>]*)member_([0-9]+)([^\>]*)>(.*?)\<\/(div|span)\>!is', 'memberTransImageName', $output); - // 2. 출력문서중에 를 찾아서 member_controller::transSignature()를 이용해서 서명을 추가 - $output = preg_replace_callback('//i', "memberTransSignature", $output); /** * 3 기능 수행 : 시작할때 새쪽지가 왔는지 검사 diff --git a/addons/member_extra_info/member_extra_info.lib.php b/addons/member_extra_info/member_extra_info.lib.php index b8b94d820..d0bbdc6d3 100644 --- a/addons/member_extra_info/member_extra_info.lib.php +++ b/addons/member_extra_info/member_extra_info.lib.php @@ -37,49 +37,4 @@ return sprintf('%s',$member_srl, $text); } - - /** - * @brief 게시글의 하단에 서명을 추가하는 코드 - **/ - function memberTransSignature($matches) { - $member_srl = $matches[2]; - if(!$member_srl) return $matches[0]; - - if(!$GLOBALS['_memberModuleConfig_']) { - $oModuleModel = &getModel('module'); - $GLOBALS['_memberModuleConfig_'] = $oModuleModel->getModuleConfig('member'); - } - $memberModuleConfig = $GLOBALS['_memberModuleConfig_']; - - // 전역변수에 미리 설정한 데이터가 있다면 그걸 return - if(!$GLOBALS['_transSignatureList'][$member_srl]->cached) { - $GLOBALS['_transSignatureList'][$member_srl]->cached = true; - - // 서명을 구해옴 - $signature = null; - $signature_file = sprintf('files/member_extra_info/signature/%s%d.signature.php', getNumberingPath($member_srl), $member_srl); - if(file_exists($signature_file)) $signature = trim(substr(FileHandler::readFile($signature_file),40)); - - // 프로필 이미지를 구해옴 - $exts = array('gif','jpg','png'); - for($i=0;$i<3;$i++) { - $profile_file = sprintf('files/member_extra_info/profile_image/%s%d.%s', getNumberingPath($member_srl), $member_srl, $exts[$i]); - if(file_exists($profile_file)) { - $signature = sprintf('%s', $profile_file, $signature); - break; - } - } - - $GLOBALS['_transSignatureList'][$member_srl]->signature = $signature; - } else $signature = $GLOBALS['_transSignatureList'][$member_srl]->signature; - - if(!$signature) return $matches[0]; - - // 서명 높이 제한 값이 있으면 표시 높이 제한 - if($memberModuleConfig->signature_max_height) { - return sprintf('
%s
', $memberModuleConfig->signature_max_height, $memberModuleConfig->signature_max_height, $memberModuleConfig->signature_max_height, $signature); - } else { - return sprintf('
%s
', $signature); - } - } ?> diff --git a/common/css/default.css b/common/css/default.css index 6783b15f8..6465e2b00 100644 --- a/common/css/default.css +++ b/common/css/default.css @@ -87,8 +87,6 @@ a.bold { font-weight:bold; } .folder_area { display: none; } .zbxe_widget_output { background:url(../tpl/images/widget_text.gif) no-repeat center bottom; display:block;} -.member_signature { margin-top:10px; border:1px solid #DDDDDD; padding:10px; overflow:hidden;} -.member_profile_image { float:left; margin-right:10px; } /* xe content */ div.xe_content { line-height:140%; !important} diff --git a/modules/board/skins/cozy_board/comment.html b/modules/board/skins/cozy_board/comment.html index 4ff1eb9a1..242c77e21 100644 --- a/modules/board/skins/cozy_board/comment.html +++ b/modules/board/skins/cozy_board/comment.html @@ -53,6 +53,9 @@ + + + {$comment->getContent(true)} diff --git a/modules/board/skins/cozy_board/css/common.css b/modules/board/skins/cozy_board/css/common.css index a133bd1a3..5c9ae3476 100644 --- a/modules/board/skins/cozy_board/css/common.css +++ b/modules/board/skins/cozy_board/css/common.css @@ -586,3 +586,9 @@ Jeong, Chan Myeong 070601~070630 .searchNextButton { border:1px solid #979797; border-left:1px solid #B1B1B1; border-top:1px solid #B1B1B1; color:#4F4F4F; height:21px; font-size:8pt; padding-left:5px; padding-right:5px; _padding-top:3px;} *:first-child+html .searchNextButton { padding-top:3px; } + +/* 회원 서명 및 프로필 이미지 출력 */ +.memberSignature { border:1px solid #e0e1db; padding:10px; margin-top:20px;} +.memberSignature .profile { float:left; margin-right:20px; } +.memberSignature .signature { float:left; } +img.commentProfileImage { margin:5px 10px 5px 0; } diff --git a/modules/board/skins/cozy_board/view_document.html b/modules/board/skins/cozy_board/view_document.html index b0ce7e077..b045733e2 100644 --- a/modules/board/skins/cozy_board/view_document.html +++ b/modules/board/skins/cozy_board/view_document.html @@ -79,6 +79,19 @@ {$oDocument->getContent()} + + + +
+ +
profile
+ + +
{$oDocument->getSignature()}
+ +
+
+ diff --git a/modules/board/skins/xe_board/comment.html b/modules/board/skins/xe_board/comment.html index b8e61ad2c..141a1c869 100644 --- a/modules/board/skins/xe_board/comment.html +++ b/modules/board/skins/xe_board/comment.html @@ -63,8 +63,12 @@ + + + {$comment->getContent(true)} +
diff --git a/modules/board/skins/xe_board/css/common.css b/modules/board/skins/xe_board/css/common.css index 8065678bb..74688c69a 100644 --- a/modules/board/skins/xe_board/css/common.css +++ b/modules/board/skins/xe_board/css/common.css @@ -306,3 +306,9 @@ h5 { padding:2px; } .tags .tagTypeD a { font-weight:bold; margin:0; background-color:#EFEFEF;} .tags .tagTypeE a { font-weight:normal; margin:0;} + +/* 회원 서명 및 프로필 이미지 출력 */ +.memberSignature { border:1px solid #e0e1db; padding:10px; margin-top:20px;} +.memberSignature .profile { float:left; margin-right:20px; } +.memberSignature .signature { float:left; } +img.commentProfileImage { margin:5px 10px 5px 0; } diff --git a/modules/board/skins/xe_board/view_document.html b/modules/board/skins/xe_board/view_document.html index 1f8271834..ecf99441c 100644 --- a/modules/board/skins/xe_board/view_document.html +++ b/modules/board/skins/xe_board/view_document.html @@ -105,6 +105,19 @@
ipaddress : {$oDocument->get('ipaddress')}
+ + + +
+ +
profile
+ + +
{$oDocument->getSignature()}
+ +
+
+ diff --git a/modules/comment/comment.item.php b/modules/comment/comment.item.php index 3bd5be65f..d71612a78 100644 --- a/modules/comment/comment.item.php +++ b/modules/comment/comment.item.php @@ -260,5 +260,26 @@ return $oEditorModel->getModuleEditor('comment', $module_srl, $this->comment_srl, 'comment_srl', 'content'); } + /** + * @brief 작성자의 프로필 이미지를 return + **/ + function getProfileImage() { + if(!$this->isExists() || !$this->get('member_srl')) return; + $oMemberModel = &getModel('member'); + $profile_info = $oMemberModel->getProfileImage($this->get('member_srl')); + if(!$profile_info) return; + + return $profile_info->src; + } + + /** + * @brief 작성자의 서명을 return + **/ + function getSignature() { + if(!$this->isExists() || !$this->get('member_srl')) return; + $oMemberModel = &getModel('member'); + $signature = $oMemberModel->getSignature($this->get('member_srl')); + return $signature; + } } ?> diff --git a/modules/document/document.item.php b/modules/document/document.item.php index fe083c07f..45fac59de 100644 --- a/modules/document/document.item.php +++ b/modules/document/document.item.php @@ -579,5 +579,27 @@ $oEditorModel = &getModel('editor'); return $oEditorModel->getModuleEditor('comment', $this->get('module_srl'), $comment_srl, 'comment_srl', 'content'); } + + /** + * @brief 작성자의 프로필 이미지를 return + **/ + function getProfileImage() { + if(!$this->isExists() || !$this->get('member_srl')) return; + $oMemberModel = &getModel('member'); + $profile_info = $oMemberModel->getProfileImage($this->get('member_srl')); + if(!$profile_info) return; + + return $profile_info->src; + } + + /** + * @brief 작성자의 서명을 return + **/ + function getSignature() { + if(!$this->isExists() || !$this->get('member_srl')) return; + $oMemberModel = &getModel('member'); + $signature = $oMemberModel->getSignature($this->get('member_srl')); + return $signature; + } } ?> diff --git a/modules/member/member.model.php b/modules/member/member.model.php index 789edce43..0c1d99b87 100644 --- a/modules/member/member.model.php +++ b/modules/member/member.model.php @@ -406,59 +406,75 @@ * @brief 프로필 이미지의 정보를 구함 **/ function getProfileImage($member_srl) { - $exts = array('gif','jpg','png'); - for($i=0;$i<3;$i++) { - $image_name_file = sprintf('files/member_extra_info/profile_image/%s%d.%s', getNumberingPath($member_srl), $member_srl, $exts[$i]); - if(file_exists($image_name_file)) { - list($width, $height, $type, $attrs) = getimagesize($image_name_file); - $info->width = $width; - $info->height = $height; - $info->src = Context::getRequestUri().$image_name_file; - $info->file = './'.$image_name_file; - return $info; + if(!isset($GLOBALS['__member_info__']['profile_image'][$member_srl])) { + $GLOBALS['__member_info__']['profile_image'][$member_srl] = null; + $exts = array('gif','jpg','png'); + for($i=0;$i<3;$i++) { + $image_name_file = sprintf('files/member_extra_info/profile_image/%s%d.%s', getNumberingPath($member_srl), $member_srl, $exts[$i]); + if(file_exists($image_name_file)) { + list($width, $height, $type, $attrs) = getimagesize($image_name_file); + $info->width = $width; + $info->height = $height; + $info->src = Context::getRequestUri().$image_name_file; + $info->file = './'.$image_name_file; + $GLOBALS['__member_info__']['profile_image'][$member_srl] = $info; + break; + } } } - return; + + return $GLOBALS['__member_info__']['profile_image'][$member_srl]; } /** * @brief 이미지이름의 정보를 구함 **/ function getImageName($member_srl) { - $image_name_file = sprintf('files/member_extra_info/image_name/%s%d.gif', getNumberingPath($member_srl), $member_srl); - if(!file_exists($image_name_file)) return; - list($width, $height, $type, $attrs) = getimagesize($image_name_file); - $info->width = $width; - $info->height = $height; - $info->src = Context::getRequestUri().$image_name_file; - $info->file = './'.$image_name_file; - return $info; + if(!isset($GLOBALS['__member_info__']['image_name'][$member_srl])) { + $image_name_file = sprintf('files/member_extra_info/image_name/%s%d.gif', getNumberingPath($member_srl), $member_srl); + if(file_exists($image_name_file)) { + list($width, $height, $type, $attrs) = getimagesize($image_name_file); + $info->width = $width; + $info->height = $height; + $info->src = Context::getRequestUri().$image_name_file; + $info->file = './'.$image_name_file; + $GLOBALS['__member_info__']['image_name'][$member_srl] = $info; + } else $GLOBALS['__member_info__']['image_name'][$member_srl] = null; + } + return $GLOBALS['__member_info__']['image_name'][$member_srl]; } /** * @brief 이미지마크의 정보를 구함 **/ function getImageMark($member_srl) { - $image_mark_file = sprintf('files/member_extra_info/image_mark/%s%d.gif', getNumberingPath($member_srl), $member_srl); - if(!file_exists($image_mark_file)) return; - list($width, $height, $type, $attrs) = getimagesize($image_mark_file); - $info->width = $width; - $info->height = $height; - $info->src = Context::getRequestUri().$image_mark_file; - $info->file = './'.$image_mark_file; - return $info; + if(!isset($GLOBALS['__member_info__']['image_mark'][$member_srl])) { + $image_mark_file = sprintf('files/member_extra_info/image_mark/%s%d.gif', getNumberingPath($member_srl), $member_srl); + if(file_exists($image_mark_file)) { + list($width, $height, $type, $attrs) = getimagesize($image_mark_file); + $info->width = $width; + $info->height = $height; + $info->src = Context::getRequestUri().$image_mark_file; + $info->file = './'.$image_mark_file; + $GLOBALS['__member_info__']['image_mark'][$member_srl] = $info; + } else $GLOBALS['__member_info__']['image_mark'][$member_srl] = null; + } + return $GLOBALS['__member_info__']['image_mark'][$member_srl]; } /** * @brief 사용자의 signature를 구함 **/ function getSignature($member_srl) { - $filename = sprintf('files/member_extra_info/signature/%s%d.signature.php', getNumberingPath($member_srl), $member_srl); - if(!file_exists($filename)) return ''; - - $buff = FileHandler::readFile($filename); - $signature = trim(substr($buff, 40)); - return $signature; + if(!isset($GLOBALS['__member_info__']['signature'][$member_srl])) { + $filename = sprintf('files/member_extra_info/signature/%s%d.signature.php', getNumberingPath($member_srl), $member_srl); + if(file_exists($filename)) { + $buff = FileHandler::readFile($filename); + $signature = trim(substr($buff, 40)); + $GLOBALS['__member_info__']['signature'][$member_srl] = $signature; + } else $GLOBALS['__member_info__']['signature'][$member_srl] = null; + } + return $GLOBALS['__member_info__']['signature'][$member_srl]; } /**