웹마스터 팁
게시판 목록에서 새창 띄워서 다른 형태 나오게 하기
2014.02.23 07:30
음악 게시판 스킨을 만들어서 올렸는데 다른 스킨에도 적용해보시라고 정리해서 팁을 올려봅니다.
더 좋은 방법이 있을지도 모르겠지만 일단 ㅎㅎ.
영상 말고 노래 가사 보이기나 뭐 다른 거에도 응용할 수 있겠죠.
예를 들어 가사보기를 만들어 보도록 하겠습니다.
(1) 일단 header.html 이나 _setting.html 의 리스트 형태 정하는 부분에 이 비슷한 게 있습니다.
게시판 형태를 원하는 모습으로 나오게 하고 싶을 때 쓰는 부분입니다.
<!--@if($listStyle=='gallery')--> {@ $module_info->default_style = 'gallery'} <!--@elseif($listStyle=='webzine')--> {@ $module_info->default_style = 'webzine'} <!--@elseif($listStyle=='list')--> {@ $module_info->default_style = 'list'} <!--@elseif($listStyle=='card')--> {@ $module_info->default_style = 'card'} <!--@elseif($listStyle=='video')--> {@ $module_info->default_style = 'video'} <!--@elseif($listStyle=='videolist')--> {@ $module_info->default_style = 'videolist'} <!--@elseif($listStyle=='가사')--> {@ $module_info->default_style = '가사'} <!--@elseif(!in_array($module_info->default_style,array('list','webzine','gallery','card','blog','video','videolist','가사')))--> {@ $module_info->default_style = 'list'} <!--@end-->
에 추가합니다. 이런 식으로. 저는 창 두개를 하나는 비디오용, 하나는 비디오리스트용으로 만들 생각이어서 video, videolist를 추가했죠. 여기에 가사용 listStyle 추가.
(2)
(2-1) 이후 만약 원하시는게 글목록(다수의 글)을 사용하는 거라면
목록 loop 바깥쪽에 <a href="{getUrl('listStyle','videolist','act','','document_srl','')}" target="_blank">비디오리스트 보기</a>
를 추가하시면 새창으로 videolist 의 형태를 가진 글목록이 열리고,
(2-2) 원하시는게 해당 글의 내용을 사용하는 거라면
목록(_style.list.html)에서 loop="$document_list=>$no,$document" 가 들어가 있는 곳 안쪽으로
<a href="{getUrl('document_srl',$document->document_srl,'listStyle','video','page','')}" target="_blank">비디오 보기</a>
를 추가하시고 클릭하시면 해당 document_srl 이 listStyle video인 창으로 열립니다.
가사를 추가해줘야하는데 글내용을 써야할 거 같으니
<a href="{getUrl('document_srl',$document->document_srl,'listStyle','가사','page','')}" target="_blank">가사 보기</a>
를 추가해야겠죠.
(3) 그럼 이제 list.html 로 가셔서 listStyle 이 video인 창과 videolist인 창의 스킨경로를 정해줘야합니다. 가사보기도.
(3-1) list.html 을 열어 원래 있던 리스트소스의 시작 부분에
<include cond="$module_info->default_style=='video'" target="video.html" /> 를 추가하고, 원래 있던 소스를
<block cond="$module_info->default_style!='video' && $module_info->default_style!='videolist'">
</block>
으로 감싸면, video 일때는 video.html 을 보이고, 아닐때는 원래 있는 list.html 내용을 보여라 가 됩니다.
(3-2) 그런데 이경우 인클루드 위치에 주의하셔야합니다. 꼭 제일 위에 쓴 내용이 들어간 부분이 video.html 앞에 위치해야해요.
만약에 header.html 에 넣으셨는데,
<include cond="$module_info->default_style=='video'" target="video.html" />
<block cond="$module_info->default_style!='video' && $module_info->default_style!='videolist'">
<!--#include("_header.html")-->
</block>
이렇게 되면 안됩니다. 옳은 예는
<!--#include("_header.html")-->
<include cond="$module_info->default_style=='video'" target="video.html" />
<block cond="$module_info->default_style!='video' && $module_info->default_style!='videolist'">
</block>
저는 게시판 제목이 출력되도록 해놨는데 그게 비디오 화면에 나오는게 싫어서 설정을 모조리 setting.html 로 분리했고요.
제일 처음에 세팅에서 liststyle 로 video와 videolist를 추가해놓고 거기서 정해진 변수로 다음과 같이 적었습니다.
셋팅을 제일 먼저 출력 후 listStyle 이 video면 video.html, videolist면 videolist.html 을 보이고,
아니면 원래 있던 게시판 목록을 보이라는 뜻입니다. 그래서 이렇게...
<!--#include("_setting.html")--> <include cond="$module_info->default_style=='가사'" target="가사.html" /> <include cond="$module_info->default_style=='video'" target="video.html" /> <include cond="$module_info->default_style=='videolist'" target="videolist.html" /> <block cond="$module_info->default_style!='video' && $module_info->default_style!='videolist'"> <!--#include("_header.html")--> </block>
분리할때 중요한 점은 setting.html 에 css, js파일 링크를 해놨다면 그게 필요한 다른 화면 예를 들어 write.form.html 등에 css 파일이 안들어갈 수 있으니 다른 곳도 잘살펴보시고 넣을 곳에 넣어주셔야합니다. 안 그러면 ㅇㅅㅇ; 저는 책임지지 않아요.
(4)
(4-1) 이제 video.html 을 만들어서 넣으시면 링크를 눌렀을때 video.html 이 뜨고, 이 링크는 위쪽에서 보셨듯이 글내용을 사용하기 위한 링크이므로, 글내용에서 쓰는 모든 변수를 쓸 수 있습니다.
{$oDocument->getTitle()} (제목) {$oDocument->getContent()} (내용) {$oDocument->getUserID()} (글쓴이) 이런 애들이죠.
(4-2) videolist.html 은 글목록을 사용하기 위한 링크이므로 글 목록에서 쓰는 변수를 쓰심 됩니다.
{$document->getTitle($module_info->subject_cut_size)} (자른제목) {$document->getSummary($module_info->content_cut_size)} (요약)
가사라면 아마 글 내용을 사용했을 거니까 가사.html 에 다음을 {$oDocument->getContent()} 달랑 넣고,
레이아웃이 안뜨게 해야할테니 제일 처음에 {Context::set('layout','none')}를 쓰시면 됩니다.
(5) 기타
만약 확장변수명이 비디오라면
<!--@if($val->eid=='video')-->
만약 확장변수명이 비디오가 아니라면
<!--@if($val->eid!='video')-->
만약 확장변수명 비디오에 값이 있다면
<!--@if($document->getExtraEidValue('video'))-->
목록에서 확장변수명 video인 값
{$document->getExtraEidValue('video')}
확장변수에 youtu 라는 내용이 들어가 있다면
{@ $extras = $val->getValueHTML();} <!--@if(preg_match('/youtu/', $extras))-->
p.s 체크박스 배열 만들어 post 로 넘겨서 변수로 이용하고, 그 변수의 갯수대로 돌리는 거 아시는 분 계신가요. ㅠ_ㅠ;
선택듣기를 만들고 싶은데... 제가 진짜 하나도 몰라서!! 체크박스를 checkbox로 쓴다는 것만 압니다. ㅎㅎ
댓글 3
-
xe_마니
2014.02.23 08:41
-
zombiman
2014.02.23 12:42
혹시 샘플 페이지 같은 건 없나요? ㅎㅎ 너무 좋은 팁 같습니다.
-
놀라운이야기
2014.09.11 11:07
배포하시면 안될까요? 꼭 필요한데 개발자가 아니라서 ㅠ.ㅠ
제목 | 글쓴이 | 날짜 |
---|---|---|
모달 윈도우 | pixfine | 2014.09.15 |
홈페이지 접속시 XE를 바로 실행하기 [7] | ezi | 2011.08.20 |
외국어 스팸 방어 [2] | DoorWeb | 2014.07.01 |
포인트선물 애드온 차감시키는 방법 | 410contents | 2014.09.12 |
카페24 웹호스팅에서 서브 도메인으로 접속 방법 [5] | 데이스타 | 2010.03.28 |
게시판 목록에서 새창 띄워서 다른 형태 나오게 하기 [3] | foret | 2014.02.23 |
회원정보보기시 공개 안 한 정보에 대해서도 최고관리자는 볼 수 있도록 변경 | sejin7940 | 2014.09.10 |
모바일뷰 사용하는 경우, 사이트맵에서 메뉴 생성시, 모바일 뷰 가 자동으로 체크되도록 | sejin7940 | 2014.09.10 |
로그인 불가 - APM 관리자일 때 (일반적인 경우 아님) [3] | Sx3 | 2007.08.26 |
XE코어 업데이트(판올림) 정확한 방법 [12] | 카이닉스 | 2012.07.30 |
[팁]포럼 모듈 인용글 박스 문제 해결 - 1.7.3 기준 [5] | socialskyo | 2013.03.27 |
고도몰과 xe 회원 연동하는 키 포인트 | 410contents | 2014.09.03 |
애드온 개발중에 이상한 버그가 생길경우 [2] | 銀童 | 2014.08.26 |
div 세로 중앙 정렬팁 | Ansi™ | 2014.09.01 |
카카오톡으로 보내기(깔끔한 뷰) [4] | seyriz | 2014.08.11 |
socialXE 에서 로그인시 소셜로그인과 XE 로그인 동시 구현하기 | 큐우우 | 2014.08.31 |
XE에 페이스북 소셜 댓글 연동하는 방법 (페이스북 소셜댓글 달기) | 기톨닷컴 | 2014.08.30 |
카메론 플러그인 에드온이 컨텐츠(본문)을 가릴때 팁 | oscarmike | 2014.08.30 |
게시판의 오늘 올라온 새글의 갯수를 알아내는 방법 [8] | garnecia | 2014.08.22 |
캡챠(captcha)가 안 뜰 때 | Double'U' | 2014.08.29 |
진심으로 감사드립니다.-이렇게 해 주시기가 쉽지 않는다는걸 잘 알고 있는 XE의 한 마니아로서 다시한번 감사드립니다.