-1

이 문서는 그누보드5에서 미니톡을 손쉽게 연동하기 위한 방법을 설명하고 있습니다.


아래에 보이는 소스를 그누보드5의 _common.php 파일이 존재하는 폴더에 minitalk.php 이라는 이름으로 생성하여 저장합니다.

(아래소스를 복사 + 붙여넣기 한다음 minitalk.php 파일로 저장한 뒤, 그누보드5의 _common.php 파일이 존재하는 곳에 FTP등을 이용하여 업로드합니다.)


<?php
include_once('./_common.php');

/* 수정해야하는 부분 시작 */
$_MINITALK_PATH = 'http://client.minitalk.kr/script/'; // 미니톡 클라이언트의 minitalk.js 파일이 존재하는 URL을 입력하세요.
$_MINITALK_KEY = '12345678123456781234567812345678'; // 미니톡 클라이언트 설치과정시 입력했던 32자리 암호화키를 입력하세요.
$_IS_ADMIN = $is_admin; // 미니톡 관리자권한을 부여할 조건문을 아래 예제를 참고하여 입력하여 주십시오.

/************************************************************
 * 관리자 권한 부여방법
 * 아래의 라인중 원하는 조건에 해당하는 '한줄을' 변형하여 사용하세요.
 
 $_IS_ADMIN = $is_admin; // 그누보드에서 관리자로 지정된 아이디일때
 $_IS_ADMIN = $member['mb_level'] > 5; // 그누보드 회원레벨이 5보다 클때
 $_IS_ADMIN = $member['mb_id'] == 'admin'; // 그누보드 회원아이디가 admin 일때
 $_IS_ADMIN = in_array($member['mb_id'],array('user_id1','user_id2','user_id3')); // 그누보드 회원아이디가 user_id1 또는 user_id2 또는 user_id3 일때
 ************************************************************/

$_NICKNAME = $member['mb_nick']; // 닉네임으로 사용할 값을 아래 예제를 참고하여 입력하여 주십시오.

/************************************************************
 * 닉네임 설정방법 (그누보드 회원에게만 적용됨)
 * 아래의 라인중 원하는 조건에 해당하는 '한줄을' 변형하여 사용하세요.
 
 $_NICKNAME = $member['mb_name']; // 그누보드 회원정보 중 실명사용
 $_NICKNAME = $member['mb_nick']; // 그누보드 회원정보 중 닉네임 사용
 $_NICKNAME = $member['mb_id']; // 그누보드 회원정보 중 아이디 사용
 $_NICKNAME = $member['mb_name'].'('.$member['mb_id'].')'; // 닉네임(회원아이디) 형식 사용
 ************************************************************/

/* 수정해야하는 부분 끝 */

function MiniTalkEncoder($value) {
    global $_MINITALK_KEY;
    $padSize = 16 - (strlen($value) % 16);
    $value = $value.str_repeat(chr($padSize),$padSize);
    $output = mcrypt_encrypt(MCRYPT_RIJNDAEL_128,$_MINITALK_KEY,$value,MCRYPT_MODE_CBC,str_repeat(chr(0),16));
    return base64_encode($output);
}

function MiniTalkDecoder($value) {
    global $_MINITALK_KEY;
    $value = base64_decode($value);
    $output = mcrypt_decrypt(MCRYPT_RIJNDAEL_128,$_MINITALK_KEY,$value,MCRYPT_MODE_CBC,str_repeat(chr(0),16));
    $valueLen = strlen($output);
    if ($valueLen % 16 > 0) return false;
    $padSize = ord($output{$valueLen - 1});
    if (($padSize < 1) || ($padSize > 16)) return false;
    for ($i=0;$i<$padSize;$i++) {
        if (ord($output{$valueLen - $i - 1}) != $padSize) return false;
    }
    return substr($output,0,$valueLen-$padSize);
}

function GetOpperCode($opper) {
    $value = json_encode(array('opper'=>$opper,'ip'=>$_SERVER['REMOTE_ADDR']));
    return urlencode(MiniTalkEncoder($value));
}

$_CHANNEL = $_GET['channel'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8" />
<title>Minitalk6</title>
<style type="text/css">
HTML, BODY {width:100%; height:100%; overflow:hidden; margin:0px; padding:0px;}
</style>
</head>
<body>
<script type="text/javascript" src="<?php echo $_MINITALK_PATH; ?>minitalk.js" charset="UTF-8"></script>
<script type="text/javascript">
new Minitalk({
    channel:"<?php echo $_CHANNEL; ?>",
    nickname:"<?php echo $_NICKNAME; ?>",
    <?php if ($_IS_ADMIN == true) { ?>
    opperCode:"<?php echo GetOpperCode('ADMIN'); ?>",
    <?php } elseif ($is_member == true) { ?>
    opperCode:"<?php echo GetOpperCode('MEMBER'); ?>",
    <?php } ?>
    width:"100%",
    height:"100%",
    /* 추가적인 옵션을 주고 싶다면, 미니톡 홈페이지 API문서를 참고하여 이 부분에 넣어주세요. */
    skin:"default"
});
</script>

</body>
</html>

서버에 업로드하기 전 수정해야하는 부분 시작지점 부터 수정해야하는 부분 끝 지점까지 설명된 내용에 따라 적절하게 수정하여 줍니다.

그 외에도 추가적인 옵션을 주고 싶다면, 84번째 줄 주석처리되어 있는 부분에 원하는 옵션을 넣어주시면 됩니다.


이제 IFRAME을 이용하여 그누보드의 원하는 부분에 미니톡을 삽입하면 됩니다.


<iframe src="./minitalk.php?channel=[미니톡관리자에서 생성한 채널명]" width="원하는가로크기(200 또는 100%)" height="원하는세로크기 500 또는 100%)" frameborder="0" scrolling="no"></iframe>

원하는 미니톡 크기만큼 가로크기를 픽셀단위 또는 % 단위로 수정하고, 서버에 업로드한 minitalk.php 파일에 접근할 수 있는 URL을 입력합니다.

(권장가로크기는 180픽셀이상, 권장세로크기는 300픽셀 이상입니다.)


위의 소스를 미니톡을 넣고자 하는 부분에 삽입하면 미니톡이 출력되게 됩니다.