운영자가 접속중인 회원에게 1:1 대화 및 채팅방으로 초대

잠깐 시간내어 접속중인 사용자와 1:1 대화 또는 채팅방으로 초대를 위한 목적으로

맹글게 되었습니다. 그외 다른 부분에서 응용할수 있을꺼란 생각에 이렇게 글을 남깁니다.

사용된 파일은 그누보드 루트에 있는 index.php 와 접속중인 상황을 알려주는 onair.php 입니다.

참!! 그누보드에 맞춰서 제작되었음을 알려드립니다. 다른 보드라면 수정하여 사용하실수 있을껍니다 ;)

onair.php 는 디폴트로 설치되었던가 아님 제가 그누보드에서 따로 받았는가 기억이 잘 안나네요 ^^;

작동방법은 이렇습니다.

onair.php 에서 쪽지,대화를 원하는 경후 클릭을 하여 /data/memo 또는 /data/invite 에 타켓 ID명의

파일을 생성합니다. 생성된 파일에는 쪽지 또는 대화를 실행해주는 모듈이 저장됩니다.

그리고 생성된 이후 사용자는 페이지 이동시 index.php 를 통해 다 뿌려준후 마지막에 onair에서 생성된

파일의 존재여부를 확인후 있다면 include 시켜 실행시켜줍니다. 그후 해당 파일을 삭제하게 됩니다.

이런 편법을 통해 운영자는 접속중인 사용자에게 무언가의 명령을 보낼수 있게 하였습니다.

참고로 말씀드린 1:1 대화는 현재 개발중인 GChat 을 이용하였고 채팅방은 길호챗 IRC 를 이용하였습니다.

아래의 소스는 index.php 맨 아래부분에 넣었습니다

// 운영진이 1:1 채팅을 원할경우
if(!$member[mb_id])exit;

if(file_exists("./data/memo/$member[mb_id]"))
    {   include"./data/memo/$member[mb_id]"; unlink("./data/memo/$member[mb_id]"); }

// 운영진이 채팅를 원할경우
if(file_exists("./data/invite/$member[mb_id]"))
    {   include"./data/invite/$member[mb_id]"; unlink("./data/invite/$member[mb_id]"); }

아래의 소스는 onair.php 소스중 접속중인 사용자를 출력하는 부분을 수정하였습니다. 29라인

