XE 공식 자료실

제작자
srboard
등록일
2013-07-08
다운로드 수
1,800
링크1
srboard.styx.kr

http://srboard.styx.kr/xe/
위 링크에 사용된 채팅소스입니다.
ajax를 사용하고,
사용자의 계정에 직접 설치해서 사용하는 것입니다.
채팅 데이타는 ./widgets/srchat/chat/ 경로에 저장되기 때문에,
이 디렉토리를 FTP에서 777 또는 707로 권한설정해줘야 합니다.

라이선스
GPL v2
설치경로
./widgets/srchat
최초 등록일
2010-10-24
전체 다운로드
13,616
체험하기

쉬운설치로 바로 체험할 수 있습니다

상세 설명

업로드한 곳 : http://srboard.tistory.com/38

◇◇◇ xe용 위젯 : srchat_XE_v219.05.rar
◇◇◇ urlencode : urlencode.rar
◇◇◇ 버튼 아이콘 : buttons-130626.rar

예제 : http://srboard.styx.kr/xe/

◇ 기본적인 설명은 :: http://srboard.styx.kr/srboard/index.php?section=15


<img class="zbxe_widget_output" widget="srchat" skin="default" chtsrchat="영문숫자로채팅방아이디" chtwidth="190px" chtheight="30mm" cht_contwh="85mm" cht_usrwh="15mm" cht_fsize="8" cht_family="Gulim" cht_wico="1" />

위젯 코드를 붙여넣기 할 때는
• chtheight="30mm" :
30%를 지칭하는데,%가 저기에 들어가면, 스킨으로 %라는 기호가 전달이 안됩니다.
그래서, 이것저것 해보다가 mm로 정했습니다.
mm로 전달된 값은 자바스크립트에서 % 로 변환됩니다.

이 두가지 제한사항은 페이지수정에서 위젯코드를 직접 만들 때는 해당되지 않습니다.
<img ~~> 이렇게 생성해서, 붙여넣기 할 때만 문제가 됩니다.
설치방법
widgets/srchat/chat 폴더의 권한을 FTP에서 777, 또는 707로 줍니다.
이후에 위젯코드를 생성하고,
관리자기능 링크(아이콘)를 열어서, [ install ] 버튼을 누르면 됩니다

srchat/chat
srchat/emoticon
압축 풀었을 때 이 폴더가 없으면, 새폴더라도 만들고,
FTP에서 widgets/srchat/chat 폴더의 권한을 777 또는 707로 주세요.
(알집으로 풀면 빈폴더를 복원해내질 않습니다. 유의하세요.)




대대적인 수정이 있었습니다. 접속자목록 출력하는 방식에 있어서.

종전에는 접속자 목록에 사소한 변경 사항이라도 있을 때는 접속자 목록 전체를 다시 읽어가도록 하는 방식이었습니다.
그랬던 방식에서 처음 접속할 때 - 이 때는 당연히 접속자 목록 전체를 읽어가야 하고
중간에 변동이 있을 때 변동 사항을 채팅 본문을 통해서 전달하고 - 반영하는 방식으로 바뀌었습니다.
접속자 목록을 읽어가는 것은 새로고침했을 때나 처음 접속했을 때 뿐입니다.

이렇게 하기 위해서
기존에는 채팅 본문에는 "사용자 닉네임","본문","일,시,분.초","글자색" 이 정도의 정보만 출력하고, 읽어오고 했었는데
srchat에서 12자리로 변형해 쓰는 "사용자 아이피"를 추가로 출력하고 읽어오도록 했습니다.
거기에 "글번호" 까지 출력하도록 했습니다.

그래서 동시 접속자 수에 따라 다르겠지만,
동시 접속자 수가 10명 20명 이런 규모일 때는 새 버전에서 트래픽이 더 늘어났을 수도 있습니다.
어느 정도 동시 접속자 수에서 갈리는지 정확히 계산은 안 해봤지만
동시 접속자 수가 더 많을 때 유리한 방식입니다.



관리자에 의한 채팅 본문 삭제 개선.

20130708_022245.jpg

20130708_022242.jpg

