XE 공식 자료실

제작자
srboard
등록일
2014-04-14
다운로드 수
114
링크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/63

◇◇◇ xe용 위젯 :  srchat_XE_219.25.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="영문숫자로채팅방아이디" chthorizon='v' chtwidth="190px" chtheight="30mm" cht_contwh="85mm" cht_usrwh="15mm" cht_wico="1" />

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

이 문제는 페이지수정에서 위젯코드를 직접 만들 때는 해당되지 않습니다.
<img ~~> 이렇게 생성해서, 붙여넣기 할 때만 문제가 됩니다.

<img class="zbxe_widget_output" widget="srchat" skin="default" chtsrchat="영문숫자로채팅방아이디" />
이렇게 붙여넣기하고, 나머지는 채팅의 관리자기능에서 설정할 수도 있습니다.
설치방법
widgets/srchat/chat 폴더의 권한을 FTP에서 777, 또는 707로 줍니다.
이후에 위젯코드를 생성하고,
관리자기능 링크(아이콘)를 열어서, [ install ] 버튼을 누르면 됩니다

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



• 채팅 관리자 기능에서 "저장된 기록 - 사용 안 함" 으로 설정된 경우

업데이트하기 전에 "저장된 기록 - 사용함" 으로 설정을 수정하세요.




• 헤드를 클릭하면, 접속자목록 높이가 바뀌도록.







헤드를 클릭해서 접속자 목록 높이가 바뀌는 기능은 전에도 있었지만,
접속자 목록이 사라지는 것도 추가했습니다.
세로 2단에서는 20% -> 80% -> 0% 순서로 접속자 목록 높이가 바뀝니다.
가로 2단에서는 20% -> 0% 순서로 바뀝니다.
기존에는 가로 2단에서 이 기능이 없었는데, 추가했습니다.


• 관리자 기능에 높이, 넓이, 형태 설정 추가.
• 크기 설정 우선적용 설정 추가.
• 접속자란 감춤 설정 추가.
• 채팅방 위치이동 설정 추가.
• 입장버튼 위치고정 설정 추가.





높이, 넓이, 형태 설정
'XE위젯용 srchat'이 아닌, 다른 srchat에서는 이 설정이 있었는데
'XE위젯용 srchat'에서는 웹페이지에 위젯으로 삽입하지 않고, 단독으로 새창으로 띄워서는
회원정보를 가져올 수 없기 때문에, 이 설정을 없앴는데
* 크기 설정 우선 적용 * 설정을 추가하면서
크기 설정의 필요성이 생겼습니다.

크기 설정 우선적용 설정
* 크기 설정 우선 적용 * 에서 -우선함-을 선택하면,
위젯코드 설정이나, 등등의 외부의 설정보다 관리자 기능의 크기 설정을 우선적으로 적용합니다.

접속자란 감춤 / 드러냄 설정
* 접속자란 :: 감춤 / 드러냄 * 설정도 추가되었습니다.
* 감춤 * 으로 설정하면,
- 채팅방을 열었을 때 접속자란이 보이지 않게 됩니다.
- 헤드를 클릭해야 접속자란이 보이게 됩니다.

채팅방 위치이동 설정
채팅방을 * 채팅방 최초 위치 * 에서 설정한 위치에서 띄우고
마우스로 헤드부분을 누른 후, 끌어서 채팅방 위치를 바꿀 수 있게 하는 설정입니다.
* 이동함 * 으로 설정/클릭하면, * 채팅방 최초위치 * 란이 나옵니다.
* 채팅방 최초 위치 * 는 "top 또는 bottom 얼마, left 또는 right 얼마" 로 설정합니다.

입장버튼 고정위치 설정
입장버튼이 position:fixed 로 설정되어서
스크롤바 위치에 관계없이, 항상 설정한 위치에 있도록 하는 설정입니다.
* 고정함 * 으로 설정/클릭하면, * 입장버튼 고정위치 * 란이 나옵니다.
* 입장버튼 고정위치 * 는 "top 또는 bottom 얼마, left 또는 right 얼마" 로 설정합니다.

입장버튼 스타일 정의 설정
입장버튼에 css 스타일 정의를 추가하는 설정입니다.

채팅방 위치이동, 입장버튼 고정위치 설정은 fixed 스킨에서 구현되던 것이었는데
관리자 기능으로 옮겨왔고, 각각 별도로 설정할 수 있도록 했습니다.
가로 2단 -세로 2단도 스킨으로 구분되던 것이 관리자 기능에서 설정 가능하게 되어서
default를 제외한 다른 스킨은 없어졌습니다.


