애드온 프로그램 자료실
| 라이센스 | GPL2 |
|---|---|
| 기타 라이센스 | |
| 적용 버전 | 베타버전(1.0이전) |
(이 애드온의 최신판 업데이트는 XE 공식사이트와 제 블로그의 라이트박스 애드온 포스트 에서 하도록 하겠습니다. ^^)
이 애드온은 현재 Zeroboard XE 0.1.1에서 테스트되었습니다. 현재 이 애드온의 버전은 0.5.7입니다. (하루만에 3번 릴리즈 -_-)
0.5.6: 0.5.5 배포본 안의 실수 약간을 수정. 문제가 생길만한 부분 수정
0.5.5: 0.5의 문제 수정 버전. 스크립트를 LightBox에서 그 Modification인 Lytebox로 교체
0.5.0: 첫 릴리즈
이 애드온은 제로보드 XE로 만든 웹사이트에 포함된 이미지를 자동으로 라이트박스 모듈과 연결시켜줍니다. 아울러 제로보드 XE에 기본적으로 포함된 이미지 자동축소 루틴을 라이트박스 모듈과 연결시키는 루틴으로 교체해줍니다.
라이트 박스란??
라이트 박스는 그림을 팝업형식으로 띄우면서도 윈도우창을 별도로 열거나 하지 않으면서 그림을 예쁘게 출력해주는 가장 인기있는 자바 스크립트중 하나입니다. 최근에는 이 라이브러리 자체의 덩치도 꽤 커져서 그냥 만들어 쓰시는 분들도 계십니다만 전 세계적으로 많이 쓰는 스크립트중 하나이기 때문에 브라우저간 호환성이나 프로젝트 진행속도가 가장 나을것 같아서 이것을 선택하였습니다.
단, 0.5.7 버전은 오리지널 라이트박스의 경량판이면서도 동일한 효과를 가지는 Lytebox 3.2 스크립트를 사용하고 있습니다.
Markus F. Hay씨의 Lytebox 3.2 사이트
Lokesh Dhakar씨의 Lightbox 2.0 사이트

이 애드온을 설치하시면 XE의 게시물이나 블로그의 사진들이 위처럼 나옵니다.
아울러 이 애드온은 바로 윗 사진처럼 레이아웃을 깨뜨리지 않기 위해 자동으로 축소된 이미지의 출력 방식 역시 제로보드 XE코드를 라이트박스 코드로 갈아치웁니다. (깔아보시면 이해하실 수 있을겁니다... 아마도)
뿐만 아니라 모듈 인스턴스(보통 위젯에서 타겟 모듈이라고 칭하는)간에 선택적으로 적용이 가능하므로 '사진 게시판'이나 기타 그림과 관련된 게시판에만 기능을 적용시킬 수 있습니다.
설치방법
1) 본 문서에 첨부된 파일을 다운로드 받습니다. (삭제되었습니다. 최신버전을 검색해주시기 바랍니다.)
2) 압축을 해제합니다. 압축이 풀린 디렉토리 아래에 'digist_lightbox'라는 디렉토리가 생겨있음을 확인하실 수 있습니다.
3) 서브디렉토리까지 모두 포함하여 digist_lightbox 디렉토리 내용 전부를 제로보드 XE의 Addons 디렉토리에 업로드합니다. 예를 들어 zbxe라는 디렉토리에 제로보드가 설치되어 있다면 경로는 다음과 같습니다. (/zbxe/addons/digist_lightbox)
4) Admin 화면에 들어가서 애드온 메뉴를 누릅니다. 적합하게 설치되었다면 "DIGIST 라이트박스 활성화 애드온"이라는 애드온이 목록에 출력될 것입니다. 애드온을 활성화 시키기 위하여 "사용"상태로 만들어 주십시오.
주의: 만일 이전에 0.5 버전을 설치하셨던 분은 불편하시더라도 이전 버전을 완전히 삭제하신 후에 재설치 해주시기 바랍니다.
세부설정
이 애드온은 부가적인 사용자 설정을 지원하고 있습니다. 좀 더 원활한 사용을 위하여 본 애드온의 설정방법에 대해 숙지하시기 바랍니다. (정 모르시겠다면 설정을 하지 않고 그냥 쓰셔도 되긴 합니다.)

