위젯 프로그램 자료실
| 라이센스 | GPL2 |
|---|---|
| 기타 라이센스 | |
| 적용 버전 | 정식버전(1.0이후) |
확장변수 6번의 형태가 SELECT -> TEXT, 필수항목 Y->N으로 바뀌었으며
확장변수 7번도 똑띠님 팁의 종료일에서 시작일로 바뀌는 등 약간 변동이 있으므로
업데이트 후 반드시 기존 팝업 게시물들의 내용을 변경해 주시기 바랍니다.
그밖의 내용은 하단을 참고하세요.
--
만들어 쓰던 팝업삽입 위젯 + 팝업관리 게시판 스킨입니다.
이것을 조합하면

요런 게시판으로

요렇게 글을 작성하여

요렇게 띄울 수 있습니다.
항상 이미지 하나 덜렁 띄울때만 써서 그밖에 본문에 글을 작성한다거나 하는 경우는.... 모릅니다 -_-;;;
제로XE 깔고 처음 만들었던 위젯이라서 대단히 허접하지만 필요하실 분이 계실 것 같아서 올려 봅니다.
그럼 설명 들어갑니다.
첨부 파일은 newest_popup.zip과 xe_board_popup.zip 두 개가 있습니다.
newest_popup이 위젯이고 xe_board_popup이 게시판 스킨입니다.
이 두개는 함께 쓰셔야 합니다. 쿠키 변수명을 공유하고 있어서
다른 게시판 스킨과 쓰면 다시 보지 않기 등의 버튼이 동작하지 않을 수 있습니다.
두 파일을 각각의 위치에 설치한 후 먼저 게시판을 만듭니다. 편의상 mid는 popup으로 합니다.
xe_board_popup 스킨을 사용하는데 만들면서 반드시 다음 순서대로 확장 변수를 지정해 주셔야 합니다.
또 값이 Y,N으로 되 있는 것은 반드시 대문자로 적어 주셔야 합니다.
항목이름이나 숫자로 된 기본값, 필수항목 여부 등은 적당히 바꾸셔도 상관없습니다.
| 변수번호 | 항목 이름 | 형식 | 필수항목 | 기본값 | 설명 |
| 확장 1 | 활성화 | SELECT | Y | Y,N | Internet Explorer 6에서 100, 7에서는 250 이하로 설정할 수 없습니다. |
| 확장 2 | 너비 | TEXT | Y | 500 | |
| 확장 3 | 길이 | TEXT | Y | 500 | |
| 확장 4 | X위치 | TEXT | 100 | ||
| 확장 5 | Y위치 | TEXT | 100 | ||
| 확장 6 | 보이지 않음 체크시 감출 기간 | TEXT | 일 단위로 적어주세요. 비워두면 다시 보지 않음 옵션을 보여주지 않습니다. | ||
| 확장 7 | 시작일 | DATE | 설정하면 지정된 날 이전에는 팝업을 보여주지 않습니다. | ||
| 확장 8 | 종료일 | DATE | 설정하면 지정된 날 이후에는 팝업을 보여주지 않습니다. | ||
이제 게시판을 만들어 들어가보면 위의 첫번째 그림과 같은 게시판이 나옵니다.
일단 테스트용 이미지를 하나 올리고 팝업창 너비와 길이를 거기에 맞추어 줍니다.
(뭐 좀 작아도 자동 리사이징이 됩니다 -_-;)
주의할 점은 그림 파일을 첨부만 하면 안되고 반드시 본문 삽입을 해 주셔야 한다는 점입니다.
다 만들었으면 이제 위젯 관리자 페이지로 갑니다.
팝업창 출력 위젯을 선택하고 스킨을 지정한 후 방금 만든 게시판을 지정해줍니다.
그리고 만들어진 코드를 팝업창을 띄울 페이지에 삽입합니다.
이제 페이지에 접속해보면... 세번째 그림처럼 팝업창이 뜰 것입니다.
변동사항
0.2 :
- 보이지 않음 버튼 눌렀을 시 일단위로 감출 기간 설정 가능
- 팝업창 하단 안내 문구에 사용자가 설정한 기간 반영
- 보이지 않음 버튼 체크박스로 변경 + 오른쪽 정렬
- 시작날짜 & 종료날짜 설정 가능 - 똑띠님 께서 팁을 제공해 주셨습니다. 감사합니다.
- 버그들 수정
문제해결
Q : 페이지에 위젯을 넣었는데 들어가 보면 팝업이 안 뜬다.
A : 일단 위젯에서 게시판을 제대로 정해 주었는지 확인합니다. 다음으로 게시물의 첫 번째 확장 변수(위에서 '활성화'라고 이름붙인)의 값을 Y로 정확하게 넣었는지 확인해봅니다. 끝으로 팝업차단 툴바등이 작동하는 것은 아닌지 확인해봅니다.
Q : 팝업이 뜨긴 하는데 팝업 이미지 뿐 아니라 게시판 디자인이 다 나온다.
A : 게시판에 팝업관리 스킨을 사용하고 있는지 확인해보세요. 다른 스킨은 지원하지 않습니다.
Q : 팝업관리 게시판에 레이아웃을 지정했더니 팝업창의 본문에도 레이아웃이 다 나온다.
이 문제를 해결하는 가장 간단한 방법은 레이아웃을 사용하지 않는 것이고,
굳이 레이아웃을 써야만 하시겠다면, 좀 지저분한 방법이지만 layout.html의 내용을 다음과 같이 감싸는 방법이 있습니다.
(참고로 여기 나온 mid는 팝업관리 게시판의 mid입니다.)
<!--@if($mid=='popup' && $popup == 'Y')-->
{$content}
<!--@else-->
//원래 layout.html 내용
<!--@end-->얼마전에 이것을 좀더 깔끔하게 처리할 수 없는지에 대한 질문을 게시판에 올렸었는데, 아무도 답을 안 주시더라구요 ㅠㅠ
Q : 본문에 삽입된 그림을 클릭해도 게시판에서처럼 확대되지 않는다.
A : 작은 팝업창에서 확대되는 동작이 이상해 막아 두었습니다.
굳이 필요하다면 게시판 스킨의 js/view.js에서 9번째 행에 있는 주석 이후의
(xRemoveEventListener로 시작하는) 모든 내용을 지워버리시면 됩니다.
만들어 주신 위젯 덕분에 잘 쓰고 있습니다.
그런데 저는 적용을 하면 왜 브라우저 위 부분에 제목으로 설정해둔
텍스트가 나오지 않고 경로명이 나오는지 모르겠네요 ㅠㅠ
꼭 좀 알려주세요..
참고로 mid를 popup으로 설정한 게시판은 레이아웃 사용을 미사용으로 설정했습니다.
0.2로 다시 다운 받아서 해봤는데도.. 위와 같이 팝업창이 나오네요..
더구나 이번에는 팝업창이 뜨고나서 얼마 안 있어 뒤로 숨겨지는데..
왜 그러는건지 모르겠네요 ㅠㅠ.....
P.s : 팝업창이 뜨자마자 뒤로 숨겨지는건 비회원(로그인을 안할시에)이 접속하면
그렇게 되네요...
P.P.s : 혹시 로그인을 하게 되면 팝업이 뜨게끔 설정이 불가능한가요??
비회원은 팝업이 안 뜨고.. 로그인을 해야 뜨게끔요...