기존에도 이 기능이 있긴 했지만, 기존에는 서버에 저장된 본문만 삭제하는 기능이었는데
새 버전에서는 각 사용자들에게 이미 출력된 본문까지 삭제되도록 했습니다.
또한 "저장된 기록"에서도 삭제되도록 했습니다.
그래서 본문번호가 종전에는 관리자에게만 (채팅 본문에) 출력되던 것이 사용자 전체에게 출력되도록 바뀌었습니다.
(이미 출력된 본문을 삭제하기 위해서 특정할 필요가 있기 때문에)

"저장된 기록" 에서도 본문 삭제 기능이 있는데
이건 종전과 같이 "저장된 기록"에서만 삭제가 이뤄지고, 채팅 본문까진 삭제되진 않습니다.

닉네임이 있는 채팅 본문에서는 " > " 또는 우측 출력일 때는 " < " 부분을 클릭하면
위 그림과 같은 확인 창이 뜹니다. - 물론 관리자에게만.
닉네임이 없는 안내문일 때는 ▶ 부분을 클릭하면 됩니다.


XE 쪽지 보내기 기능 추가.

20130708_022230.jpg

어느 분의 요청 사항이 있었습니다.
"이미지마크"나 "이미지이름"을 사용하는 경우에만 가능합니다.
"이미지마크"나 "이미지이름" 사용 여부 설정은 채팅의 관리자 기능에 있습니다.

왜냐면 쪽지보내기할려면 회원번호가 필요한데 이미지마크나 이미지이름의 이미지파일에 회원번호가 있더군요.


로그아웃 -> 로그인 했을 경우. 본문을 올려야 닉네임이 반영됩니다.

새로고침이 아니고는 접속자 목록을 읽어오지 않기 때문에
로그인 상태로 신규 접속을 한 것이 아니고, 채팅방에 이미 있다가 로그인 한 경우
"손님_xxxx" 식의 임시 닉네임이 "회원닉네임"으로 바뀔려면, 본문을 올려야 합니다.
본문의 닉네임을 통해서, 접속자 목록의 닉네임이나 아이콘등을 갱신하도록 되어 있습니다. (새 버전에서부터)

방금 테스트 해봤는데, 로그아웃하는 경우에도 마찬가지로 본문을 올려야
회원닉네임에서 임시 닉네임으로 바뀝니다.

단 사용자 구분을 기본 설정인 사용자 아이피가 아닌, session_id()로 이뤄지도록 수정한 경우엔
XE에서 로그아웃하면 세션이 삭제되기 때문에. 세션아이디도 바뀝니다.
따라서 일시적으로 기존의 회원닉네임이 있는데 임시 닉네임이 추가로 생깁니다.
이건 세션아이디로 사용자 구분이 이뤄지도록 수정했기 때문이고, 큰 문제는 아닙니다.

"관리자로 지명" 기능 수정 사항.

종전에도 srchat.php 14번 줄
$chtmkadmin = -1; 이렇게 수정하면, '관리자로 지면' 하는 기능이 있었습니다.
관리자로 지명된 사람은 '새로고침'을 해야 관리자 기능이 살아나는데
관리자로 지명되면, 관리자와 지명된 사람만 볼 수 있는 안내문이 나오도록 했습니다.
위에 그림에서 본문 윗부분을 참고하세요.


"강퇴" 기능 수정 사항.

종전에도 강퇴 기능은 있었습니다.
강퇴 당한 쪽에 새로고침이 이뤄져서,
'접속차단되셨습니다.' 라고 좀 더 분명히 나오도록 수정했습니다.


"글쓰기 차단" 기능 수정 사항.

종전에 어땠는 지가 기억이 확실치 않은데
종전과 마찬가지로 글쓰기 차단되면, 연필그림이 닉네임 앞에 뜨고 글쓰기가 안되는데
닉네임 앞에 연필그림이 모든 접속자에게 다 보여서 그 사람이 글쓰기 차단 상태라는게 알려지고 (이것도 종전과 똑같았는지를 모르겠습니다)
종전에는 글쓰기를 자바스크립트로만 막았는데, 혹시 스크립트 조작으로 다시 열었더라도 서버에서도 막혀 있어서 소용없다는 점이 다릅니다.

입장, 퇴장, 강퇴, 닉네임 수정 시에 안내문 표시

