웹마스터 팁

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


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


질문자의 의도

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


해결방법)

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


이상 앙띠 이었습니다.

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

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

제목 글쓴이 날짜
확장변수 숫자(화폐) 콤마 표시하기 (sketchbook 스킨) file 라싸 2012.08.12
일반 페이지(ARTICLE) 등에서 이미지 리사이징 제거. [1] 무얼까 2012.08.12
스팸공동대응 api 모듈 지우기 [1] SCAC 2012.08.12
특정 확장변수값이 포함된 글의 총 개수를 출력하는 함수 [3] sejin7940 2012.08.07
페이지 타입 바꾸는 방법 (문서, 위젯, 외부페이지) [5] file 빛의바다 2012.07.31
모바일에서 유투브 동영상 크기 300px고정 [28] 패시브 2012.07.31
XE코어 업데이트(판올림) 정확한 방법 [12] 카이닉스 2012.07.30
요즘 만들고 있는 사이트에 적용한 것(모바일 확장변수) [4] 유니눅스 2012.07.30
소셜로그인 이메일 입력시 SSL 사용 패시브 2012.07.27
php버전이 변경되어 deprecated 오류가 나올때 [2] 오리진소프트 2012.07.27
중국어(zh-CN) 포함한 다국어시 페이지모듈 버그 해결법 [1] sejin7940 2012.07.26
작성 글 보기에서 특정 모듈의 글 안나타나게 하기 SCAC 2012.07.21
모듈 자동 생성기 [ModuleCreater] v0.2 (다국어 지원 기능 추가) [28] file 택피 2012.07.20
본문 내부의 이미지를 썸네일화 시키지 못하는 버그 해결법 [11] sejin7940 2012.07.19
글쓰기 폼에 미리 기본 내용 입력 [24] 송동우 2012.07.18
인증메일을 gmail의 smtp로 보내기 [29] showjean 2012.07.17
IIS 7.5 + XE 업로드 용량 개선 방법 [1] file 류군 2012.07.16
IE7에서 관리자페이지->콘텐츠->문서 에서 일괄 삭제/이동/복사 등이 안 되는 경우 [1] sejin7940 2012.07.12
회원정보 페이지에 작성 댓글 보기 추가하기 [7] file 늘푸른이 2012.07.12
푸시알림 "유메시지" 지원 소스 및 그룹 메시지 지원합니다. [13] file 유키패드 2012.07.12