• 글꼴, 크기 설정 추가



'XE위젯용 srchat'이 아닌, 다른 srchat에서는 이 설정이 있었는데
방식을 변화시키면서 필요성이 생겨서 추가했습니다.
아무래도 css에서 설정하는 것보다는, 관리자 기능에서 설정하는 것이 간편할 거 같아서
위젯코드설정에 있던 글꼴, 크기 설정은 삭제했습니다.


• 닉네임란 관련 설정 추가



색상선택상자만 숨김 설정
닉네임란만 출력하고, 색상선택상자는 숨기는 설정이 가능하게 됐습니다.
* 색상선택상자만 숨김 * 으로 설정하면, 닉네임란은 나오고 색상선택상자는 숨겨집니다.

숨겨진 색상선택상자는 nick/color 버튼을 클릭하거나, 입력창에 ;color 를 입력하면 나옵니다.


nick/color 버튼이 안보이면, 이 부분을 클릭하면 아래에 나옵니다.


닉네임 입력란 넓이 / 색상선택상자 넓이 설정


닉네임란과 색상선택상자의 넓이를 관리자 기능에서 설정할 수 있도록 했습니다.
단위는 px 이고, 입력란에는 숫자만 입력할 수 있고, 0으로 설정하면 기본값 60,50으로 설정됩니다.


• 본문 우측에 날짜출력 설정 추가



* 본문에서 날짜표시 * 를 '우측으로 출력' 할 수 있게 했습니다.
* 상단으로 * 는 기존과 같이, 마우스오버에서 헤드에 출력하는 것입니다.
* 우측으로 출력 * 할 때는 '월-일' 없이 '시:분:초' 만 나오고, 마우스오버하면 종전처럼 헤드에 '월-일 시:분:초' 모두 나옵니다.
* PC 우측, 모바일 상단 * 데스크탑에서는 우측으로, 모바일에서는 상단으로 출력합니다.

우측으로 표시된 날짜는 스킨의 default.css 28번줄에 #cht_fbdy span.chtvdat 로 정의되어 있습니다.

• 위젯코드설정 수정



위젯코드설정에 있던 글꼴, 크기 설정은 관리자 기능으로 이동되었습니다.
모양선택 - 가로 2단 / 세로 2단 설정사항이 추가되었습니다. - 기존엔 스킨으로 구분되던 것을, 스킨이 아닌 설정으로 대체하게 되어서
채팅방 아이디와 스킨만 설정하고, 나머지는 전부 채팅 관리자 기능에서 설정해도 됩니다.
관리자 기능에서 설정하고 * 크기 설정 우선 적용 * 을 하면, 관리자 기능의 설정이 적용됩니다.


• 최초 접속시 '저장된 기록'으로 출력하도록 함

최초 접속시 * 처음 접속에서 출력할 본문 갯수 * 의 설정값 만큼 본문을 출력하는데
srchat은 하나의 본문이 하나의 파일에 저장되기 때문에, 그 설정값 갯수만큼의 파일접속이 이뤄져야 하고
누가 퇴장/입장했다는 정보는 설정값 갯수에서 제외되기 때문에 그만큼 파일접속 갯수가 늘어나게 되는등
최초 접속에서 부하가 좀 있었을 것으로 보고
최초 접속은 '저장된 기록' 저장 파일로 출력하도록 했습니다.

그래서 관리자 기능에 * 저장된 기록 사용 함 / 사용 안 함 * 설정이 삭제되었습니다.
관리자 기능 - 하단 아이콘에 * 저장된 기록 * 버튼 설정으로 대체하시기 바랍니다.

'저장된 기록'이 64KB가 되면 - 영구저장을 설정한 경우 그리로 옮겨지고 - 리셋하는데,
이 때는 '저장된 기록2'를 생성해서 최초 접속시 본문 출력할 수 있도록 했습니다.

• 본문에서 글삭제하면 '저장된 기록'에서도 삭제되고, '저장된 기록'에서 삭제하면

본문에서 글삭제하면 '저장된 기록'에서도 삭제되고
'저장된 기록'에서 삭제하면, 본문에서도 삭제되도록 했습니다.
단, '저장된 기록'에서 삭제한 것이 채팅방에 실시간으로 반영되진 않습니다.
본문에서 글삭제하면, 다른 채팅방에도 실시간으로 반영됩니다. 종전처럼

