git-svn-id: http://xe-core.googlecode.com/svn/trunk@789 201d5d3c-b55e-5fd7-737f-ddc643e51545

This commit is contained in:
zero 2007-03-30 03:27:11 +00:00
parent fdffc30fec
commit 810f30cf6b
21 changed files with 99 additions and 94 deletions

View file

@ -4,7 +4,7 @@
<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>

View file

@ -6,13 +6,19 @@
* @author zero (zero@nzeo.com)
* @brief 사용자의 이름을 이미지로 바꾸거나 아이콘을 추가하는 애드온
*
* addOn은 화면을 출력하는 바로 단계에서 요청이 올때 작동하도록 한다.
* addOn은 모든 처리가 끝나고 화면에 출력하기 바로 전에 요청이 되어서
* 사용자의 이름으로 등록된 부분을 찾아서 정규표현식으로 변환을 합니다.
* 사용자의 이름은 <div class="member_회원번호">....</div> 정의가 되어야 합니다.
* 이렇게 정의된 부분의 회원번호를 구해서 이미지이름, 이미지마크가 있는지를 확인하여 있으면
* 내용을 변경해버립니다.
*
* 내용 변경은 MemberController::transImageName method를 이용해서 변경합니다.
**/
// 출력 되기 바로 직전이 아니라면 모두 무시
if($called_position != "before_display_content") return;
// 출력문서중에서 <div class="member_번호">content</div>를 찾아서 변경
// 출력문서중에서 <div class="member_번호">content</div>를 찾아 MemberController::transImageName() 를 이용하여 변경
$oMemberController = &getController('member');
$output = preg_replace_callback('!<div([^\>]*)member_([0-9]*)([^\>]*)>(.*?)\<\/div\>!is', array($oMemberController, 'transImageName'), $output);
?>

View file

@ -4,9 +4,8 @@
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<description xml:lang="ko">
1. 새쪽지가 올 경우 팝업으로 알려줍니다.
2. 다른 회원의 아이디 클릭시 나타나는 팝업메뉴에 쪽지 보내기를 추가합니다.
3. 로그인 플러그인이나 게시판 상단에 쪽지의 갯수를 표시합니다.
1. 다른 회원의 아이디 클릭시 나타나는 팝업메뉴에 쪽지 보내기를 추가합니다.
2. 새쪽지가 올 경우 팝업으로 알려줍니다.
</description>
</author>
</addon>

View file

@ -2,15 +2,18 @@
if(!__ZBXE__) exit();
/**
* @file message.addon.php
* @author zero (zero@nzeo.com)
* @brief 쪽지기능을 사이트내에 연결
*
* 1. MemberModel::getMemberMenu 다음 -> menu_list에 쪽지 보내기 기능 추가
* 2. before
**/
* @file message.addon.php
* @author zero (zero@nzeo.com)
* @brief 쪽지기능을 사이트내에 연결
*
* 1. 게시판등의 페이지에서 사용자 이름을 클릭시 요청되는 MemberModel::getMemberMenu 후에 $menu_list에 쪽지 발송 링크 추가
* 2. 새로운 쪽지가 왔을 경우 팝업으로 띄움
**/
// MemberModel::getMemberMenu의 결과값인 menu_list에 쪽지 관련 기능 추가 (아이디 클릭시 팝업메뉴)
/**
* 1. 게시판등의 페이지에서 사용자 이름을 클릭시 요청되는 MemberModel::getMemberMenu 후에 $menu_list에 쪽지 발송 링크 추가
* 조건 : called_position == 'after_module_proc', module = 'member', act = 'getMemberMenu'
**/
if($called_position == 'after_module_proc' && $this->module == 'member' && $this->act == 'getMemberMenu') {
// 비로그인 사용자라면 패스
@ -26,18 +29,26 @@
// 언어파일 읽음
Context::loadLang($addon_path."lang");
// 템플릿에서 사용되기 전의 menu_list
// 템플릿에서 사용되기 전의 menu_list를 가져옴
$menu_list = $this->get('menu_list');
$menu_list .= sprintf("\n%s,winopen('%s','messageBox','width=10,height=10,left=10,top=10,resizable=no,scrollbars=no,toolbars=no')", Context::getLang('cmd_send_message'), './?module=message&amp;act=dispSendMessage&amp;target_member_srl='.$member_srl);
// 쪽지 발송 메뉴를 만듬
$menu_str = Context::getLang('cmd_send_message');
$menu_link = sprintf('./?module=message&amp;act=dispSendMessage&amp;target_member_srl=%s',$member_srl);
// 메뉴에 새로 만든 쪽지 발송 메뉴를 추가
$menu_list .= sprintf("\n%s,%s", $menu_str, $menu_link);
// 템플릿에 적용되게 하기 위해 module의 variables에 재등록
$this->add('menu_list', $menu_list);
// 출력 되기 바로 직전일 경우
} else if($called_position == "before_display_content") {
/**
* 2. 새로운 쪽지가 왔을 경우 팝업으로 띄움
* 조건 : called_position = 'before_display_content'
**/
} else if($called_position == 'before_display_content') {
}
?>

View file

@ -1,15 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<addon version="0.1">
<title xml:lang="ko">네이버 검색 연동 애드온</title>
<title xml:lang="en">naver search addon</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">
글을 작성시 네이버의 검색서버에 해당 글의 상황을 보냅니다.
내용을 보내는 것이 아니라 글의 url만 보내고 글에서 선택한 공개옵션에 따라서 크롤링을 하게 됩니다.
네이버 검색서버 연동을 하시면 사이트의 검색 기능을 네이버의 검색서버를 이용하실 수 있게 됩니다.
</description>
<description xml:lang="en">naver search addon</description>
</author>
</addon>

