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

This commit is contained in:
zero 2007-03-29 12:17:14 +00:00
parent c38a0f2cb4
commit a05e662355
8 changed files with 52 additions and 35 deletions

View file

@ -10,7 +10,7 @@
**/
// 출력 되기 바로 직전이 아니라면 모두 무시
if($called_position != "beofre_dispay_content") return;
if($called_position != "before_display_content") return;
// 출력문서중에서 <div class="member_번호">content</div>를 찾아서 변경
$oMemberController = &getController('member');

View file

@ -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">
사용자의 이름을 이미지로 대체하거나 마크이미지를 나타내는 애드온
회원 관리에서 이미지이름이나 마크이미지를 설정하여야 한다.
1. 새쪽지가 올 경우 팝업으로 알려줍니다.
2. 다른 회원의 아이디 클릭시 나타나는 팝업메뉴에 쪽지 보내기를 추가합니다.
3. 로그인 플러그인이나 게시판 상단에 쪽지의 갯수를 표시합니다.
</description>
</author>
</addon>

View file

@ -1,18 +0,0 @@
<?php
if(!__ZBXE__) exit();
/**
* @file image_name.addon.php
* @author zero (zero@nzeo.com)
* @brief 사용자의 이름을 이미지로 바꾸거나 아이콘을 추가하는 애드온
*
* addOn은 화면을 출력하는 바로 단계에서 요청이 올때 작동하도록 한다.
**/
// 출력 되기 바로 직전이 아니라면 모두 무시
if($called_position != "beofre_dispay_content") return;
// 출력문서중에서 <div class="member_번호">content</div>를 찾아서 변경
$oMemberController = &getController('member');
$output = preg_replace_callback('!<div([^\>]*)member_([0-9]*)([^\>]*)>(.*?)\<\/div\>!is', array($oMemberController, 'transImageName'), $output);
?>

View file

@ -0,0 +1,34 @@
<?php
if(!__ZBXE__) exit();
/**
* @file message.addon.php
* @author zero (zero@nzeo.com)
* @brief 쪽지기능을 사이트내에 연결
*
* 1. MemberModel::getMemberMenu 다음 -> menu_list에 쪽지 보내기 기능 추가
* 2. before
**/
// MemberModel::getMemberMenu의 결과값인 menu_list에 쪽지 관련 기능 추가 (아이디 클릭시 팝업메뉴)
if($called_position == 'after_module_proc' && $this->module == 'member' && $this->act == 'getMemberMenu') {
// 템플릿에서 사용되기 전의 menu_list
$menu_list = $this->get('menu_list');
// 로그인된 사용자 정보를 구함
$logged_info = Context::get('logged_info');
$member_srl = Context::get('member_srl');
if($logged_info->member_srl != $member_srl) {
$menu_list .= "\nhaha,gg,kk";
$this->add('menu_list', $menu_list);
}
// 출력 되기 바로 직전일 경우
} else if($called_position == "before_display_content") {
}
?>

View file

@ -48,7 +48,7 @@
}
// 애드온 실행
$called_position = 'beofre_dispay_content';
$called_position = 'before_display_content';
@include("./files/cache/activated_addons.cache.php");
$this->content_size = strlen($output);

View file

@ -51,8 +51,8 @@
if(!$document_srl) $this->document_srl = Context::get('document_srl');
else $this->document_srl = $document_srl;
// 애드온 실행
$called_position = 'beofre_module_init';
// 애드온 실행 (모듈 실행 전)
$called_position = 'before_module_init';
@include("./files/cache/activated_addons.cache.php");
}

View file

@ -384,10 +384,10 @@ function chkMemberMenu(evt) {
params["page_x"] = e.pageX;
params["page_y"] = e.pageY;
var response_tags = new Array("error","message","info_list");
var response_tags = new Array("error","message","menu_list");
if(loaded_member_menu_list[member_srl]) {
params["info_list"] = loaded_member_menu_list[member_srl];
params["menu_list"] = loaded_member_menu_list[member_srl];
displayMemberMenu(params, response_tags, params);
return;
}
@ -399,7 +399,7 @@ function chkMemberMenu(evt) {
function displayMemberMenu(ret_obj, response_tags, params) {
var area = xGetElementById("membermenuarea");
var info_list = ret_obj['info_list'];
var menu_list = ret_obj['menu_list'];
var member_srl = params["member_srl"];
var html = "";
@ -407,7 +407,7 @@ function displayMemberMenu(ret_obj, response_tags, params) {
if(loaded_member_menu_list[member_srl]) {
html = loaded_member_menu_list[member_srl];
} else {
var infos = info_list.split("\n");
var infos = menu_list.split("\n");
if(infos.length) {
for(var i=0;i<infos.length;i++) {
var info_str = infos[i];

View file

@ -480,28 +480,28 @@
$user_name = $member_info->user_name;
$email_address = $member_info->email_address;
// info_list 에 "표시할글,target,url" 을 배열로 넣는다
$info_list = array();
// menu_list 에 "표시할글,target,url" 을 배열로 넣는다
$menu_list = array();
// 게시판이나 블로그등일 경우는 특별 옵션 지정
if($mid) {
// 회원 정보 보기
$info_list[] = sprintf('%s,movePage,%s', Context::getLang('cmd_view_member_info'), sprintf('./?mid=%s&act=dispSignUpForm&member_srl=%s', $mid, $member_srl));
$menu_list[] = sprintf('%s,movePage,%s', Context::getLang('cmd_view_member_info'), sprintf('./?mid=%s&act=dispSignUpForm&member_srl=%s', $mid, $member_srl));
// 아이디로 검색
$info_list[] = sprintf('%s,movePage,%s', Context::getLang('cmd_view_own_document'), sprintf('./?mid=%s&search_target=user_id&search_keyword=%s', $mid, $user_id));
$menu_list[] = sprintf('%s,movePage,%s', Context::getLang('cmd_view_own_document'), sprintf('./?mid=%s&search_target=user_id&search_keyword=%s', $mid, $user_id));
}
// 다른 사람의 아이디를 클릭한 경우 (메일, 쪽지 보내기등은 다른 사람에게만 보내는거로 설정)
if($member_srl != $logged_info->member_srl) {
// 메일 보내기
$info_list[] = sprintf('%s,sendMailTo,%s)', Context::getLang('cmd_send_email'), sprintf('%s <%s>', $user_name, $email_address));
$menu_list[] = sprintf('%s,sendMailTo,%s)', Context::getLang('cmd_send_email'), sprintf('%s <%s>', $user_name, $email_address));
}
// 정보를 저장
$this->add("info_list", implode("\n",$info_list));
$this->add("menu_list", implode("\n",$menu_list));
}
}
?>