mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-04-24 21:03:19 +09:00
회원의 서명과 프로필 이미지를 출력하는 것을 document.item/ comment.item 각각에 getProfileImage(), getSignature() method를 빼서 각 스킨에서 알아서 적용할 수 있도록 자유도 올림. member_extra_info 애드온에서 서명 부분은 제거
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@3585 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
610df5a83f
commit
b0639e383d
12 changed files with 138 additions and 86 deletions
|
|
@ -9,9 +9,6 @@
|
|||
* 1. 출력되기 직전 <div class="member_회원번호">....</div> 로 정의가 된 부분을 찾아 회원번호를 구해서
|
||||
* 이미지이름, 이미지마크가 있는지를 확인하여 있으면 내용을 변경해버립니다.
|
||||
*
|
||||
* 2. 출력되기 직전 <div class="document_회원번호">...</div>로 정의된 곳을 찾아 글의 내용이라 판단,
|
||||
* 하단에 서명을 추가합니다.
|
||||
*
|
||||
* 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. 출력문서중에서 <div class="member_번호">content</div>를 찾아 MemberController::transImageName() 를 이용하여 이미지이름/마크로 변경
|
||||
$output = preg_replace_callback('!<(div|span)([^\>]*)member_([0-9]+)([^\>]*)>(.*?)\<\/(div|span)\>!is', 'memberTransImageName', $output);
|
||||
|
||||
// 2. 출력문서중에 <!--AfterDocument(문서번호,회원번호)--> 를 찾아서 member_controller::transSignature()를 이용해서 서명을 추가
|
||||
$output = preg_replace_callback('/<!--AfterDocument\(([0-9]+),([0-9]+)\)-->/i', "memberTransSignature", $output);
|
||||
|
||||
/**
|
||||
* 3 기능 수행 : 시작할때 새쪽지가 왔는지 검사
|
||||
|
|
|
|||
|
|
@ -37,49 +37,4 @@
|
|||
|
||||
return sprintf('<span class="nowrap member_%d" style="cursor:pointer">%s</span>',$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('<img src="%s" alt="" class="member_profile_image" />%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('<div class="member_signature" style="max-height: %spx; overflow: auto; height: expression(this.scrollHeight > %s? \'%spx\': \'auto\');">%s<div class="clear"></div></div>', $memberModuleConfig->signature_max_height, $memberModuleConfig->signature_max_height, $memberModuleConfig->signature_max_height, $signature);
|
||||
} else {
|
||||
return sprintf('<div class="member_signature">%s<div class="clear"></div></div>', $signature);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -53,6 +53,9 @@
|
|||
</div>
|
||||
</form>
|
||||
<!--@else-->
|
||||
<!--@if($comment->getProfileImage())-->
|
||||
<img src="{$comment->getProfileImage()}" align="left" class="commentProfileImage"/>
|
||||
<!--@end-->
|
||||
{$comment->getContent(true)}
|
||||
<!--@end-->
|
||||
</td>
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -79,6 +79,19 @@
|
|||
<!--@else-->
|
||||
{$oDocument->getContent()}
|
||||
<!--@end-->
|
||||
|
||||
<!-- 서명 / 프로필 이미지 출력 -->
|
||||
<!--@if($oDocument->getProfileImage() || $oDocument->getSignature())-->
|
||||
<div class="memberSignature">
|
||||
<!--@if($oDocument->getProfileImage())-->
|
||||
<div class="profile"><img src="{$oDocument->getProfileImage()}" alt="profile" /></div>
|
||||
<!--@end-->
|
||||
<!--@if($oDocument->getSignature())-->
|
||||
<div class="signature">{$oDocument->getSignature()}</div>
|
||||
<!--@end-->
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<!--@end-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -63,8 +63,12 @@
|
|||
</form>
|
||||
</div>
|
||||
<!--@else-->
|
||||
<!--@if($comment->getProfileImage())-->
|
||||
<img src="{$comment->getProfileImage()}" align="left" class="commentProfileImage"/>
|
||||
<!--@end-->
|
||||
{$comment->getContent(true)}
|
||||
<!--@end-->
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
|
||||
<!--@if($comment->hasUploadedFIles())-->
|
||||
|
|
|
|||
|
|
@ -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; }
|
||||
|
|
|
|||
|
|
@ -105,6 +105,19 @@
|
|||
<!--@if($grant->is_admin)-->
|
||||
<div class="ipaddress">ipaddress : {$oDocument->get('ipaddress')}</div>
|
||||
<!--@end-->
|
||||
|
||||
<!-- 서명 / 프로필 이미지 출력 -->
|
||||
<!--@if($oDocument->getProfileImage() || $oDocument->getSignature())-->
|
||||
<div class="memberSignature">
|
||||
<!--@if($oDocument->getProfileImage())-->
|
||||
<div class="profile"><img src="{$oDocument->getProfileImage()}" alt="profile" /></div>
|
||||
<!--@end-->
|
||||
<!--@if($oDocument->getSignature())-->
|
||||
<div class="signature">{$oDocument->getSignature()}</div>
|
||||
<!--@end-->
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
<!--@end-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -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];
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue