웹마스터 팁
게시판 목록에서 새창 띄워서 다른 형태 나오게 하기
2014.02.23 07:30
음악 게시판 스킨을 만들어서 올렸는데 다른 스킨에도 적용해보시라고 정리해서 팁을 올려봅니다.
더 좋은 방법이 있을지도 모르겠지만 일단 ㅎㅎ.
영상 말고 노래 가사 보이기나 뭐 다른 거에도 응용할 수 있겠죠.
예를 들어 가사보기를 만들어 보도록 하겠습니다.
(1) 일단 header.html 이나 _setting.html 의 리스트 형태 정하는 부분에 이 비슷한 게 있습니다.
게시판 형태를 원하는 모습으로 나오게 하고 싶을 때 쓰는 부분입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <!--@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인 창으로 열립니다.
가사를 추가해줘야하는데 글내용을 써야할 거 같으니
1 | <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 을 보이고,
아니면 원래 있던 게시판 목록을 보이라는 뜻입니다. 그래서 이렇게...
1 2 3 4 5 6 7 | <!--#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) 기타
만약 확장변수명이 비디오라면
1 | <!--@if($val->eid=='video')--> |
만약 확장변수명이 비디오가 아니라면
1 | <!--@if($val->eid!='video')--> |
만약 확장변수명 비디오에 값이 있다면
1 | <!--@if($document->getExtraEidValue('video'))--> |
목록에서 확장변수명 video인 값
1 | {$document->getExtraEidValue('video')} |
확장변수에 youtu 라는 내용이 들어가 있다면
1 2 | {@ $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
배포하시면 안될까요? 꼭 필요한데 개발자가 아니라서 ㅠ.ㅠ
제목 | 글쓴이 | 날짜 |
---|---|---|
사랑비Bgm 플레이기 설치하고 제어하기
[5]
![]() | 팔공산 | 2008.11.22 |
OpenSSL 웹에 직접 구축하기
[2]
![]() | 워리도꾸 | 2016.02.16 |
스케치북 갤러리 제목에 카테고리 추가하기. [1] | 보보2 | 2017.07.17 |
XE 공식(?) 버튼 삽입하기 [다들 알지도 모르겠네요,,] [77] [1] | 웹엔진 | 2011.02.28 |
글등록시 포인트차감으로 등록불가 설정시 개별설정이 아닌 전체 설정 기준으로만 사용할 경우는 적용 안 되는 버그 수정법 | sejin7940 | 2017.08.23 |
폰갭 자기 전화번호 추출 | 한꼬마 | 2017.08.14 |
폰갭 버전 업데이트 후 push 안되시는 분들께.. | 한꼬마 | 2017.08.09 |
포인트 적립 횟수 일별 제한하기 (게시글 및 댓글 작성시) | Redback | 2017.06.18 |
다음 우편번호 5자리 적용
[1]
![]() | 뒤늦게입문 | 2017.03.15 |
HTML, CSS 등 코드를 깔끔하게 정렬
[6]
![]() | 참치.k | 2013.01.11 |
SASS? CSS확장판 | 키큰아이 | 2017.05.09 |
사용자정의에서 URL형, email형, textarea 형등에서도 기본값 인식하게 하려면 | sejin7940 | 2017.04.25 |
비밀글에 대해서도 썸네일이미지는 출력되도록 하고 싶으면 | sejin7940 | 2017.04.12 |
제로보드 사용시 아이프레임의 크기를 내용에 따라 바꿔주는 스크립트 [7] | 쿨리안 | 2003.06.28 |
게시글 확장변수 순으로 정렬하기 (2010.01.18 13:18 수정) [24] | June Oh | 2010.01.11 |
인기글 [1] | kdp | 2015.05.07 |
[주옥시리즈]최신글,인기글 위젯에 댓글수 표기하기 [1] | socialskyo | 2013.10.01 |
.htaccess 파일 관련 팁(웹 사이트 퍼포먼스 향상 및 트래픽 절감 효과)
[21]
![]() | 서시빈목 | 2013.10.22 |
압축 풀어 설치했던 XE를 git으로 변환하기 [6] | 기진곰 | 2015.02.25 |
반응형 기본 개념 | Ansi™ | 2017.02.27 |
진심으로 감사드립니다.-이렇게 해 주시기가 쉽지 않는다는걸 잘 알고 있는 XE의 한 마니아로서 다시한번 감사드립니다.