재연이 안 되니 까닭을 알 수가 없습니다.
사용중인 pc의 자바스크립트 내지는 보안설정 문제가 아닐까 싶은데 확실치는 않습니다.
혹은 다른 타이틀바 위젯과의 충돌일 수도 있습니다. 그러나 역시 제 PC에서는 알 수가 없습니다.
다른 분들도 그러시는지?
질문하신 부분은 레이아웃에서 위젯 앞뒤로 로그인 체크하는 조건문을 넣으면 됩니다.
<!--@if($is_logged)-->
위젯
<!--@end-->
다음 버전에 옵션으로 넣는 것을 고려해 보겠습니다.
아무것도 안뜨고 상자나 직접내용추가로 하면 소스만 보이고,,,,
우째 남들은 쉽게도 하고 된다 안된다 하는데 난 시도도 못하고 있네요..
ㅡㅡ;; 위제 추가로 얻어진 소스를 넣으면 그냥 하얀 백지가 되네요.??
일반 위젯추가하듯이 하면 안되는 건가요???
살아야 하는데.... 도움 부탁드립니다.
아~~ 정말 반갑습니다. ^^
꼭 사용하고 싶은데 영문을 몰라 헤메이었는데...
페이지에서는 위젯코드를 생성하여 추가 해도 아무런 변화가 없고요.
레이아웃은 레이아웃 종류에 따라 틀리더군요.
Fatal error: Call to a member function on a non-object in /home/norebang/public_html/zbxe/classes/widget/WidgetHandler.class.php on line 28
avans_0.3 / TeRyBoY Ver.2 / kbsgag
위의 레이아웃을 테스트용으로 쓰고 있어 삽입해 봤는데.
위와같은 문구가 출력됩니다.
그외에는 말씀 드린것처럼 하얀 백지로 뜹니다.
그외의 레이아웃이란 상하로 나뉘어 하단에는 뮤직플레이어를 삽입하였는데...
그런 레이아웃의 경우 뮤직플레이어 프레임만 나오고 백지...ㅡㅡ;;
말씀하신 본문내용 댓글내용들 몇번씩 읽어보아도 잘 모르겠습니다.
위의 구문을 봐도 사실 영~~ 문맹에 가까워서... 초보의 한계를 다시한번 절감...합니다.
도움주시면 감사하겠습니다.
<img width="100%" height="100" src="http://사이트/zbxe/common/tpl/images/widget_bg.jpg" class="zbxe_widget_output" style="clear:both;" widget="newest_popup" body="" skin="default" colorset="" widget_cache="0" mid_list="popup" widget_sequence="573" />
생성된 위젯 코드입니다.
이거 아무래도 점점 제가 무엇을 잘못해놓고 우기는 것이 될거 같은데요..
무안하게시리...죄송합니다.
레이아웃 소스에 얻어진 소스를 추가하면 백지가 뜨고..
메인페이지에 위젯으로 추가하면 아무것도 안뜨네요..
이렇게 코드 생성됐는데요.. 위젯 생성 하면 아무것도 안생기네요..
폴더 이름을 바꾸고 위의 코드에서 widget="newest_popup_0.2"로 된 것을 "newest_popup"으로 고쳐보세요.
잘 모르시겠다면 그냥 기존 파일과 코드를 지우고 새로 올린 파일(newest_popup.zip)을 받아 다시 해보세요.
이 이유가 맞아야 할텐데...
좋은 프로그램 감사해용.. 이제 팝업관리하기가 쉬워지겠네요. 지금까지 프레임셋에 스크립트로 직접 관리하고 있었는데
이런 프로그램이 있으므로 상당히 편해 지겠습니다.
설치의 어려움은 없었습니다. 설명을 잘 해 놓으셨서.......
위 댓글 읽어 보니
님이 저와 같은 현상이 생기시는 것 같은데요..
로그인 해 있는 상태에서는 팝업창이 지극히 정상적입니다.
하지만 로그인 하지 않은상태, 처음 방문했을 상태에서는 페이지가 열리고, 팝업창이 열린 후, 커서가 로그인으로 가면서
팝업창이 메인창 뒤로 가 버립니다. 잘 안보여요....
문제해결이 잘 안되네요......
그럼 20000...
원인은 로그인 포커스가 강제로 아이디로 가기 때문입니다.
편법으로 꼭 모든 방문객이 팝업창을 보게 할려면 포커스를 죽이면 됩니다.
사용하는 로그인위젯 login_form.html 파일에서 아래 소스 제거해보세요.
예) zbxe/widgets/login_info/skins/xe_official/login_form.html
xAddEventListener(window, "load", function(){ doFocusUserId("fo_login_widget"); }); 를 제거 2곳 있습니다.
이게 다른 문제를 야기하는지 여부는...?? 저도 초보라...^^
처음엔 어떻게 해야 될 지 몰라서 많이 망설였는데 설명글들을 보면서 어떻게 해야 되는지 알게 되었습니다^^
이렇게 올려주신 덕에 팝업창 띄우기가 편하네요^^
감사합니다^^
......적용했더니 홈메인이 나오네요 ㅜㅜ
<img width="100%" height="100" src="http://홈페이지주소/zbxe/common/tpl/images/widget_bg.jpg" class="zbxe_widget_output" style="clear:both;" widget="newest_popup" body="" skin="default" colorset="" widget_cache="0" mid_list="POPUP" widget_sequence="5427" />
이렇게됩니다 이상한게 있나요 ㅜ
프로그램 감사합니다 아주 유용하게 사용하게 될것 같습니다.
한가지 문의:중국어 홈페이지를 운영중인데 '이페이지 1일간 다시보지 않음' 안내문구를 중국어로 바꾸어야 하는데...파일들을 아무리 뒤져도 어디를 수정해야 할지 찾지를 못하겠습니다.
어디서 수정해야 하는지 알려주실 수 있으실런지요??
팝업 이미지는 swf파일을 올려도 잘 되네요~~
감사합니다.
좋은 프로그램 감사합니다. 설치하는 데 처음에 헛갈리다. 열심히 글을 처음부터 읽고 다시 실행 했는데 되네요.
^^
감사합니다.
이 부분에 안좋은점은 새로고침할때마다 계속 다시 뜬다는.....................
다시열지않기 기능이 있지만,
게시판 내용을 가져와서 팝업으로 띄우는것이라, 사이트 내에 구글 에드샌스 같은걸 단 사람들은 참 애매하게 나오는 현상..
그리고 화면이 좌측으로 쏠려 잘 안되는현상이 있습니다.
팝업찬관리 아주 잘 쓰고 있습니다.
감사합니다.
그런데 " 이 페이지를 1일간 다시 보지 않음 " 이 작동이 안되고 팝업이 계속 뜹니다.
왜 그럴까요?
좋은 프로그램 공개해 주셔서 정말 감사합니다.
위에 질문 올리신 분들은 설명을 한번만 보고 따라해 보시면 될텐데...
추천합니다.!!
포커스 문제 저는 이렇게 하니까 해결이 되었습니다.
폴더 modules/board/skins/xe_board_for_popup
파일 view_document.html
제일 밑에서 두번째 줄에 아래의 내용을 추가했습니다.
<body onLoad='window.focus();'>
--------------------------------------------------------------------------------
<!--%import("css/popup.css")-->
<!-- 글 내용 보여주기 -->
<!--%import("js/view.js")-->
<script type="text/javascript">
//게시물 제목을 브라우저 창 제목으로
document.title = "{$oDocument->getTitleText()}";
</script>
{$oDocument->getContent()}
<!--@if($popupExpiredays != '')-->
<div class="popupOption">
<input type="checkbox" onclick="setPopupBlock('{$oDocument->document_srl}',{$popupExpiredays})" />
이 페이지를 {$popupExpiredays}일간 다시 보지 않음
</div>
<body onLoad='window.focus();'>
<!--@end-->