XE관리자 메뉴의 애드온 설정화면에서 본 애드온의 "설정" 버튼을 클릭하시면 위와 같은 창이 뜹니다.
- 대상 모듈은 실제로 모듈 그 자체가 아닌 모듈의 인스턴스를 가리키고 있습니다. 쉽게 말해서 게시판이나 블로그의 아이디를 써주시면 됩니다. (board 모듈로 만든 freeboard 게시판. mid값으로 설정되는 freeboard라는 이름이 바로 이 아이디입니다.)
- 대상 모듈을 공란으로 비우면 제로보드 XE 영향하에 구동되는 모든 모듈의 인스턴스(페이지 포함)가 렌더링될때 이 애드온이구동됩니다.
- 대상 모듈을 한정하고 싶다면 mid값을 차례대로 기록하되 이름끼리 쉼표(,)로 연결하시기 바랍니다.(예: freeboard,myblog) 이렇게 mid가 지정되면 해당 mid값을 가진 블로그나 게시판, 페이지만이 라이트박스를 이용하여 모든 이미지를 볼 수 있게 됩니다.
- 대상 모듈로 지정되지 않은 게시판이나 블로그, 페이지에선 그림을 클릭해도 라이트박스가 뜨지 않습니다. 단, 이미지가 커서 자동으로 축소된 이미지는 라이트박스가 구동되어 원본 이미지를 보여줍니다.
- 만일 작동방법 필드에 "resizedOnly"라고 쓰시면 대상 모듈에 상관없이 무조건 사이트의 이미지 중에 자동으로 축소한 이미지만을 라이트박스를 이용하여 보여주게 됩니다.
※ 제목을 출력시킬수도 있습니다. 그림을 본문에 삽입할 때 에디터에서 "설명입력"을 하시면 그것이 제목으로 나오게 됩니다.
참고
1) 이 애드온은 Lightbox의 경량판으로 Markus F. Hay씨가 작성한 Lytebox 3.2 버전 스크립트를 사용합니다.
2) 이 스크립트는 제로보드 XE 1.0.1과 테스트 되었습니다. 제로보드가 업그레이드되어 정상적인 작동을 하지 않을 수 있음에 유의해주십시오. 만일 이 애드온 때문에 사이트의 작동이 불안하다면 제로보드 XE 설치 디렉토리 아래의 /files/cache/activated_addons.cache.php 파일을 FTP로 삭제후 다시 웹사이트를 로딩하시면 됩니다.
3) 이 애드온의 라이센스는 GPL입니다. 참고로 Lytebox 3.2의 라이센스는 Creative Commons License 3.0입니다.
4) 문의나 건의가 있으시면 답글 달아주십시오. 메일이나 쪽지는 잘 보지 못합니다.
5) /lytebox/lytebos.js 파일의 상단부 몇가지 변수를 고치면 그림이 펼쳐지는 속도를 빠르게 하거나 애니메이션을 꺼버릴 수 있습니다.
34번째 라인: this.autoResize = false; // 이것을 true로 하면 창에 비해 너무 거대한 그림을 자동으로 축소합니다. 이 애드온은 오리지널 Lightbox와 동일한 효과를 가지기 위해 기본값이 false로 변경되어 있습니다.
35번째 라인: this.doAnimations = true; // 이것을 false로 하면 그림이 커지는 효과가 사라집니다.
적용예 (테스트 사이트가 아니니 부디 테스트글을 올리진 마시기 바랍니다. -_-)
버그리포트나 문의사항은 이쪽으로
1) 블로그 같은 경우에 적용시키면 프로필 사진 같은것에 함께 적용되는 아쉬움이 있습니다. 아직 거기까진 어떻게 처리를 못했습니다. (그냥 지금 정도로도 괜찮다고 생각합니다. 갠적으로 블로그는 이 애드온의 타겟 모듈에서 제외시켜 버렸습니다.) 사진을 블로그 자체에 올리시는 분들이라면 프로필 사진을 사용하지 마시거나 스킨에서 <IMG>태그가 아닌 CSS background로 처리해주시면 이런 문제가 생기지 않게 됩니다.
2) 현재로선 정해진 모듈 이외에 제로보드 XE원래의 처리 방법으로 구동하게 만드는 출력방식은 지원하지 않고 있습니다. (귀찮기도 하고 괜히 옵션만 마구잡이로 늘것 같아서...)
3) 이건 이 애드온의 문제가 아니라 제로보드 XE 에디터의 문제입니다만...
현재로선 사진을 삽입한 다음에 그림만 선택하고 문단에 대한 좌측/우측/가운데 정렬을 하게 되면 <IMG>태그 양쪽에 <DIV>가 생기면서 출력시 그림이 리사이즈 되지 못합니다. 큰 그림을 삽입하실때엔 문단 정렬을 따로 누르지 않으시는게 좋습니다.
※ 참고로 문단정렬을 하지 않고 그림 자체의 정렬 방법만 대입하면 오페라에선 정렬된 내용이 보이지 않더군요. :(
사용에 대한 어떤 예기치 않은 '위험'에 대해서도 책임지지 않습니다. (별일 있겠습니까만은.... ^^;;)
부디 도움이 되시기를 바랍니다. =)
알릭님이 만든건데 이걸로 하셨으면 더 간편했을 것 같은데 말입니다.
감사합니다. 잘 사용하고 있습니다.
(※참고 : 사진을 오른쪽, 왼쪽 정열한 것도 잘 적용됩니다. ^^)
http://29basecamp.com/zbxe/82
스크립트를 경량화된 것으로 교체했습니다. 오페라에서 문제없고
기존의 Lightbox와 거의 동일합니다. (rel="lightbox" 대신 rel="lytebox"로 변경해야 함)
0.5.7에선 문서 작성시 문제를 일으키던 부분을 수정했습니다.
테터툴즈에서도 유용하게 사용하던 라이트박스가 드디어 zbxe에도 로드 됐군요. 올려주셔서 감사합니다.
한가지 아쉬운 점은 zbxe에 있는 겔러리로 올린 그림들도 라이트박스로 볼 수 있으면 좋겠군요.
테더툴즈에서는 갤러리는 아니지만 3장씩 정렬해서 여러번 올려도 잘 보였는데,,,, 그건 갤러리하고는 틀리지만...
라이트박스로 보게 할려니 겔러리로 올린 파일들 다시 하나씩 펼쳐야 하네요. 귀찮기도 하고...
추천 한방 때리고 갑니다.
해상도가 클 경우 기존에는 마우스로 이동이 가능했는데........ 지금은 이미지 이동이 스크롤로만 가능하네요?
이거 수정 가능한가요?
그리고 해상도 문제는 위에서도 이야기 했지만
34번째 라인: this.autoResize = false; // 이것을 true로 하면 창에 비해 너무 거대한 그림을 자동으로 축소합니다. 이 애드온은 오리지널 Lightbox와 동일한 효과를 가지기 위해 기본값이 false로 변경되어 있습니다.
35번째 라인: this.doAnimations = true; // 이것을 false로 하면 그림이 커지는 효과가 사라집니다.
34번째 라인의 autoResize를 true로 고치시면 자동리사이즈를 합니다.
라이트박스 사용으로 하고...
최근글 코드 생성시키면...
다음 링크의 결과가 생깁니다...
http://www.zeroboard.com/zbxe_bugreport/13575209
CLOSE 버튼이 나타나기 전까지 로딩되어지고
그림이 약간 흐릿하다고 해야할까요. ^^;
작은 그림일 때는 그런 일이 없는데 800픽셀만 넘어가도 약간 이런 증상이 보일 때가
간혹 있는 것 같습니다.
그리고 불여우에서는 제대로 로딩이 잘 되는데
IE에서는 doAnimation 효과가 좀 끊기는 느낌입니다만 이건 원래 그런가요?;;
스크립트 제작자 사이트에는 ie에서도 버벅거림이 없는데
제로보드에 장착하니깐 ie에서 그림 열리는 효과를 사용하면
버벅댑니다 조금..^^;
사진 자체를 불러오는데 시간이 ie가 느려서 그런걸까요.
또한 브라우저 자체가 좀 느린 거라서 그런걸까요.
그림을 넥스트 하면 상태바에서 사용되는 이미지를 자꾸 불러오는데
이것 때문에 좀 느린 듯 하네요.
몇번 불러온 이미지는 ff에서와 같이 빠르니깐, 아마도 이미지를 불러오는데
시간이 걸려서 그랬나 봅니다.
그런데 이건 이미지를 처음 열 때는 작은 그림일 경우에도 속도가 느리네요. ㅠ_ㅠ;
그리고 ie에서는 그림이 열리면 배경색깔이 전체적으로 검은색이 이뤄지지 않고
검은배경이 반 짤립니다. 원래 이런가요? ^^;
웹페이지의 height 자체가 길 경우에는 화면 아랫쪽에서 그림을 열 경우
위쪽은 검은색배경인데 아랫쪽은 배경은 흰색이네요.
배경을 전체 다 못 채워주네요. css의 포지션 문제인가 그렇지 싶은데..<-- 본문 height에 따라가지 못하고 왼쪽 메뉴 height에 맞춰서 배경이 칠해지는 현상 같아요.
마지막으로 emoticons 말인데요.
본문에 사진을 가져올 때
본문 내에 이모티콘을 사용하는 경우가 있는데
라이트박스에서 이모티콘까지 불러오는데^^;
물론 이모티콘도 img src 태그로 불러오는 거니깐 라이트박스에서 불러오는 것이 당연하지만
이모티콘은 사실 불러올 필요가 없잖아요.
그래서 소스 상으로 emoticons 이 들어간 폴더는 자체적으로 필터링 해주는 방법은 없을까요. ^^;
낙훈님 홈피에서 좀 테스트를 해봤는데... 이상하네요.
제 홈피에선 IE에서도 하단부까지 검정색으로 렌더링 잘됩니다만...;;; 혹시나 해서 동일 스킨으로도 바꿔봤는데 문제가 없었습니다.
제 홈피의 사진( http://www.digist.co.kr/bbs/photo ) 게시판쪽을 보시면 적용예가 있는데 낙훈님 브라우저에서 문제가 발생하는지 확인해보세요.
생각해보니 이모티콘의 필터링은 간단할듯하니까 조만간 업데이트 하겠습니다. ^_^
레이아웃 문제가 아닌지... 라는 생각도 드는데... 나중에 향방작개 다녀와서 - -
그냥은 FF나 IE 모두 되는 스크립트인데 제로XE에 추가하니까 IE에서만 되네요...
http://www.animeclub.net/zbxe/board/31686
// 드래그 스크립트
var ie = document.all;
var ns6 = document.getElementById && !document.all;
var dragapproved=false;
var z, x, y;
function move(e) {
if (dragapproved) {
document.getElementById('lbMain').style.left=ns6? temp1+e.clientX-x: temp1+event.clientX-x;
document.getElementById('lbMain').style.top=ns6? temp2+e.clientY-y : temp2+event.clientY-y;
return false;
}
}
function drags(e) {
var firedobj = ns6? e.target : event.srcElement;
var topelement = ns6? "BODY" : "HTML";
while (firedobj.tagName != topelement&&firedobj.id != "lbMain") {
firedobj = ns6? firedobj.parentNode : firedobj.parentElement;
}
if (firedobj.id == "lbMain") {
dragapproved = true;
z = firedobj;
temp1 = parseInt(z.style.left+0);
temp2 = parseInt(z.style.top+0);
x = ns6? e.clientX: event.clientX;
y = ns6? e.clientY: event.clientY;
document.onmousemove=move;
return false;
}
}
document.onmousedown=drags;
document.onmouseup=new Function("dragapproved=false");
또한 이미지 이동속도를 좋게하기 위해 수작업(?)도 좀 했는데... ^^
99줄부터...
var objLytebox = this.doc.createElement("div");
objLytebox.setAttribute('id','lbMain');
objLytebox.style.display = 'none';
objBody.appendChild(objLytebox);
--- 추가 ---
var objLytebox2 = this.doc.createElement("div");
objLytebox2.setAttribute('id','lbMain2');
objLytebox2.style.display = '';
objLytebox.appendChild(objLytebox2);
var objOuterContainer = this.doc.createElement("div");
objOuterContainer.setAttribute('id','lbOuterContainer');
objOuterContainer.setAttribute((this.ie ? 'className' : 'class'), this.theme);
objLytebox2.appendChild(objOuterContainer); //변경
var objDetailsContainer = this.doc.createElement("div");
objDetailsContainer.setAttribute('id','lbDetailsContainer');
objDetailsContainer.setAttribute((this.ie ? 'className' : 'class'), this.theme);
objLytebox2.appendChild(objDetailsContainer); //변경
402줄
// this.doc.getElementById('lbPrev').style.height = imgHeight + "px";
// this.doc.getElementById('lbNext').style.height = imgHeight + "px";
주석처리
#lbMain { position: absolute; left: 0; width:100%; z-index: 99998; text-align: center; line-height: 0;}
#lbMain a img { border: none; }
#lbMain2 { position: relative; width:10px; z-index: 99999; text-align: center; line-height: 0; cursor:move;}
// 추가
#lbPrev { width: 63px; height: 32px; background: transparent url(images/blank.gif) no-repeat; display: block; left: 0; float: left; }
#lbNext { width: 63px; height: 32px; background: transparent url(images/blank.gif) no-repeat; display: block; right: 0; float: right; }
// 아이콘 사이즈에 맞게 사이즈 수정
마지막으로 제가 위에 쓴 drag 스크립트에 'lbMain' 를 'lbMain2' 로 바꿔주면 이동 중 다음사진으로 넘어가거나 창이 닫히는
증상이 많이 사라지네요...
근데 FF에서는 안되는게 참... -_-;;
주말중에 v0.6 배포들어가겠습니다.
그나저나 혹시 이 댓글 보시는 분중에
라이트박스로 펼쳐진 것을 좌측 버튼 드래그로 하는게 좋은지 우측 버튼 드래그로 하는게 좋을지... 의견 제시해주시면 좋겠습니다. 우측버튼 드래그로 하면 좌우 네비게이션과의 충돌이 없구요. 좌측 버튼 드래그로 하면 충돌을 회피하기 위해 네비 영역을 좁혀야 합니다. 한편으로는 불편해서 고민중입니다. (걍 둘다 할까도 생각중이지만 -_-)
현재 드래그되는 버전을 만들어 놓기는 했는데 점점 더 '원본코드 수정안한다'는 대전제가 박살나고 있는 중이라서 슬픕니다. (라이트박스 업글때마다 같이 업글해야되는...)
그리고 우측버튼 드래그가 기본적으로 낫지 않을까요.
아무래도 좌측버튼은 이전사진, 다음 사진으로 가는 버튼이니깐요.
아 그리고 기능에 대해서 제가 올바르게 이해한 것이 맞는지 모르겠는데
제가 설명하는 기능이 맞나요.
제가 이해한 기능은
사진을 다음사진 이전사진 감상할 때
우측버튼을 누르고 휠을 위 아래로 굴리면
이전사진 다음사진을 감상할 수 있는 것을
바로 우측버튼드래그라고 이해했는데
베니님께서 말씀하신 기능이 이 것이 맞나요
그리고 드래그되는 버전은
이에 대해서 말씀드리자면
본디 사진 드래그는 원 제로보드xe의 기능인데
이미지박스에서는 그다지 없어도 되는 기능이라고 판단했는데 말이죠.
있으면 편리한 것은 맞긴 합니다만..^^;
그리고 그것보다 이 기능이 더 필요한 게 아닌가 해서 추가적으로
개인적으로 바라는 기능 한 가지 말씀드리고 싶은데.
드래그 기능에 대해서 말씀하시면서
라이트박스에서 띄울 때 화면 사이즈에 맞게 줄이는 옵션을 선택하면 된다고 하셨는데.
이 때
자동적으로 줄인 사이즈의 그림이 나타나잖아요.
이 때 말이죠..
사진 확대 기능이 필요한 게 아닐까 하고요.
무조건 줄인 사이즈의 사진으로 밖에 감상이 안되서..
첨에 띄울 때는 화면 사이즈에 맞게 줄인다해도
사진을 본 사이즈대로 보고자 할 때에는
따른 방법이 없기 때문에
사진의 본디 사이즈를 보고 싶을 때는
ie의 기본기능처럼
화면 왼쪽 상단에 그림 확대 버튼이 있어서
원래 사이즈로도 볼 수 있는. 기능이 필요하다고 생각됩니다만..
애드온 제작자이신 베니님의 의견은 어떠한지요? ^^;
그리고 여기 코멘트로 남겨도 보실지 몰라서 쪽지도 함께 보내놓겠습니다. ^^;
ie의 기본기능처럼
화면 왼쪽 상단에 그림 확대 버튼이 있어서
원래 사이즈로도 볼 수 있는. 기능이 필요하다고 생각됩니다만..
에... 기능이 많은 다른 스크립트도 많습니다만 라이트박스는 애초에 그런 기능을 지원하지 않고 크게 필요성도 못느끼고 있습니다. 태터의 그것처럼 Lightbox Plus를 쓰면 되긴 합니다.
애초에 이 애드온을 만들때 원칙이 '원본 코드는 안건든다'였기 때문에 지금으로선 고려치 않고 있습니다. ^.^
얼마전부터 제로보드 XE 커미터로 참여하게 되어서 아주 필요한것이 아니면 가급적이면 버그 위주로 작업할까 생각중입니다. ^^
맨날 눈팅과 자료만 얻어 가다가
금년에 감사 인사 드립니다.
많은 선배님 들의 조언 과 피땀의 열성으로 만드신 자료
정말 고맙게 잘씁니다.
고개 숙여 감사 드리구요. 금년 대박의행운이 함게 하시길 바랍니다.
너무 좋아서 제 홈페 테스트에 적용을해서 테스트 중입니다
근데 저한테는 이미지로딩이 너무 빨리 순식간에 이루어지는데
왜그럴까요...? 위에 말씀하신 lytebox.js 를 열어보아도
31번째 라인: var resizeSpeed = 10; 라는 문장은 나오지를않고요
Ctrl+F 로써 검색을 해봐도 그런 문장이 없습니다..
참고로 제 테스트용 사이트에 링크를 올려봅니다...
감사합니다...
http://potome.hosting.paran.com/zbxe/sunset/113







오옷 그 말로만 듣던!