웹마스터 팁
특정 카테고리의 최근 이미지 출력 위젯
2010.04.28 11:57
이글은 [묻고 답하기]에 질문 올라 온것을 [자유게시판]에 답을 달아 드렸는데 나름데로 필요한분이 있으실거 같아 글을 다시 정리하여 이곳에 올립니다.
위젯의 용도 : 분류(카테고리)로 분류 한 게시물에서 특정 카테고리의 글에서 이미지만 추출하여 보여주는 위젯입니다.
질문자의 의도
사이트를 운영하면서 홍보성 글을 접수 받는 게시판이 있습니다. 이 곳에 회원이 글을 작성하면 관리자가 심사하여 메인화면에 위젯을 이용하여 이미지가 나타나도록 하고자 합니다.
해결방법)
1. 접수 게시판을 만들고, 승인난것은 광고 게시판으로 글을 이동 하면 됩니다. -> 문제점. 확장변수가 있는경우 확장 변수가 이동 하지 않습니다.
2. 확장 변수를 별도로 하나 추가하여 변수값 [요청], [보류], [승인] 의 라디오 버튼으로 만들고, 이 확장 변수중 [승인] 인것만 추출하는 방법 -> 확장 변수의 특성상 코드가 복잡해집니다.
3. [승인] 여부를 카테고리로 처리 하는 방법.
카테고리를 [요청],[거부],[승인] 으로 구분하여 만듭니다. 회원은 카테고리를 [요청]으로 하여 글을 작성합니다.
-> 회원이 [거부].[승인]을 선택하지 못하도록해야 하는데 이것은 관리자 화면에서 카테고리 만들때 옵션으로 들어있으므로 쉽게 구성 가능합니다.
관리자는 글을 [수정]하여 카테고리를 [승인]으로 변경하는 것으로 [승인]을 결정 합니다.
여기서는 3번의 방법에 대하여 정리 합니다.
1) 일단 분류를 만듭니다. [요청], [보류], [승인]
2) 위젯의 생성.
이것을 위하여 이미 사용중인 [최근 이미지] 위젯을 사용하기로 합니다.
그런데 구조적으로 변경해야 하므로 기존에 사용하던 [최근 이미지]위젯이 변경 됩니다. 따라서 코드 수정으로 인하여 다른 페이지에서 사용하고 잇는 [최근 이미지]가 오 작동 일어나게 됩니다. 더구나 위젯을 업데이트 라도 하면 수정한 코드를 다시 수정해야하는 불편이 있습니다. 그래서 기존 [최근 이미지]위젯을 복사해서 사용하도록 합니다.
1. 위젯 폴더의 newest_images 폴더를 복사하여 newest_images_cat 라는 폴더명으로 만듭니다.
스킨은 [최근 이미지]에서 사용하는 스킨을 그대로 사용하면 됩니다. 스킨을 건드리는 것이 아니므로...
2. 새로 복사하여 만든 newest_images_cat 폴더에 보면
newest_images.class.php 파일이 있는데 이것을 newest_images_cat.class.php 로 이름을 바꿉니다.
3. 이 파일을 오픈 하여 79번줄을 아래와 같이 추가, 수정 합니다.
$obj->category_srl = (int)$args->category_srl;
$files_output = executeQueryArray("widgets.newest_images_cat.getOneFileInDocumentCat", $obj);
* category_srl 은 위젯 생성시 입력하는 카테고리 srl 의 숫자값입니다.
* widgets.newest_images_cat.getOneFileInDocumentCat 는 입력 받은 카테고리값을 가진 게시글만 추출하는 쿼리 입니다.
4. 9번줄 class newest_images extends WidgetHandler { 를 아래 처럼 바꿉니다.
class newest_images_cat extends WidgetHandler {
5. newest_images_cat 폴더속에 queries 폴더를 만듭니다.
첨부한 getOneFileInDocumentCat.xml 파일을 이 폴더속에 업로드 합니다.
* 이파일은 주어진 $obj->category_srl (원하는 카테고리)값을 받아 그 카테고리에 해당하는 게시물 목록을 구하는 쿼리 입니다.
6. newest_images_cat 폴더속의 conf 폴더속의 info.xml 파일을 오픈하여
3번줄에 <title xml:lang="ko">최근 이미지 출력</title> 을
<title xml:lang="ko">카테고리 이미지 출력</title> 정도로 바꿉니다. 기타는
원하시는데로 수정합니다. 이 이름은 위젯 리스트에 나타나는 이름입니다.
7. 이 파일 안에 대략 288번줄 (대상모듈을 선택하는 부분 아래)에 아래 코드를 추가합니다.
<var id="category_srl">
<name xml:lang="ko">대상 카테고리 번호</name>
<type>text</type>
<description xml:lang="ko">선택하신 카테고리에 등록된 글을 대상으로 합니다.</description>
</var>
이제 위젯 코드를 생성하시면 됩니다. 물론 추출을 원하는 카테고리(여기서는 [승인])의 srl 값을 알고 있어야겠죠.
그러면 게시판에서 카테고리가 [승인]이라고 결정한것만 위젯이 추출하여 출력하게 됩니다.
기존의 위젯을 활용하엿고, 별도로 만들었기때문에 위젯을 업그레이드 하더라도 이 위젯은 별도로 작동하므로 차후 아무런 문제가 없으실겁니다. 참고로 원하는 카테고리의 category_srl 값을 알아내는 방법은 주소바를 보시면 나타나므로 쉽게 찾으실수 있습니다.
첨부파일은 이 위젯의 전체 파일 입니다.
이 게시판을 위하여 사용하기 딱 좋은 게시판은 탭형 게시판, 게시판 EX 입니다. 상단에 카테고리별로 구분해 주므로 관리하시기 편하실겁니다. 카테고리 만들고 지우는건 게시글에 영향이 없고, 위젯도 별도로 제작하였기때문에 기존 홈페이지에 영향이 없으므로 한번 사용해 보세요.
위젯의 스킨코드는 건들지 않았으므로 최근 이미지 위젯 스킨은 무엇이든지 skin 폴더에 추가만 하면 다 사용할수 있습니다.
이상 앙띠 이었습니다.
약간만 은용하시면 좋은 위젯이 뒬수도 있겠네요.
* 꼭 쓰고나면 오타가 보이네요. 쓸때는 보이지도 않더만...
댓글 3
-
주하니
2010.04.28 17:36
-
배워서남준다
2011.02.13 01:02
최근게시글중에서 선택한 카테고리만 뽑아오려면...
먼저 info.xml 에 7번 코드를 추가합니다. 그리고...
// 분류 구함...if($output->toBool() && $output->data) {foreach($output->data as $key => $val) {$category_lists[$val->module_srl][$val->category_srl] = $val;if($val->category_srl == $args->category_srl) $obj->category_srl = $args->category_srl;}}
빨간색 글씨 한줄을 추가하면 됩니다. 카테고리 번호가 일치하는 경우, 해당 카테고리를 출력하고, 다르면, 일반목록에서 게시글을 가져옵니다. -
스니커즈.
2013.06.07 21:17
좋은 팁이네요!
제목 | 글쓴이 | 날짜 |
---|---|---|
간혹 DB오류메시지 뜨고 접속 안되는 경우 [1] | 다크진 | 2013.06.19 |
중복 글등록을 방지하는 간단한 팁 | 다크진 | 2013.06.18 |
XE 게시판에 소셜댓글 라이브리 적용하기 [6] [1] | 미자503 | 2011.01.26 |
문서 작성시 기본 카테고리 선택 | Summer | 2013.06.17 |
가입폼 글자 수 입력 제한 수정 방법 입니다. (검색해도 어디에도 되는게 없어서 올립니다.) [7] | easeE | 2012.05.03 |
게시판에 specialist,officialis 같은 단어를 쓰면 작동이 안될 때 [2] | Summer | 2013.06.13 |
글쓰기 안되고 관리자만 글쓰기가 될때 해결법 [2] | 소푸 | 2013.06.12 |
apm7 -> ubuntu 아파치 서버이전후 http500 에러가 날때 [1] | sweetchip_ | 2012.12.26 |
XE 자료실에 쉬운설치되게 등록하기 [1] | 도라미 | 2013.06.09 |
게시판에 갤러리 자동 삽입 [1] | 강지우588 | 2013.06.04 |
특정 카테고리의 최근 이미지 출력 위젯 [3] | 앙띠2 | 2010.04.28 |
레이아웃 구상에 도움을 주는 사이트 [2] | WhoamI | 2013.06.06 |
-추가- 당신의 XE 기반 홈페이지를 훅가게 하는 방법 4가지 [26] | 老姜君 | 2009.10.08 |
XE 1.7 + 도쿠위키 Weatherwax RC1 세션 및 그룹 연동 [20] | ay | 2013.04.18 |
♥ 간단하게 사이트 현재 접속자 수 표기하는 방법 ♥ [5] | 다크진 | 2013.05.28 |
페이지.. onmouseover... [2] | skeofk | 2013.05.28 |
XE 사용하기 - 동영상 강좌 [36] | 선우(善友) | 2010.05.05 |
확장변수 폼 디자인 하기 [14] | Diver | 2009.06.21 |
XE를 처음 설치하면 기본적으로 필요한 자료들 - 초보자용 V2013-05-20 [11] | Treasurej | 2012.03.26 |
알림센터 사용환경 수집 무력화하기 [14] | CMD | 2013.05.10 |
좋은 위젯 자료 감사합니다. ^0^
정말 큰 도움이 됐습니다.