묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
애드온을 이용해 widgets 폴더 안의 login_info.html을 다룰 수 있나요?
2010.02.04 18:21
안녕하세요? XE완전 초보입니다...
현재 간단한 애드온을 만드는 중인데...애드온을 이용해서 사용자 메인 화면에 메뉴 하나를 추가하려구요..
가능한가요?
가능하다면 애드온의 $this->act라던지 그런 건 어디를 컨트롤 해야 하는 건가요??
커뮤니케이션 애드온을 보시면 도움이 되실 듯 합니다.
<?php if(!defined("__ZBXE__")) exit(); /** * @file member_communication.addon.php * @author zero (zero@nzeo.com) * @brief 사용자의 커뮤니케이션 기능을 활성화 * * - 새로운 쪽지가 왔을 경우 팝업으로 띄움 * - MemberModel::getMemberMenu 호출시 대상이 회원일 경우 쪽지 보내기 기능 추가합니다. * - MemberModel::getMemberMenu 호출시 친구 등록 메뉴를 추가합니다. **/ // 비로그인 사용자면 중지 $logged_info = Context::get('logged_info'); if(!$logged_info) return; /** * 기능 수행 : 팝업 및 회원정보 보기에서 쪽지/친구 메뉴 추가. 시작할때 새쪽지가 왔는지 검사 **/ if($called_position == 'before_module_init' && $this->module != 'member') { // 커뮤니케이션 모듈의 언어파일을 읽음 Context::loadLang('./modules/communication/lang'); // 회원 로그인 정보중에서 쪽지등의 메뉴를 추가 $oMemberController = &getController('member'); $oMemberController->addMemberMenu('dispCommunicationFriend', 'cmd_view_friend'); $oMemberController->addMemberMenu('dispCommunicationMessages', 'cmd_view_message_box'); // 새로운 쪽지에 대한 플래그가 있으면 쪽지 보기 팝업 띄움 $flag_path = './files/member_extra_info/new_message_flags/'.getNumberingPath($logged_info->member_srl); $flag_file = sprintf('%s%s', $flag_path, $logged_info->member_srl); if(file_exists($flag_file)) { $new_message_count = FileHandler::readFile($flag_file); FileHandler::removeFile($flag_file); Context::loadLang('./addons/member_communication/lang'); $script = sprintf('<script type="text/javascript"> jQuery(function() { if(confirm("%s")) { popopen("%s"); } }); </script>', sprintf(Context::getLang('alert_new_message_arrived'), $new_message_count), Context::getRequestUri().'?module=communication&act=dispCommunicationNewMessage'); Context::addHtmlHeader( $script ); } /** * 기능 수행 : 사용자 이름을 클릭시 요청되는 팝업메뉴의 메뉴에 쪽지 발송, 친구추가등의 링크 추가 **/ } elseif($called_position == 'before_module_proc' && $this->act == 'getMemberMenu') { $oMemberController = &getController('member'); $member_srl = Context::get('target_srl'); $mid = Context::get('cur_mid'); // communication 모델 객체 생성 $oCommunicationModel = &getModel('communication'); // 자신이라면 쪽지함 보기 기능 추가 if($logged_info->member_srl == $member_srl) { // 자신의 쪽지함 보기 기능 추가 $oMemberController->addMemberPopupMenu(getUrl('','mid',$mid,'act','dispCommunicationMessages'), 'cmd_view_message_box', './modules/communication/tpl/images/icon_message_box.gif', 'self'); // 친구 목록 보기 $oMemberController->addMemberPopupMenu(getUrl('','mid',$mid,'act','dispCommunicationFriend'), 'cmd_view_friend', './modules/communication/tpl/images/icon_friend_box.gif', 'self'); // 아니라면 쪽지 발송, 친구 등록 추가 } else { // 대상 회원의 정보를 가져옴 $oMemberModel = &getModel('member'); $target_member_info = $oMemberModel->getMemberInfoByMemberSrl($member_srl); if(!$target_member_info->member_srl) return; // 로그인된 사용자 정보를 구함 $logged_info = Context::get('logged_info'); // 쪽지 발송 메뉴를 만듬 if( $logged_info->is_admin == 'Y' || $target_member_info->allow_message =='Y' || ($target_member_info->allow_message == 'F' && $oCommunicationModel->isFriend($member_srl))) $oMemberController->addMemberPopupMenu(getUrl('','module','communication','act','dispCommunicationSendMessage','receiver_srl',$member_srl), 'cmd_send_message', './modules/communication/tpl/images/icon_write_message.gif', 'popup'); // 친구 등록 메뉴를 만듬 (이미 등록된 친구가 아닐 경우) if(!$oCommunicationModel->isAddedFriend($member_srl)) $oMemberController->addMemberPopupMenu(getUrl('','module','communication','act','dispCommunicationAddFriend','target_srl',$member_srl), 'cmd_add_friend', './modules/communication/tpl/images/icon_add_friend.gif', 'popup'); } } ?>