표시 여부는 관리자 기능에서 설정하는 것입니다.
그 표시 여부와 상관없이
채팅 본문으로 그 메시지가 오는데, 메시지는 항상 발송되도록 한 것입니다.
그 메시지를 통해서, 접속자 목록에 변동사항이 전달되도록 했습니다.

그래서 메시지 표시 여부 설정과 상관없이 메시지는 항상 전달됩니다.


채팅에 "공지사항" 이 있다면, 업데이트 전에 백업하세요


설정이 늘어난 것은 아니지만,
사용자 입출력 상황 본문 출력 - 설정의 저장 위치가 바뀌었습니다.
기존에는 이 설정 여부에 따라서, 입출력 상황 메시지 전달 여부가 결정되었기 때문에
ajax로 읽어오는 곳에서 설정 여부를 빠르게 확인 할 수 있도록 - 특정 이름의 빈 파일의 존재 여부로 저장했는데
이제는 본문 출력 여부와 무관하게 항상 메시지를 출력하게 되었기 때문에
본문 출력 여부 저장하는 방식도 바꾼 것입니다.

그래서 srchat에서 (추가되는 설정에서) 늘 그러던 방식대로 공지사항을 밀어내고, 그 위에 설정 사항이 저장되도록 했습니다.

스킨 수정사항 : default 스킨 기준으로 default.css

23번줄
#cht_fbdy #cht_AA .myself {background:#F4FFF2} /* 글쓴이 닉네임을 본문에서 구분,강조 */

#cht_fbdy #cht_AA .myselfw {background:#F4FFF2} /* 글쓴이 닉네임을 본문에서 구분,강조 */
#cht_fbdy #cht_AA .myselfb {background:#0B012C} /* 글쓴이 닉네임을 본문에서 구분,강조 */

본문 본인 강조 배경색 설정했을 때. 배경색상인데
검은 배경일 때와 흰 배경일 때를 구분하기 위해서 수정했습니다.

32번줄
#cht_fbdy #cht_CC #cht_EE.smll {font-size:8pt; font-weight:normal; letter-spacing:-1px} /* 접속자 */

#cht_fbdy #cht_CC #cht_EE .smll {font-size:8pt; font-weight:normal; letter-spacing:-1px} /* 접속자 */

#cht_EE.smll -> #cht_EE .smll 이렇게 바뀌었습니다.
채팅 본문에 마우스오버해서 접속시간 표시하는 부분을 class='smll' 라는 것을 넣었다 뺐다가 하면서
글자 크기나 font-weight 를 바꿨는데, 아무래도 안정적이질 않아서
어차피 스크립트로 하는 것이니까 그냥 cht_EE 안에 <div class='smll'></div> 를 넣었다 뺐다 하는 것로 바꿨습니다.
cht_EE 자체에 class='smll' 을 주지 않고, 그 안에 <div class='smll'></div> 를 넣는 방식으로.

34번줄
#cht_fbdy #cht_CC #cht_FF {float:right; text-align:right; font-size:8pt} /* 시간 */

#cht_fbdy #cht_CC #cht_FF {float:right; text-align:right; font-size:8pt; width:44px} /* 시간 */

IE 기반의 이런 저런 브라우저에서 시간이 두줄로 나오길래 이렇게 수정했습니다.
[x] 버튼 배경 이미지를 수정해서 쓰는 경우에, 사이즈가 달라졌다면
아마 이 넓이 값도 달라져야 할 지 모르겠습니다.

44번줄
#cht_fbdy #cht_DD dt#chtddmyself {background-color:#E9FFE3}

#cht_fbdy #cht_DD dt.chtselfw {background-color:#E9FFE3}
#cht_fbdy #cht_DD dt.chtselfb {background-color:#301238}

id='chtddmyself' 에서 className 으로
검은색 배경색을 고려해서 흰 바탕용과 검은 바탕용을 따로 구분했습니다.


• 한글 ajax입력이 안되는 경우엔 urlencode.rar

외국서버에서 한글이 ajax로 입력안되는 경우가 있다고해서 원본의 일부를 수정한 파일입니다.
수정하는 방법은 http://srboard.styx.kr/srboard/index.php?id=free&no=584 덧글에 있는데, 별도로 배포하고 있습니다.
한글입력에 문제가 없으면, 불필요한 부하만 늘어나는 수정입니다.
적용 방법 - 원본을 다운받아서 압축풀고, urlencode.rar를 다운받아서 압축풀어서 원본의 해당파
일에 덮어씌웁니다.


