XpressEngine과 관련된 팁이나 강좌를 소개하는 게시판입니다.
자신이 생각하기에는 아주 사소한 내용이라도 누군가에게는 큰 도움이 될 수 있습니다.
XE 원 소스 코드를 수정하는 팁은 당장은 도움이 될지 몰라도 결국 XE 업그레이드를 하지 못하게 되니 팁을 올리시는 분이나 팁을 적용하시는 분이나 모두 주의 부탁드립니다.

이와 비슷한 내용의 글을 이미 Simulz님께서 올린 적이 있습니다. 하지만, 현재 1.0.3 버전과는 차이가 있어서 다시 내용을 정리해서 올립니다.

참고로 이 글은 제 블로그에 올렸던 글을 수정해서 올립니다.


제로보드XE의 설문조사 모듈은 기본적으로 로그인하지 않은 상태에서도 설문에 참여할 수 있기 때문에 때로는 이것이 문제가 될 수도 있습니다. 그래서 로그인하지 않은 사용자는 설문조사에 참여할 수 없도록 하기 위해 조금 손을 봐줄 필요가 있습니다.

우선 modules/poll/poll.model.php 파일에 있는 isPolled() 함수를 수정합니다.

modules/poll/poll.model.php
        function isPolled($poll_srl) {
            $args->poll_srl = $poll_srl;

            if(Context::get('is_logged')) {
                $logged_info = Context::get('logged_info');
                $args->member_srl = $logged_info->member_srl;
            } else {
                $args->ipaddress = $_SERVER['REMOTE_ADDR'];
            }
            $output = executeQuery('poll.getPollLog', $args);
            if($output->data->count) return true;
            return false;
        }

이렇게 되어 있는 함수를

modules/poll/poll.model.php
        function isPolled($poll_srl) {
            $args->poll_srl = $poll_srl;

            if(Context::get('is_logged')) {
                $logged_info = Context::get('logged_info');
                $args->member_srl = $logged_info->member_srl;
            }
            $args->ipaddress = $_SERVER['REMOTE_ADDR'];

            $output = executeQuery('poll.getPollLog', $args);
            if($output->data->count) return true;
            return false;
        }

와 같이 25, 26, 27번째 줄을 수정합니다. 이 함수를 수정하는 것은 실제로 로그인하지 않은 사용자가 설문조사에 참여하지 못하도록 하는 것과는 큰 관계는 없지만, 이렇게 함으로 중복 투표를 막을 수 있기 때문에 수정하는 것입니다.

그런 다음, 같은 파일의 getPollHtml() 함수를 수정합니다.

modules/poll/poll.model.php
            if($poll->stop_date > date("Ymd")) {
                if($this->isPolled($poll_srl)) $tpl_file = "result";
                else $tpl_file = "form";
            } else {
                $tpl_file = "result";
            }

이렇게 되어 있는 부분을

modules/poll/poll.model.php
            if($poll->stop_date > date("Ymd")) {
                if($this->isPolled($poll_srl) or !Context::get('is_logged')) $tpl_file = "result";
                else $tpl_file = "form";
            } else {
                $tpl_file = "result";
            }

이와 같이 수정해줍니다.

이제 로그인하지 않은 사용자의 경우 설문조사 화면에서 결과 화면을 보여줌으로 결과적으로 로그인하지 않으면 설문조사에 참여할 수 없게 됩니다.

단, 이렇게 수정을 하면 모든 설문조사에 참여하고자할 때는 로그인을 해야합니다. 따라서, 경우에 따라 로그인하지 않은 사용자가 설문조사에 참여하도록 하기 위해서는 이렇게 수정해서는 안됩니다.

각각의 설문조사에서 로그인 사용자만 참여 가능하도록 설정하기 위해서는 DB 테이블 등을 수정해줘야 하기 때문에 현재로서는 별로 권하고 싶지 않습니다.


댓글 '3'

[레벨:14]띵야

2008.05.29 19:54:17
*.28.89.169

정말 요긴한 팁입니다.
저로서는 어떻게든 한명이라도 더 설문에 참여시켜야 하기 땜에 못 써 먹지만...^^;

[레벨:3]sugarkane

2008.05.29 22:20:34
*.239.133.36

누가 이것을 위젯화시켜주면 좋겠어요 ㅠ 설문 위젯에 옵션으로 선택하기 같이요...

[레벨:4]mooo

2008.05.29 23:04:42
*.183.64.139

제가 아는 한은, 코어의 설문조사 모듈을 수정하지 않고서는 이걸 위젯으로 만들 수 있는 방법은 없습니다. 나중에 개선되리라 생각합니다.
문서 첨부 제한 : 0Byte/ 10.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 구 동영상 매뉴얼 이동 [2] [레벨:30]zero 2009-09-14 53271
425 일정 기간이 지난 글에 코멘트 등록 제한 imagefile [3] [레벨:10]老姜君 2008-06-03 4899
424 1.0.3버전 외부 페이지 쿼리 스트링 붙일때 주의 하세요. [레벨:1]그라미 2008-06-03 4537
423 레이아웃에 스크립트를 이용한 화면을 띄우고 싶은 경우 [3] [레벨:3]dhseo 2008-06-03 5355
422 외부페이지 접근을 제로보드XE를 통해서만 접근을 허용 하고 싶다면 [9] [레벨:1]임기택924 2008-06-03 4954
421 웹용 색상코드표 기타 [레벨:3]푸른커튼 2008-06-03 4576
420 회원 가입시 admin이 가입 승인이후 동작시키도록 변경!! [1] [레벨:3]dhseo 2008-06-02 4591
419 가입시 웹마스터에게 가입했다는 메일 보내기. imagefile [4] [레벨:3]dhseo 2008-06-02 4727
418 본문글 하단 목록 옵션 처리하기 imagefile [4] [레벨:10]老姜君 2008-05-31 4690
417 제로보드4 스타일 이전글/다음글 구현하기 (라르게덴님 팁 재탕) imagefile [12] [레벨:10]老姜君 2008-05-30 5129
416 확장변수 다중선택에서 체크박스의 선택개수를 제한하기 imagefile [5] [레벨:6]우야꼬 2008-05-30 4327
415 제로보드와 플래시 게시판 연동해서 사용하기 [5] [레벨:1]Park Ki-tae 2008-05-30 6295
» 설문조사에서 로그인하지 않은 사용자는 투표하지 못하도록 수정하기 [3] [레벨:4]mooo 2008-05-29 5400
413 이전글, 다음글 얻기 [24] [레벨:15]라르게덴 2008-05-29 5063
412 오른쪽 마우스 사용 금지하기 [6] [레벨:2]Fursys 2008-05-28 4602
411 스크롤바색상 변하게 imagefile [3] [레벨:2]김민787 2008-05-28 4753
410 이미지 삽입후 이미지 위에 노란색 박스 사라지게하는 법 [3] [레벨:3]dhseo 2008-05-28 3781
409 자바스크립트로 브라우저 타이틀 바꾸기 [4] [레벨:2]Geun 2008-05-26 5180
408 제로보드 XE에서 파비콘(favicon) 만들기 imagefile [6] [레벨:1]tindrum 2008-05-26 5778
407 IE6 한글도메인에 ZBXE 때문에 속 썩이시는 분 [1] [레벨:2]햇살과수원 2008-05-26 4719
406 배경음악 넣기(ZBXE를 기본폴더에 설치한 경우) [4] [레벨:30]백성찬 2008-05-26 4713



XE Login

OpenID Login