for ($i=0; $row=mysql_fetch_array($result); $i++) { 
    $koption = '';
    if ($row[mb_id]) { 
        $mb_name = gblayer($row[mb_id], $row[mb_name], $row[mb_email], $row[mb_homepage], $row[mb_open]); 

        if(file_exists("./data/memo/$row[mb_id]")) $koption .= "<a href=./?doc=user_state.php&chkid=$row[mb_id]&kcmd=1><font color=RED>[쪽지]</font></a> "; else $koption .= "<a href=./?doc=user_state.php&chkid=$row[mb_id]&kcmd=2>[쪽지]</a> ";

        if(file_exists("./data/invite/$row[mb_id]")) $koption .= "<a href=./?doc=user_state.php&chkid=$row[mb_id]&kcmd=3><font color=RED>[채팅]</font></a>"; else $koption .= "<a href=./?doc=user_state.php&chkid=$row[mb_id]&kcmd=4>[채팅]</a>";

아래의 소스는 user_state.php 소스입니다.

<? 
if (!defined("_GNUBOARD_")) exit;

define("_DOCTYPE_", "NONE");

if ($is_admin != 'default') { echo '잘못된 접속!'; exit; }

switch($kcmd)
{
    case '1' :  $msg="";
                unlink("./data/memo/$chkid");
                break;
    case '2' :  $msg="";
                $fd = fopen ("./data/memo/$chkid", "w");
                $tempstr = '<? $chkid="'.$chkid.'";';
                $tempstr.= '$regdate='.time().';';
                $tempstr.= 'if(($regdate+60)>=$time&&$stopplz!="OK"){';
                $tempstr.= '?>';
                $tempstr.= '<script>';
                $tempstr.='if(confirm("관리자가 1:1대화를 요청하고 있습니다.\n\n참석하시겠습니까?")) window.open("http://gchat.kilho.net/mini/?uid=newkilho&nick=<?=$member[mb_name]?>","_gchat","width=400,height=400,menubar=no, scrollbars=no, resizable=no");';
                $tempstr.='</script>';
                $tempstr.='<? } ?>';
                fwrite($fd, $tempstr);
                fclose ($fd); 
                break;
    case '3' :  $msg="";
                unlink("./data/invite/$chkid");
                break;
    case '4' :  $msg="";
                $fd = fopen ("./data/invite/$chkid", "w");
                $tempstr = '<? $chkid="'.$chkid.'";';
                $tempstr.= '$regdate='.time().';';
                $tempstr.= 'if(($regdate+60)>=$time&&$stopplz!="OK"){';
                $tempstr.= '?>';
                $tempstr.= '<script>';
                $tempstr.='if(confirm("관리자가 채팅방으로 초대하고 있습니다.\n\n참석하시겠습니까?")) window.open("http://www.kilho.net//?doc=KChatIRC/index.php&mode=room");';
                $tempstr.='</script>';
                $tempstr.='<? } ?>';
                fwrite($fd, $tempstr);
                fclose ($fd); 
                break;
}
?>
<script>
    <?if($msg){?>alert("<?=$msg?>");<?}?>
    location="http://www.kilho.net/?doc=onair.php";
</script>

Comments

  1. 예전에 있었는데 지금은 없어졌나봐요,,!
    아무리 그누보드전체를 뒤져봐도 나오질 않네요
  2. 힘쓰/제가 제로보드를 현재 깔아둔게 없어서 힘드네요 ^^
    김석희/ onair.php 라는것은 그누보드3 에 자작게시판인가 그쪽에서 찾아서 하였습니다. 지금 제 소스는 손본게 많아서 따로 올려드릴수가 없습니다. 감사합니다.
  3. onair.php 파일도 같이 올려주세요...
  4. 제로보드용도 부탁드립니다.
  5. 제로보드5 용 으로 부탁 드려요..^^*

Tips & Tech

WordPress 단어 수정하기
Windows Go 언어 설치하기
Kilho.net WinDivert1.4 서비스 종료
Kilho.net ChangeDNS
[SimpleChat] HTML 태그 처리 방지 패치
워프 무료 SSL
윈도우 용 git
윈도우 8 4만원에
[광고아님] 비용절감 + 기능 + 편리함 = 클라우드 서버
크로스 브라우져 문제 때문에 고생하시는 분들께 드리는…
사이트/하위폴더 비밀번호 걸어주는 예제 와 소스 다운…
사이트 카피하는 복사기들 때문에 골치가 아프신 분들을…
러시아 친구가 알려준 jQuery 컨닝 sheet
js코더들에게 유용한 jsFiddle 과 jsbin
K클리너 비스타 사용가능합니다~
Dev tips 파일형 멀티(?) 카운터
오른쪽 마우스 해제
답변글 오른쪽 마우스 해제
공유기 설정 안되시는분들
mysql 4.1에서 리스트 화면이 깨질 경우........
SP2 에서 길호챗 사용하기..
sp2 에서 설치 안되시는분 이렇게 한번 해보세요
그누보드4 버전과 길호챗P2P 버전 연동
GChat 타이틀 글자 바꾸기
IFRAME 사용시 길호챗이 안될경우
SP2 팝업차단 무시하고 팝업띠우기?!
XP sp2 ... 대화방 프로그램 설치 해결 방법
뭐.. 간단히 킴스7에서 설치팁 ...
Views 운영자가 접속중인 회원에게 1:1 대화 및 채팅방으로 초…
그누보드랑 관련되서 연동하는 팁이 소개되있네요.