웹마스터 팁

이글은 [묻고 답하기]에 질문 올라 온것을 [자유게시판]에 답을 달아 드렸는데 나름데로 필요한분이 있으실거 같아 글을 다시 정리하여 이곳에 올립니다.


위젯의 용도 : 분류(카테고리)로 분류 한 게시물에서 특정 카테고리의 글에서 이미지만 추출하여 보여주는 위젯입니다.


질문자의 의도

사이트를 운영하면서 홍보성 글을 접수 받는 게시판이 있습니다. 이 곳에 회원이 글을 작성하면 관리자가 심사하여 메인화면에 위젯을 이용하여 이미지가 나타나도록 하고자 합니다.


해결방법)

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 폴더에 추가만 하면 다 사용할수 있습니다.


이상 앙띠 이었습니다.

약간만 은용하시면 좋은 위젯이 뒬수도 있겠네요.

* 꼭 쓰고나면 오타가 보이네요. 쓸때는 보이지도 않더만...

제목 글쓴이 날짜
확장변수이용시 숫자 일경우 정렬하기 팁 푸하라 2012.02.02
XE 1.5 에서 확장변수 검색이 안 되시는 경우 해결책 [5] sejin7940 2012.01.24
확정변수 로 프린트 페이지 꾸미기(/print_page.html) 세상의지배자 2011.12.26
코어 1.5.1에서 회원목록에 성별아이콘 쓰기(수정) 늘푸른이 2011.12.10
코어 1.5.1에서 회원정보에 성별아이콘 쓰기 file 늘푸른이 2011.12.10
Xe 1.5.1로 사이트 꾸미기 part 1 [25] file 황비 2011.12.04
관리툴 회원관리에서 확장변수로 검색 시 숫자 이외 검색불가 해결 방법 카리브 2011.10.10
특정 확장변수를 로그인한 회원에게만 보이게 하기 [3] 비밀얌 2011.09.17
계시판 확장변수에 대하여 여쭤봅니다. [1] 마지막드론 2011.08.14
게시판에 회원확장변수정보 받아서 표시하기 [3] burster 2011.03.26
확장변수 - 주소입력 받을 시 안내문구 출력 [2] 반디소리 2011.02.24
XE 공식 게시판에 (다운로드) 같은 '임의목록' 집어 넣기 (확장변수x) [1] file 999 2010.12.30
확장변수(textarea)에서 html 사용하기 [3] 하늘종 2010.11.01
게시판에 사전질문 넣기 특히 확장 변수 없는 지식in 게시판 - 초보자용 [3] file THEOTHERS 2010.08.07
특정 카테고리의 최근 이미지 출력 위젯 [3] file 앙띠2 2010.04.28
확장변수 사용 (전화번호) 사용 예제 - 참고용 [2] 무대포2 2010.03.17
게시판확장변수를 이미지로 나타내게 게시판스킨 수정법 [3] file 팔공산 2010.03.10
확장변수로 북마크 게시판 만들기 [2] 레디오빠 2010.01.31
[초보팁] 최근게시물 위젯에 확장변수 표시하기 [23] 오뎅궁물 2010.01.29
게시글 확장변수 순으로 정렬하기 (2010.01.18 13:18 수정) [24] June Oh 2010.01.11