물론 관리자에게만 해당되는 내용입니다.
본문에서 글삭제 방법 : "닉네임 > 본문내용" 이렇게 본문이 있을 때 " > " 부분을 클릭하면 확인/취소창이 뜹니다.

• 한글 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도 여러가지가 있어서)
알집으로 압축풀면, 빈 폴더(필수적인)가 생성되지 않습니다.. 되도록 다른 압축프로그램을 사용하시길 바랍니다.


업데이트 후에, widgets/srchat/skins 의 스킨은 default 만 남기고 삭제하세요.
삭제 전에, 위젯코드 설정 등에서 스킨을 default로 수정해야 합니다만.
필수는 아니고 지저분하니까 정리한다는 의미입니다.


• srchat 219.20 -> 219.21

소스중에 오타가 있었습니다.
IE에서 채팅방 삽입한 게 가끔 먹통이 되길래, 해결하다가 찾았습니다.
firefox나, 독립된 채팅방에서는 오타에도 불구하고, 작동을 해서 오타가 있는지 쉽게 확인을 못했습니다.
srchat.php 파일 하나 수정되었습니다.




• srchat 219.21 -> 219.22

 채팅 관리자 기능 - 본문에서 본인 강조 - "강조 안 함"으로 설정할 때의 문제점 수정
  강조 안 함으로 선택했을 때, 관리자 기능 페이지에서 설정값이 보존되지 않는, 문제점 수정함.
  설정은 됐는데, 선택상자에서 선택한 메뉴를 되살려내지 못한 오류. 수정해서 고침.
채팅 본문에서 '강조 안 함'일 때, 닉네임이 얇게(?) 나오는 문제점 수정함.
  볼드체로 나와야 하는데. 노멀로 나와서 수정함.


 닉네임 클릭했을 때, 우측에 팝업창이 중복으로 뜨기도 하고, 닫히지 않기도 하는 문제점 수정
  전역변수를 하나 더 넣어서 어쩌구 저쩌구 하여튼 완벽하게 작동합니다.

 본인 닉네임 클릭할 때, "자리비움" 확인창 없애고, 다른 닉네임처럼 우측에 뜨도록 함.
  확인창이 은근히 귀찮게 하는 거 같아서 개선함.


 전체높이 %로 설정했을 때 - 수정.
  전체높이가 % 단위로 설정되면, 채팅에서 젤 상위개체가 cht_fbdy 인데,
  그것의 상위개체의 높이를 offsetHeight로 측정해서, 거기에 설정값%를 곱해서
  출력하는 방식이었는데 (기존에)
  XE위젯에서는 cht_fbdy의 상위와 그 상위개체까지 offsetHeight가 101
(px) 또는 102(px) 밖에 안돼서
  전체높이를 % 단위로 설정하면 제대로 안나왔는데
  그 상위개체의 offsetHeight까지 (대체로는 이게 body) 살피도록 해서
  처리하도록 했는데,

  문제는 <body>까지도 동일한 웹페이지에서 브라우저마다 offsetHeight가 다르단 것입니다.
  그래서 결국 screen.height (사용자의 모니터 '수직'해상도)를 동원해서
  모바일에서는 거기서 180, PC에서는 300 (px)을 뺀 값을 전체높이로 잡고
  그렇게 만든 전체높이에서 설정값 % 만큼의 높이가 되도록 했습니다.

  cht_fbdy에서 세번째 상위개체까지 체크해서 offsetHeight가 101 또는 102가 아니면
  그 값을 기준높이로 잡는데, 단 그 상위개체가 body인 경우는 제외하고

  결국 못구하면 screen.height를 동원한다는 얘기였습니다.
  예제) http://srboard.styx.kr/xe/mbr


 그 외 자잘한 오류 등등 수정
  기억은 안나지만, 두어가지 정도 자잘한 문제점이 있던 거 같습니다.
  스킨(skins/default/)의 default.css 파일도 수정되었습니다. srchat.php, srchat.js 파일도 수정되었습니다.

 
