mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-14 00:39:57 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/trunk@897 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
42e082b725
commit
058bb08ec4
7 changed files with 103 additions and 12 deletions
|
|
@ -1,11 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<addon version="0.1">
|
||||
<title xml:lang="ko">이미지 이름 애드온</title>
|
||||
<title xml:lang="ko">회원 추가 정보 노출</title>
|
||||
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<description xml:lang="ko">
|
||||
사용자의 이름을 이미지로 대체하거나 마크이미지를 나타내는 애드온입니다.
|
||||
회원 관리에서 이미지이름이나 마크이미지를 설정하여야 한다.
|
||||
사용자의 정보중 이미지이름, 이미지마크, 서명등을 화면에 출력해주는 애드온입니다.
|
||||
이런 정보들을 사용하지 않을 경우를 대비하여 별도의 애드온으로 빼어서 실행시간을 줄여줍니다.
|
||||
이미지이름, 이미지마크, 서명등을 노출하고 싶다면 이 애드온을 활성화 시키세요.
|
||||
</description>
|
||||
</author>
|
||||
</addon>
|
||||
|
|
|
|||
|
|
@ -8,9 +8,10 @@
|
|||
*
|
||||
* 이 addOn은 모든 처리가 끝나고 화면에 출력하기 바로 전에 요청이 되어서
|
||||
* 사용자의 이름으로 등록된 부분을 찾아서 정규표현식으로 변환을 합니다.
|
||||
* 사용자의 이름은 <div class="member_회원번호">....</div> 로 정의가 되어야 합니다.
|
||||
* 이렇게 정의된 부분의 회원번호를 구해서 이미지이름, 이미지마크가 있는지를 확인하여 있으면
|
||||
* 내용을 변경해버립니다.
|
||||
* 1. 사용자의 이름은 <div class="member_회원번호">....</div> 로 정의가 되어야 합니다.
|
||||
* 이렇게 정의된 부분의 회원번호를 구해서 이미지이름, 이미지마크가 있는지를 확인하여 있으면 내용을 변경해버립니다.
|
||||
*
|
||||
* 2. 사용자의 서명을 <div class="document_회원번호">...</div>로 정의된 곳이 글의 내용이라 판단, 하단에 서명을 추가합니다.
|
||||
*
|
||||
* 내용 변경은 MemberController::transImageName method를 이용해서 변경합니다.
|
||||
**/
|
||||
|
|
@ -18,7 +19,12 @@
|
|||
// 출력 되기 바로 직전이 아니라면 모두 무시
|
||||
if($called_position != "before_display_content") return;
|
||||
|
||||
// 출력문서중에서 <div class="member_번호">content</div>를 찾아 MemberController::transImageName() 를 이용하여 변경
|
||||
// 기본적인 기능이라 MemberController 에 변경 코드가 있음
|
||||
$oMemberController = &getController('member');
|
||||
|
||||
// 출력문서중에서 <div class="member_번호">content</div>를 찾아 MemberController::transImageName() 를 이용하여 이미지이름/마크로 변경
|
||||
$output = preg_replace_callback('!<div([^\>]*)member_([0-9]*)([^\>]*)>(.*?)\<\/div\>!is', array($oMemberController, 'transImageName'), $output);
|
||||
|
||||
// 출력문서중에 <div class="document_번호">내용</div> 를 찾아서 member_controller::transSignature()를 이용해서 서명을 추가
|
||||
$output = preg_replace_callback('!<div([^\>]*)document_([0-9]*)([^\>]*)>(.*?)\<\/div\>!is', array($oMemberController, 'transSignature'), $output);
|
||||
?>
|
||||
|
|
@ -73,6 +73,12 @@ h6 {
|
|||
font-weight:normal;
|
||||
}
|
||||
|
||||
.member_signature {
|
||||
margin-top:10px;
|
||||
border:1px solid #DDDDDD;
|
||||
padding:10px;
|
||||
}
|
||||
|
||||
#waitingforserverresponse {
|
||||
display:inline;
|
||||
border:2px solid #444444;
|
||||
|
|
|
|||
|
|
@ -86,6 +86,7 @@
|
|||
// member 에서 사용할 cache디렉토리 생성
|
||||
FileHandler::makeDir('./files/attach/image_name');
|
||||
FileHandler::makeDir('./files/attach/image_mark');
|
||||
FileHandler::makeDir('./files/attach/signature');
|
||||
|
||||
return new Object();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@
|
|||
**/
|
||||
function procMemberAdminInsert() {
|
||||
// 필수 정보들을 미리 추출
|
||||
$args = Context::gets('member_srl','user_id','user_name','nick_name','email_address','password','allow_mailing','denied','is_admin','description','group_srl_list','signature');
|
||||
$args = Context::gets('member_srl','user_id','user_name','nick_name','email_address','password','allow_mailing','denied','is_admin','description','group_srl_list');
|
||||
|
||||
// 넘어온 모든 변수중에서 몇가지 불필요한 것들 삭제
|
||||
$all_args = Context::getRequestVars();
|
||||
|
|
@ -109,6 +109,11 @@
|
|||
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 서명 저장
|
||||
$signature = Context::get('signature');
|
||||
$this->putSignature($args->member_srl, $signature);
|
||||
|
||||
// 결과 리턴
|
||||
$this->add('member_srl', $args->member_srl);
|
||||
$this->setMessage($msg_code);
|
||||
}
|
||||
|
|
@ -286,7 +291,7 @@
|
|||
**/
|
||||
function procMemberInsert() {
|
||||
// 필수 정보들을 미리 추출
|
||||
$args = Context::gets('user_id','user_name','nick_name','email_address','password','allow_mailing','signature');
|
||||
$args = Context::gets('user_id','user_name','nick_name','email_address','password','allow_mailing');
|
||||
$args->member_srl = getNextSequence();
|
||||
|
||||
// 넘어온 모든 변수중에서 몇가지 불필요한 것들 삭제
|
||||
|
|
@ -316,7 +321,7 @@
|
|||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
|
||||
// 필수 정보들을 미리 추출
|
||||
$args = Context::gets('nick_name','email_address','allow_mailing','signature');
|
||||
$args = Context::gets('nick_name','email_address','allow_mailing');
|
||||
|
||||
// 로그인 정보
|
||||
$logged_info = Context::get('logged_info');
|
||||
|
|
@ -341,6 +346,11 @@
|
|||
$output = $this->updateMember($args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 서명 저장
|
||||
$signature = Context::get('signature');
|
||||
$this->putSignature($args->member_srl, $signature);
|
||||
|
||||
// 결과 리턴
|
||||
$this->add('member_srl', $args->member_srl);
|
||||
$this->setMessage('success_updated');
|
||||
}
|
||||
|
|
@ -468,6 +478,25 @@
|
|||
return new Object(0,'success');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 서명을 파일로 저장
|
||||
**/
|
||||
function putSignature($member_srl, $signature) {
|
||||
$filename = sprintf('files/attach/signature/%s%d.gif', getNumberingPath($member_srl), $member_srl);
|
||||
if(!$signature) return @unlink($filename);
|
||||
|
||||
$buff = sprintf('<?php if(!__ZBXE__) exit();?>%s', $signature);
|
||||
FileHandler::writeFile($filename, $buff);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 서명 파일 삭제
|
||||
**/
|
||||
function delSignature($member_srl) {
|
||||
$filename = sprintf('files/attach/signature/%s%d.gif', getNumberingPath($member_srl), $member_srl);
|
||||
@unlink($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 관리자를 추가한다
|
||||
**/
|
||||
|
|
@ -621,9 +650,10 @@
|
|||
$output = executeQuery('member.deleteMemberGroupMember', $args);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 이름이미지, 이미지마크 삭제
|
||||
// 이름이미지, 이미지마크, 서명 삭제
|
||||
$this->procMemberDeleteImageName();
|
||||
$this->procMemberDeleteImageMark();
|
||||
$this->delSignature($member_srl);
|
||||
|
||||
// member 테이블에서 삭제
|
||||
return executeQuery('member.deleteMember', $args);
|
||||
|
|
@ -824,7 +854,7 @@
|
|||
|
||||
/**
|
||||
* @brief 최종 출력물에서 이미지 이름을 변경
|
||||
* imgae_name 애드온에서 요청이 됨
|
||||
* member_extra_info 애드온에서 요청이 됨
|
||||
**/
|
||||
function transImageName($matches) {
|
||||
$member_srl = $matches[2];
|
||||
|
|
@ -861,5 +891,36 @@
|
|||
return $GLOBALS['_transImageNameList'][$member_srl];
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 최종 출력물에서 서명을 변경
|
||||
* member_extra_info 애드온에서 요청이 됨
|
||||
**/
|
||||
function transSignature($matches) {
|
||||
$member_srl = $matches[2];
|
||||
$text = $matches[4];
|
||||
if(!$member_srl) return $matches[0];
|
||||
|
||||
// 전역변수에 미리 설정한 데이터가 있다면 그걸 return
|
||||
if(!$GLOBALS['_transSignatureList'][$member_srl]) {
|
||||
$oMemberModel = &getModel('member');
|
||||
|
||||
$signature = $oMemberModel->getSignature($member_srl);
|
||||
|
||||
// 서명이 없으면 빈 내용을 등록
|
||||
if(!$signature) {
|
||||
$GLOBALS['_transSignatureList'][$member_srl] = $matches[0];
|
||||
|
||||
// 서명이 있으면 글의 내용 다음에 추가
|
||||
} else {
|
||||
|
||||
$document = $matches[0].'<div class="member_signature">'.$signature.'</div>';
|
||||
|
||||
$GLOBALS['_transSignatureList'][$member_srl] = $document;
|
||||
}
|
||||
}
|
||||
|
||||
return $GLOBALS['_transSignatureList'][$member_srl];
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -467,5 +467,16 @@
|
|||
$info->file = './'.$image_mark_file;
|
||||
return $info;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 사용자의 signature를 구함
|
||||
**/
|
||||
function getSignature($member_srl) {
|
||||
$filename = sprintf('files/attach/signature/%s%d.gif', getNumberingPath($member_srl), $member_srl);
|
||||
if(!file_exists($filename)) return '';
|
||||
|
||||
$buff = FileHandler::readFile($filename);
|
||||
return substr($buff, 29);29);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
|
|
@ -123,6 +123,7 @@
|
|||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl);
|
||||
$member_info->signature = $oMemberModel->getSignature($member_srl);
|
||||
Context::set('member_info',$member_info);
|
||||
|
||||
// 추가 가입폼 목록을 받음
|
||||
|
|
@ -241,6 +242,10 @@
|
|||
$oMemberModel = &getModel('member');
|
||||
Context::set('extend_form_list', $oMemberModel->getCombineJoinForm($this->member_info));
|
||||
|
||||
$member_info = Context::get('member_info');
|
||||
$member_info->signature = $oMemberModel->getSignature($member_srl);
|
||||
Context::set('member_info');
|
||||
|
||||
// 에디터 모듈의 getEditor를 호출하여 서명용으로 세팅
|
||||
if($this->member_info->member_srl) {
|
||||
$oEditorModel = &getModel('editor');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue