글내용에 설문조사 추가하기 > 그누4 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

글내용에 설문조사 추가하기 정보

글내용에 설문조사 추가하기

첨부파일

pollGnu4.zip (6.3K) 251회 다운로드 2006-09-30 23:54:36

본문

사이트에 전반적으로 넣어서 쓰는게 아니라.. 게시물마다 선택해서 넣는겁니다.

설문조사나 투표기능으로 이용하기 좋습니다.

(샘플은 http://www.alik.info/gnu/bbs/tb.php/alik/275 글 하단 참고)

0. 본팁은 게시판의 여유필드중에 wr_6 을 사용합니다.

1. 첨부화일을 압출풀면 나오는 3개의 화일을 그누보드의 bbs 폴더에 풀어넣어주세요.

2. 스킨의 view.skin.php 에서 투표결과나 투표입력창이 보여지기 원하는 곳에...
예를 들면 <?=$view[content];?> 의 밑이라던가....에

<? include "pollView.php"; ?> 라고 추가해주세요.

3. 스킨의 write.skin.php 에서 투표항목을 입력하는 부분이 들어가길 원하는 곳에 다음과 같에 넣어주세요.
예를 들면... </textarea><br /> 밑줄이라던가...에

<? include "pollWrite.php"; ?> 라고 추가해주세요.

 4. 스킨의 write.update.skin.php 의 내용은 다음과 같습니다. (이 화일이 아예 없으면 아래 내용으로 저장하시고 이미 있으면 아래 내용을 기존 화일에 추가하세여)

<?
//poll 관련
$wr_parent = 0 - $wr_id;
$do_poll = $_POST['wr_6']; //투표작성 여부
$pollReset = $_POST['pollReset']; //투표 새로작성 여부
$pollOptions = $_POST['pollOptions'];
if ($_POST['multiPoll'] == 1) $multipollno = $_POST['multiPollNo']; else $multipollno = "noMultiPoll"; //다중투표 허용 & 갯수
if ($_POST['PollTime'] < 1) $_POST['PollTime'] = 30;
$ca_name = strtotime("+".$_POST['PollTime']." days"); //투표 기간
$REMOTE_ADDR = $_POST['allowRePoll']; //재투표 허용 여부
//$REMOTE_ADDR = $_SERVER['REMOTE_ADDR']; //아이피
$re_poll = $_POST['re_poll']; //재투표 여부

//수정
if($w == "u" && $wr_id) {
 $pollCnt = 0;
 if ($do_poll != "1") {
  @mysql_query("delete from $write_table where wr_parent='$wr_parent'");
 } else {
  if ($pollReset == "1") {
  @mysql_query("delete from $write_table where wr_parent='$wr_parent'"); 

  $wr_subject = "pollOption";
  for ($i=0; $i<count($pollOptions); $i++) {
    if ($pollOptions[$i] != "") {
    $wr_content = htmlspecialchars($pollOptions[$i]);
    //투표항목 입력
    @mysql_query("insert into $write_table (wr_parent,mb_id,wr_subject,wr_password,wr_content,ca_name,wr_ip, wr_is_comment) values ('$wr_parent','$member[mb_id]','$wr_subject','$multipollno','$wr_content','$ca_name','$REMOTE_ADDR', '2')");
    $pollCnt ++;
    }
  }
  if($pollCnt == 0) {
    $do_poll = '';
  }
  } else {
  @mysql_query(" update $write_table set wr_ip='$REMOTE_ADDR', ca_name='$ca_name', wr_password='$multipollno' where wr_parent='$wr_parent' and wr_subject='pollOption' ");
  }
 }
 @mysql_query("update $write_table set wr_6='$do_poll' where wr_id='$wr_id'");
//답변 or 새글
} elseif(($w == "r" || $w == "w" || !$w) && $do_poll == "1") {
 $pollCnt = 0;
 $wr_subject = "pollOption";
 for ($i=0; $i<count($pollOptions); $i++) {
  if ($pollOptions[$i] != "") {
  $wr_content = htmlspecialchars($pollOptions[$i]);
  //투표항목 입력
  @mysql_query("insert into $write_table (wr_parent,mb_id,wr_subject,wr_password,wr_content,ca_name,wr_ip, wr_is_comment) values ('$wr_parent','$member[mb_id]','$wr_subject','$multipollno','$wr_content','$ca_name','$REMOTE_ADDR', '2')");
  $pollCnt ++;
  }
 }

 if($pollCnt == 0) {
  $do_poll = '';
 }
 @mysql_query("update $write_table set wr_6='$do_poll' where wr_id='$wr_id'"); 
}
//////////////
?>

5. 스킨의 delete.skin.php 의 내용은 다음과 같습니다. (이 화일이 아예 없으면 아래 내용으로 저장하시고 이미 있으면 아래 내용을 기존 화일에 추가하세여)

<?php
 $tmpWrID = (0 - $wr_id);
  sql_query(" delete from $write_table where wr_parent = '$tmpWrID' ");
?>

6. 스킨의 delete_all.skin.php 의 내용은 다음과 같습니다. (이 화일이 아예 없으면 아래 내용으로 저장하시고 이미 있으면 아래 내용을 기존 화일에 추가하세여)

<?php
for ($i=count($tmp_array)-1; $i>=0; $i--)
{
 $tmpWrID = (0 - $tmp_array[$i]);
  sql_query(" delete from $write_table where wr_parent = '$tmpWrID' ");
}
?>

7. 목록에 표시해주고 싶으시면..
스킨의 list.skin.php 에서...

        echo "<a href='{$list[$i][href]}'>"; 의 윗줄에 아래의 내용을 넣으세요....

  if($list[$i][wr_6]) {
  $writeTable = $g4[write_prefix] . $bo_table;
  $pollNo = ( 0 - $list[$i][wr_id] );
  $REMOTE_ADDR = $_SERVER['REMOTE_ADDR'];
  $poll_chk = mysql_fetch_row(mysql_query("select wr_id from $writeTable where wr_parent='$pollNo' and wr_subject='pollAnswer' and ((mb_id='$member[mb_id]') or (wr_ip='$REMOTE_ADDR')) limit 1"));
  $pollIcon = "<span title='설문조사 글 - 아직 참여하지 않으셨습니다'> <b>P</b></span> ";
  if ($poll_chk[0]) {
    $pollIcon = "<span title='설문조사 글 - 이미 참여하셨습니다'>P</span> ";
  }   
  echo $pollIcon;
  }


끝~

참고1 : 투표결과를 나타내는데 사용된 그래프는 무화님의 소스입니다. ^^ (링크는 주석 참고)
참고2:  설문주제는 직접 글의 하단에 입력하면 되는거죠....

시간되시면 http://www.alik.info 에서 다른 팁들도 적용해보시길...^^
추천
9

댓글 15개

멋진 팁 감사합니다.

근데 설문조사 제목 입력 부분이 따로 있었으면 더 좋을 것 같은데요

따로 제목 입력 부분 넣을 수 있게 업그레이드 해주실 순 없나요?

적용 : http://www.shim4u.net/gnu/bbs/board.php?bo_table=freeboard&wr_id=765
전체 3,313 |RSS
그누4 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT