기존 설문에서 신규 설문 추가가 잘 안됩니다. 채택완료
기존 설문 poll에서 ->신규 Newpoll를 신규로 추가해서 해봤습니다.
설문페이지 자체가 인쿠르드 되지 않습니다.
아래는 문의글에 답변을 주신 분께서 알려 주신 코드로 해보았습니다만 뭔가 문제 가있을듯 합니다.
----- 추가 적인 코드 ----
lib/poll.lib.php 를 lib/newpoll.lib.php 하나 추가 하셔서 그대로 소스 카피 하시고
함수명을 Newpoll 이라고 셋팅 한 뒤에 맨 뒤에
기존 function poll($skin_dir='basic', $po_id=false)
변경 function poll($skin_dir='basic', $po_id=false, $nm=1)
로 함수 변경 하시고 하단에 include_once ($poll_skin_path.'/poll.skin.php'); 를 newpoll.skin.php 로 변경
후 실제 스킨에서 newpoll.skin.php 생성 후 기존 poll.skin.php 카피 완료 후
/head.php 에 include_once(G5_LIB_PATH.'/poll.lib.php'); 밑에 include_once(G5_LIB_PATH.'/newpoll.lib.php'); 삽입
호출하는 명령은
기존 에서
변경
처럼 뒤에 값을 추가 하고 그 값이 적용되어 읽혀지는 skin 안에 newpoll.skin.php 에서
답변 6개
답변에 대한 댓글 2개
댓글을 작성하려면 로그인이 필요합니다.
읽지 않으셔서 이쪽에 글 남겨드립니다.
기존
변경
와
스크립트
function fpoll_submit 함수 안에
var chk = false;
..생략 if (!chk) { 해당 영역을
var chk = false;
var nm = "";
var poll_name = "gb_poll"+nm;
for (i=0; i if (!chk) {
변경 하시고요.. /bbs/poll_update.php 안에 $gb_poll = isset($_POST['gb_poll']) ? preg_replace('/[^0-9]/', '', $_POST['gb_poll']) : 0;
해당 영역을 $poll = $_POST['gb_poll'].$_POST['nm']; $gb_poll = isset($poll) ? preg_replace('/[^0-9]/', '', $poll) : 0;
이러게 변경하니 됩니다.
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
newpoll.lib 신규 추가하고 알려주신 내용을 반영한 소스 내용 ------>
// 설문조사 //function poll($skin_dir='basic', $po_id=false, $nm=1) function Newpoll($skin_dir='basic', $po_id=false, $nm=1) { global $config, $member, $g5, $is_admin;
// 투표번호가 넘어오지 않았다면 가장 큰(최근에 등록한) 투표번호를 얻는다 if (!$po_id) { $row = sql_fetch(" select MAX(po_id) as max_po_id from {$g5['poll_table']} where po_use = 1 ", false); $po_id = isset($row['max_po_id']) ? $row['max_po_id'] : 0; }
if(!$po_id) return;
if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) { if (G5_IS_MOBILE) { $poll_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/poll/'.$match[1]; if(!is_dir($poll_skin_path)) $poll_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/poll/'.$match[1]; $poll_skin_url = str_replace(G5_PATH, G5_URL, $poll_skin_path); } else { $poll_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/poll/'.$match[1]; $poll_skin_url = str_replace(G5_PATH, G5_URL, $poll_skin_path); } //$skin_dir = $match[1]; } else { if (G5_IS_MOBILE) { $poll_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/poll/'.$skin_dir; $poll_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/poll/'.$skin_dir; } else { $poll_skin_path = G5_SKIN_PATH.'/poll/'.$skin_dir; $poll_skin_url = G5_SKIN_URL.'/poll/'.$skin_dir; } }
$po = sql_fetch(" select * from {$g5['poll_table']} where po_id = '$po_id' and po_use = 1 ");
ob_start(); include_once ($poll_skin_path.'/newpoll.skin.php'); $content = ob_get_contents(); ob_end_clean();
return $content; }
-----> 설문조사 불러오는 부분
설문조사 헤드
상단10 상단20 상단30
----------------------
-----------------------
답변에 대한 댓글 3개
호출이 되나요?
함수 자체를 호출하지 못하고 include 하지 않으면 그러면 그냥 Newpoll 함수를 poll.lib.php 맨 아래에 추가 하세요..
기존 function poll( 끝난 뒤에 functino Newpoll( 해서 그냥 poll.lib.php 를 가져오는게 나을것같네요
댓글을 작성하려면 로그인이 필요합니다.
1. 설문페이지 자체가 인쿠르드 되지 않습니다.
=> 모든 include 되는 영역이나 define 한 파일 모두 추가 작업 하셔야 합니다.
2. 소스 코드
기존 function poll($skin_dir='basic', $po_id=false)
변경 function Newpoll($skin_dir='basic', $po_id=false, $nm=1)
=> 함수 명을 추가 해서 장착하세요.
함수는 기존과 동일하게 poll 인데 Newpoll 을 호출하니 당연히 호출할 대상이 없고..그러면 동작하지 않고 오류를 일으킬겁니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인

shop.head.php 에 <?php echo poll('shop_basic'); // 설문조사 ?> 이거를 <?php echo poll('shop_basic', '2', '1'); // 설문조사 ?>, <?php echo poll('basic', '2', '2'); // 설문조사 ?> 이러게 변경했구요...
/lib/poll.lib.php 에서 function poll($skin_dir='basic', $po_id=false) 이거를 function poll($skin_dir='basic', $po_id=false, $nm='1') 이러게 변경하고
각각 skin/poll/shop_basic과 basic 에 있는 poll.skin.php 에서
<input type="radio" name="gb_poll" value="<?php echo $i ?>" id="gb_poll_<?php echo $i ?>">
<label for="gb_poll_<?php echo $i ?>">
를
<input type="radio" name="gb_poll<?php echo $nm;?>" value="<?php echo $i ?>" id="gb_poll<?php echo $nm;?>_<?php echo $i ?>">
<label for="gb_poll<?php echo $nm;?>_<?php echo $i ?>">
이러게 동일하게 변경 처리 외에는 한 게 없네요