• srchat 219.22 -> 219.23

 default.css 수정
  #cht_fbdy #cht_DD {overflow:auto; border-bottom:1px solid #CEDEFF}

  이게
  #cht_fbdy #cht_DD {overflow:auto;}
  이렇게 바뀜 :: 방문자 목록 하단에 border 넣지 않도록.
  왜냐면 세로2단 모양에서 이게 필요한데, 자바스크립트에서 넣기 때문에.
  가로형에선 필요 없는데, 이거 때문에 높이가 살짝 변하는 문제점이 생겨서, 수정함.

 채팅방 아래쪽에 아이콘 배치 순서 바꿈 - 관리자가 맨 우측으로 오도록
  관련해서 widgets/srchat/skins/default/srchat.html 파일이 수정됨

  필수적인 수정은 아니고, 그냥 관리자 링크가 맨 우측에 있는 게 좋을 듯 해서 바꾼 것에 불과함.

 채팅방 관리자 기능 - 맨 밑에 버튼 설명과 변경 사항
  • [저장된 기록 비움]
    • 채팅의 "저장된 기록" 과 "영구 저장된 기록" 을 지움
    • 근데, 채팅 최초 접속할 때 저장된 기록에서 읽어오도록 최근에 바꿨기 때문에
      • 왜 바꿨냐면, 처음 접속할 때는 - 관리자 기능의 "처음 접속에서 출력할 본문 갯수"
      • 만큼 출력하는데, 본문 각각이 각각의 파일이라
      • 많은 파일에 접근하는게 바람직하지도 않고
      • 더구나 본문에 출력되지 않으면서, 내부적인 메시지만 전달하는 글도 많기 때문에 - 대부분 누가 입장/퇴장 했다는 내용
      • 내부적인 메시지는 갯수에서 제외되기 때문에, 어디까지 읽어와야 되는지 알 수가 없고
      • 그래서 저장된 기록으로 출력하게 됨. 
    • 저장된 파일을 아주 없애버리면, 최초 접속할 때 본문에 출력할 게 없어지니까
    • "저장된 파일"을 "저장된 파일2" 로 이름을 바꾸고, 최초 접속할 때는 "저장된 파일2"로 출력하도록 함.
    • "저장된 파일"은 지워져서, 저장된 기록을 열면 아무것도 안나오게 됨.



  • [첨부파일 삭제] :: 말 그대로.
  • [채팅내용 비움]
    • 채팅내용과 저장된 파일을 삭제함
    • 기존에는 채팅내용만 비웠는데, 최초 접속할 때 "저장된 파일"로 부터 출력하니까
    • "저장된 파일"을 삭제하지 않으면, 채팅내용 비움의 효과가 전혀 없으니까
    • "저장된 파일"도 삭제되도록 함.


  • [모두 비움]
    • 채팅내용, 저장된 파일, 영구 저장된 파일, 첨부파일 모두 삭제함
    • 채팅방을 언인스톨 했다가, 다시 인스톨 한 것과 마찬가지 상태가 됨 - 관리자 기능의 설정이 보존된다는 것만 빼고 -


  • [uninstall]
    • 말 그대로 채팅방 언인스톨 하는 기능.
    • 종전에는 채팅방 하나만 삭제할 뿐이었는데
    • 개선해서, 그게 마지막으로 남은 채팅방이면
    • 상위의 암호폴더까지 삭제되도록 함.
    • widgets/srchat/chat
    • chat/이름이암호인폴더/채팅방아이디폴더/
    • 그니까 채팅방이 최초의 install 이전 상태가 되는 것임.
    • 물론 그게 마지막으로 남은 채팅방이라면 그렇다는 것임.
    • 다른 채팅방이 또 있으면, 그거 하나만 언인스톨됨.

• srchat 219.23 -> 219.24

가로2단 모양에서 접속자란 숨기면, IE에서 깨지는 오류 수정
  display:none 으로 처리함.


닉네임 팝업창 위치 바뀜
  IE, Firefox 에서는 닉네임 우측에 떴었는데, 크롬과 같이 닉네임 아래쪽에 뜨도록 함



1:1 대화 신청 관련된 수정
  1:1 대화 신청하면 수락/거절 내용이 깨졌는지 모르겠는데, 그랬다면 수정됨

  1:1 대화창에 접속자가 없어지면 채팅방이 삭제되는데, 입장버튼에 접속자수가 표시되는 경우
  그냥 바로 location.reload되도록 했습니다.


'글쓰는 란 위치'가 '위로' 이면서, 하단 아이콘 '모두 감춤' 상태일 때 하단 아이콘 열기 버튼[v]을 클릭하면
  본문란이 그만큼 아래로 내려가도록 함.


 • srchat 219.24 -> 219.25

 219.24버전에서 "저장된 기록" 깨지는 오류
  실수로 소스 일부분을 삭제하는 바람에 '저장된 기록'이 깨지는 오류가 있었습니다.


 채팅방 위치, 입장버튼 위치 설정 수정
  219.24버전 까지는 채팅방에는 position:absolute, 입장버튼엔 position:fixed만 설정할 수 있었는데

포럼 0

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