웹마스터 팁

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


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


질문자의 의도

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


해결방법)

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


이상 앙띠 이었습니다.

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

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

제목 글쓴이 날짜
게시판 목록에서 바로 첨부파일 다운로드하기 [6] file 요다빈치 2012.03.13
phpmyadmin 로그인시 아래와 같은 에러나올경우 해결방법 [1] file 때린데 또때려 2012.03.12
ie9에서 파일첨부버튼이 먹통일때.. (1.4.5.10 버전) 엔키오 2012.03.07
운영하던 사이트의 도메인 주소를 변경했을때 기존 사이트의 이미지들이 엑박이 뜰때 해결방법 [4] 졸라맨 2012.03.05
제로보드 1.5 이상 게시판에 페이스북 댓글 플러그인 설치법 [1] 줄루™ 2012.03.05
ssh같은거 필요없이 편하게 XE 설치하기. [13] file 재훈군 2012.03.04
업데이트했는데 관리메뉴중 일부가 안보일때 [2] 요술봉 2012.03.04
게시판 본문에 글쓴이 전화번호 추출하여 보이기 늘푸른이 2012.03.03
ie9에서 회원가입폼 클릭이 안될때 엔키오 2012.03.01
XE Core 압축파일(tar.gz)을 올려 서버상에서 압축풀기 [2] 뚱뚱이1 2012.03.01
로봇에 의하여 무한 회원가입이 발생할 때 제가 처리하는 방법 [3] 별님왕자 2012.02.27
외부페이지를 생성해서 사용하면 무척 빠릅니다. [2] 퍼니엑스이 2012.02.27
모바일 페이지가 스마트폰에서 가로폭이 넓게 나올경우의 팁 [2] 카워시 2012.02.27
회원 가입 시 IP 중복 검사 [30] file CMD 2012.02.24
XE 레이아웃에 로고 넣을때 주의할점!!! [1] JHRunning 2012.02.23
nginx rewrite 팁 병든natura 2012.02.21
JwPlayer.swf 스킨 변경하기 [12] file 귀여운유니 2012.02.20
확장변수 중 전화번호 양식으로 write_form.html 에서 script로 제어시 sejin7940 2012.02.16
관리자메뉴에 사이트메뉴 안나오시는분 수정 하세요!! [5] file 박인영647 2012.02.16
XE에서 메일기능이 작동하지 않을때 애호가 2012.02.16