회원의 서명과 프로필 이미지를 출력하는 것을 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:
zero 2008-01-24 05:06:07 +00:00
parent 610df5a83f
commit b0639e383d
12 changed files with 138 additions and 86 deletions

View file

@ -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 기능 수행 : 시작할때 새쪽지가 왔는지 검사

View file

@ -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);
}
}
?>