View file

@ -6,24 +6,17 @@
* @author zero (zero@nzeo.com)
* @brief 네이버 검색 연동 애드온
*
* addOn은 ModuleObject 에서 모듈이 불러지기 /후에 include되는 것으로 실행한다.
* 별도의 interface가 필요한 것이 아니고 모듈의 일부라고 판단하여 코드를 작성하면 .
* 네이버 검색 연동 애드온은 모듈이 실행된 후에 동작한다.
* board 모듈의 procInsertDocument, procDeleteDocument action일 때만 특정 서버로 발송을 .
**/
// called_position이 before일때만 실행
if($called_position != 'after_module_proc') return;
// 이 애드온이 동작할 대상 (이 부분은 특별히 정해진 규약이 없다)
$effecived_target = array(
'board' => array('procInsertDocument', 'procDeleteDocument'),
);
if($this->module != 'board' && ($this->act != 'procInsertDocument' || $this->act != 'procDeleteDocument')) return;
// spam filter모듈이 적용될 module+act를 체크
if(!in_array($this->act, $effecived_target[$this->module])) return;
// 해당 글의 URL을 구함
// 검색 서버로 발송할 url을 구함
$url = sprintf('%s?document_srl=%s',Context::getRequestUri(), Context::get('document_srl'));
// URL을 네이버 검색 서버로 발송
//@todo 차후 개발
?>

View file

@ -1,14 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<addon version="0.1">
<title xml:lang="ko">레인보우 링크 애드온</title>
<title xml:lang="en">rainbow link addon</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">
링크가 걸린 글의 색을 무지개색으로 나타냅니다.
rainbow.js를 header에 추가하여 링크가 걸린 글의 색을 무지개색으로 나타냅니다.
이 애드온의 rainbow.js는 &lt;a href=&quot;http://www.dynamicdrive.com&quot; target=&quot;_blank&quot;&gt;Dynamicdrive.com&lt;/a&gt;에 저작권이 있습니다.
</description>
<description xml:lang="en">rainbow link</description>
</author>
</addon>

View file

@ -2,25 +2,17 @@
if(!__ZBXE__) exit();
/**
* @file spamfilter.addon.php
* @author zero (zero@nzeo.com)
* @brief Rainbow link addon
*
* 링크가 걸린 텍스트에 마우스 오버를 하면 무지개색으로 변하게 하는 애드온입니다.
* rainbow.js는 http://www.dynamicdrive.com에서 제작하였으며 저작권을 가지고 있습니다.
**/
* @file rainbow.addon.php
* @author zero (zero@nzeo.com)
* @brief Rainbow link addon
*
* 링크가 걸린 텍스트에 마우스 오버를 하면 무지개색으로 변하게 하는 애드온입니다.
* rainbow.js 파일만 추가하는 것으로 끝납니다.
* rainbow.js는 http://www.dynamicdrive.com에서 제작하였으며 저작권을 가지고 있습니다.
* before_display_content 에서만 요청이 됩니다.
**/
// admin 모듈의 경우 무조건 패스
/*
if(Context::get('module') == 'admin') {
$this->rainbow_link_is_called = true;
return;
}
*/
// 한번이라도 요청이 되었다면 패스
if($GLOBALS['_rainbow_link_is_called']) return;
$GLOBALS['_rainbow_link_is_called'] = true;
if($called_position != 'before_display_content') return;
// 현재 애드온의 위치를 구함
$oAddOnModel = &getModel('addon');

View file

@ -1,14 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<addon version="0.1">
<title xml:lang="ko">스팸필터 애드온</title>
<title xml:lang="en">spamfilter addon</title>
<author email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
<name xml:lang="ko">제로</name>
<name xml:lang="en">zero</name>
<description xml:lang="ko">
스팸 필터링을 담당합니다.
SpamFilter 모듈을 이용하여 글/코멘트/트랙백 등록 이전에 스팸 필터링 및 도배 방지를 합니다.
자세한 설정은 &quot; 스팸필터 모듈&quot; 에서 해주세요.
</description>
<description xml:lang="en">do spam filtering</description>
</author>
</addon>

View file

@ -2,15 +2,15 @@
if(!__ZBXE__) exit();
/**
* @file spamfilter.addon.php
* @author zero (zero@nzeo.com)
* @brief 스팸필터링 애드온
*
* addOn은 ModuleObject 에서 모듈이 불러지기 /후에 include되는 것으로 실행을 .
* 별도의 interface가 필요한 것이 아니고 모듈의 일부라고 판단하여 코드를 작성하면 .
**/
* @file spamfilter.addon.php
* @author zero (zero@nzeo.com)
* @brief 스팸필터링 애드온
*
* 스팸필터 애드온은 SpamFilter 모듈을 이용합니.
* /코멘트/트랙백 등록 이전에만 실행이 됩니.
**/
// called_position가 before일때만 실행
// called_position가 before_module_proc 일때만 실행
if($this->called_position != 'before_module_proc') return;
// 이 애드온이 동작할 대상 (이 부분은 특별히 정해진 규약이 없다)
@ -43,10 +43,10 @@
break;
}
// 현재 모듈의 관리자이거나 그에 준하는 manager권한이면 그냥 패스~
// 현재 모듈의 관리자이거나 그에 준하는 manager권한이면 그냥 패스
if($this->grant->is_admin || $this->grant->manager) return;
// 현 접속자의 ip address를 변수화
// 현 접속자의 ip address를 구함
$ipaddress = $_SERVER['REMOTE_ADDR'];
// spamfilter 모듈 객체 생성