• 혼자 테스트하려면

srchat.php 18번 줄
$chtip = str_pad(str_replace('.','',$_SERVER['REMOTE_ADDR']),12,'x'); /* ip로 사용자구분 할때 */
//$chtip = substr(session_id(),0,12); /* ip로 사용자구분 안할때 */

여기를

//$chtip = str_pad(str_replace('.','',$_SERVER['REMOTE_ADDR']),12,'x'); /* ip로 사용자구분 할때 */
$chtip = substr(session_id(),0,12); /* ip로 사용자구분 안할때 */

이렇게 수정해야 합니다.

사용자가 어디까지 읽어갔는지가 서버측에 저장되기 때문에,
한 명의 사용자가 두 개의 브라우저로 열면 제대로 작동되지 않습니다.

그래서 혼자 테스트하려면, 브라우저마다 각각의 사용자가 되도록
위와 같이 IP가 아닌 세션아이디로 사용자를 구분하도록 수정해줘야 합니다.


• 질문은
http://srboard.styx.kr/srboard/index.php?id=free 여기서 하시고,
질문에 "XE용 srchat" 에 대한 질문이라고, 특정해주시기 바랍니다. (srchat도 여러가지가 있어서)
알집으로 압축풀면, 빈 폴더가 생성되지 않습니다.. 되도록 다른 압축프로그램을 사용하시길 바랍니다.


• srchat_XE 219.00 -> 219.01 수정사항

srchat.js 파일 하나 수정됐습니다.
794번 줄에
else imgsrc = '';

이거 한 줄 추가되었습니다.



쪽지 보내기할 때, 이미지마크나 이미지이름에서 회원번호 걸러내는 부분인데, 못찾았을 때 빼는 부분이 불확실했습니다. 그래서.

• srchat_XE 219.01 -> 219.02 수정사항

srchat.php 파일 하나 수정됐습니다.
166번 줄에
$val = substr($val,18,-1);
이 부분이
$val = substr($val,16,-1);
이렇게 수정되었습니다.

'xx님이 퇴장했습니다' 라고 나올 때, 닉네임이 일부 잘려나가는 문제가 있다고 해서 급히 수정했습니다.



• srchat_XE 219.02 -> 219.04 수정사항

srchat.php 파일 하나 수정됐습니다.
최초 설치할 때, 자바스크립트 에러 나는 문제 수정했습니다.


채팅 관리자 기능의 "처음 접속에서 출력할 본문갯수" 에서 입퇴장 등의 안내문을 빼도록 했습니다.
보이지 않는 안내문이 출력할 본문갯수의 숫자를 채워서, 맨 처음에 채팅본문이 전혀 안보이는 문제가 있었는데

차라리 안내문은 출력할 본문갯수에서 빼도록 했습니다.
그럼에도 갯수를 못채우는 경우가 있을 수 있는데 그것은 저장된 본문 90개에서 안내문이 아닌 채팅본문이 그것밖에 없기 때문입니다.

 • srchat_XE 219.04 -> 219.05 수정사항

srchat.js 파일과 각 스킨의 default.css 수정되었습니다.
접속중, 부재중 표시에 에러가 있었습니다.
부재중인데도 접속중으로 나오고 부재중인데도 우측 메뉴가 뜨고 하는 오류가 있어서 수정했습니다.
알림음 시간 간격 제한이나 글쓰기 시간 간격 제한에 걸린 경우의 경고 메시지가
본문에 파란색 글자로 뜨도록 바꿨습니다.
더불어 중복된 내용이라는 경고 메시지나, 중복된 닉네임이라는 경고 등등이 그런 식으로 바뀌었습니다.

default 스킨의 default.css 기준으로 27줄에
#cht_fbdy .cht_ntc {padding:2px 2px 2px 10px; color:#A3A3A3}
이 내용이 추가되었습니다.
줄 수는 상관없고, 하여튼 스킨의 default.css에 이 내용이 있기만 하면 됩니다.
알림 메시지가 추가되어서, 그것에 대한 스타일 정의가 추가된 것입니다.

포럼 0

로그인 후 작성할 수 있습니다.