First Commit

This commit is contained in:
2026-05-27 11:46:44 +09:00
commit b898b57d38
2351 changed files with 198344 additions and 0 deletions

View File

@ -0,0 +1,65 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$poll_skin_url.'/style.css">', 0);
?>
<form name="fpoll" action="<?php echo G5_BBS_URL ?>/poll_update.php" onsubmit="return fpoll_submit(this);" method="post">
<input type="hidden" name="po_id" value="<?php echo $po_id ?>">
<input type="hidden" name="skin_dir" value="<?php echo urlencode($skin_dir); ?>">
<aside id="poll">
<header>
<h2><i class="fa fa-bar-chart" aria-hidden="true"></i> 설문조사</h2>
<?php if ($is_admin == "super") { ?><a href="<?php echo G5_ADMIN_URL ?>/poll_form.php?w=u&amp;po_id=<?php echo $po_id ?>" class="btn_admin">설문조사 관리</a><?php } ?>
<p><?php echo $po['po_subject'] ?></p>
</header>
<ul>
<?php for ($i=1; $i<=9 && $po["po_poll{$i}"]; $i++) { ?>
<li><input type="radio" name="gb_poll" value="<?php echo $i ?>" id="gb_poll_<?php echo $i ?>"> <label for="gb_poll_<?php echo $i ?>"><?php echo $po['po_poll'.$i] ?></label></li>
<?php } ?>
</ul>
<footer>
<input type="submit" value="투표하기" class="btn btn_b02">
<a href="<?php echo G5_BBS_URL."/poll_result.php?po_id=$po_id&amp;skin_dir=".urlencode($skin_dir); ?>" target="_blank" onclick="poll_result(this.href); return false;" class="btn btn_b01">결과보기</a>
</footer>
</aside>
</form>
<script>
function fpoll_submit(f)
{
<?php
if ($member['mb_level'] < $po['po_level'])
echo " alert('권한 {$po['po_level']} 이상의 회원만 투표에 참여하실 수 있습니다.'); return false; ";
?>
var chk = false;
for (i=0; i<f.gb_poll.length;i ++) {
if (f.gb_poll[i].checked == true) {
chk = f.gb_poll[i].value;
break;
}
}
if (!chk) {
alert("투표하실 설문항목을 선택하세요");
return false;
}
var new_win = window.open("about:blank", "win_poll", "width=616,height=500,scrollbars=yes,resizable=yes");
f.target = "win_poll";
return true;
}
function poll_result(url)
{
<?php
if ($member['mb_level'] < $po['po_level'])
echo " alert('권한 {$po['po_level']} 이상의 회원만 결과를 보실 수 있습니다.'); return false; ";
?>
win_poll(url);
}
</script>

View File

@ -0,0 +1,113 @@
<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$poll_skin_url.'/style.css">', 0);
?>
<div id="poll_result" class="new_win">
<h1 id="win_title"><?php echo $g5['title'] ?></h1>
<div class="new_win_con">
<span class="poll_all">전체 <?php echo $nf_total_po_cnt ?>표</span>
<section id="poll_result_list">
<h2><?php echo $po_subject ?> 결과</h2>
<ol>
<?php for ($i=1; $i<=count($list); $i++) { ?>
<li>
<span><?php echo $list[$i]['content'] ?></span>
<span class="poll_percent"><?php echo number_format($list[$i]['rate'], 1) ?> %</span>
<div class="poll_result_graph">
<span style="width:<?php echo number_format($list[$i]['rate'], 1) ?>%"><strong class="poll_cnt"><?php echo $list[$i]['cnt'] ?> 표</strong></span>
</div>
</li>
<?php } ?>
</ol>
</section>
<?php if ($is_etc) { ?>
<section id="poll_result_cmt">
<h2>이 설문에 대한 기타의견</h2>
<?php for ($i=0; $i<count($list2); $i++) { ?>
<article>
<header>
<h2><?php echo $list2[$i]['pc_name'] ?><span class="sound_only">님의 의견</span></h2>
<?php echo $list2[$i]['name'] ?>
<span class="poll_datetime"><?php echo $list2[$i]['datetime'] ?>
<span class="poll_cmt_del"><?php if ($list2[$i]['del']) { echo $list2[$i]['del']."<i class=\"fa fa-times-circle\" aria-hidden=\"true\"></i><span class=\"sound_only\">삭제</span></a>"; } ?></span></span>
</header>
<p>
<?php echo $list2[$i]['idea'] ?>
</p>
</article>
<?php } ?>
<?php if ($member['mb_level'] >= $po['po_level']) { ?>
<form name="fpollresult" method="post" action="./poll_etc_update.php" onsubmit="return fpollresult_submit(this);" autocomplete="off">
<input type="hidden" name="po_id" value="<?php echo $po_id ?>">
<input type="hidden" name="w" value="">
<input type="hidden" name="skin_dir" value="<?php echo urlencode($skin_dir); ?>">
<?php if ($is_member) { ?><input type="hidden" name="pc_name" value="<?php echo get_text(cut_str($member['mb_nick'],255)); ?>"><?php } ?>
<h3><?php echo $po_etc ?></h3>
<div class="tbl_frm01 tbl_wrap">
<table id="poll_result_wcmt">
<tbody>
<?php if ($is_guest) { ?>
<tr>
<td><input type="text" name="pc_name" id="pc_name" class="frm_input full_input required" required placeholder="이름(필수)"></td>
</tr>
<?php } ?>
<tr>
<td><input type="text" name="pc_idea" id="pc_idea" class="frm_input full_input required" required maxlength="100" placeholder="의견(필수)"></td>
</tr>
<?php if ($is_guest) { ?>
<tr>
<td><?php echo captcha_html(); ?></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<div class="btn_confirm">
<input type="submit" class="btn_submit" value="의견남기기">
</div>
</form>
<?php } ?>
</section>
<?php } ?>
<aside id="poll_result_oth" class="list_01">
<h2>다른 투표 결과 보기</h2>
<ul>
<?php for ($i=0; $i<count($list3); $i++) { ?>
<li><a href="./poll_result.php?po_id=<?php echo $list3[$i]['po_id'] ?>&amp;skin_dir=<?php echo urlencode($skin_dir); ?>"> <?php echo $list3[$i]['subject'] ?> </a><span><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $list3[$i]['date'] ?></span></li>
<?php } ?>
</ul>
</aside>
<div class="win_btn">
<button type="button" onclick="window.close();" class="btn_close">창닫기</button>
</div>
</div>
</div>
<script>
$(function() {
$(".poll_delete").click(function() {
if(!confirm("해당 기타의견을 삭제하시겠습니까?"))
return false;
});
});
function fpollresult_submit(f)
{
<?php if ($is_guest) { echo chk_captcha_js(); } ?>
return true;
}
</script>

View File

@ -0,0 +1,103 @@
@charset "utf-8";
/* SIR 지운아빠 */
/* ### 기본 스타일 커스터마이징 시작 ### */
#poll a.btn_admin {} /* 관리자 전용 버튼 */
#poll a.btn_admin:focus, #poll a.btn_admin:hover {}
/* 폼 테이블 */
#poll .tbl_frm table {}
#poll .tbl_frm .frm_address {}
#poll .tbl_frm .frm_file {}
#poll .tbl_frm .frm_info {}
#poll .tbl_frm01 {}
#poll .tbl_frm01 caption {}
#poll .tbl_frm01 th {}
#poll .tbl_frm01 td {}
#poll .tbl_frm01 textarea, #poll .frm_input {}
#poll .tbl_frm01 textarea {}
/*
#poll .tbl_frm01 #captcha {}
#poll .tbl_frm01 #captcha input {}
*/
#poll .tbl_frm01 a {}
#poll .required, #poll textarea.required {}
#poll .btn_confirm {} /* 서식단계 진행 */
#poll .btn_submit {}
#poll .btn_cancel {}
#poll .btn_frmline {} /* 우편번호검색버튼 등 */
#poll .win_btn {} /* 새창용 */
#poll .win_btn a {}
#poll .win_btn button {}
#poll .win_btn input {}
/* ### 기본 스타일 커스터마이징 끝 ### */
/* 설문조사 스킨 */
#poll {margin:30px 10px }
#poll header {position:relative;}
#poll h2 {display:inline-block;background: #4162ff;color: #fff;border-radius: 13px;line-height: 24px;padding: 0 10px;margin:0 0 10px;
-webkit-box-shadow: 0 0 5px rgba(65,98,255,0.8);
-moz-box-shadow: 0 0 5px rgba(65,98,255,0.8);
box-shadow: 0 0 8px rgba(65,98,255,0.8);
}
#poll header .btn_admin {display:block;margin:0 0 5px;color:#fff;text-align:center;text-decoration:none;line-height:2em;vertical-align:middle}
#poll header p {padding:0;font-weight:bold}
#poll li {background:#fff;margin: 8px 0;padding:10px;
-webkit-box-shadow: 0 1px 4px #cbd1df;
-moz-box-shadow: 0 1px 4px #cbd1df;
box-shadow: 0 1px 4px #cbd1df;}
#poll footer:after {display:block;visibility:hidden;clear:both;content:""}
#poll footer input {float:right;font-weight:bold;}
#poll footer a {display:inline-block;float:left;background:#c6c6d2;color:#333;font-weight:bold}
#poll footer a:focus, #poll footer a:hover {text-decoration:none !important}
/* 설문조사 결과 (새창) */
#poll_result {}
#poll_result section {margin:0 0 20px;padding:25px;border:1px solid #dbdbdb;background:#fff;
-webkit-box-shadow: 0 0 5px rgba(55,55,5,0.1));
-moz-box-shadow: 0 0 5px rgba(55,55,5,0.1));
box-shadow: 0 0 5px rgba(55,55,5,0.1); }
#poll_result .tbl_wrap {margin:0}
#poll_result h2 {}
#poll_result a {}
#poll_result .sv_member,
#poll_result .sv_guest {font-weight:bold}
#poll_result .poll_all{float:right;display:inline-block;padding:0 5px;margin:0 0 10px;line-height:26px;border:1px solid #ddd;border-radius:3px;font-size:0.92em;background:#fff}
#poll_result .btn_confirm{text-align:right;margin:5px 0 0}
#poll_result_list {margin:0 auto 20px;clear:both}
#poll_result_list h2 {margin:0;font-size:1.083em;padding: 0 0 15px;margin:0 0 15px;border-bottom:1px solid #ddd;text-align:center;}
#poll_result_list dt {margin-right:5%;color:#e8180d;text-align:right}
#poll_result_list ol {margin:0;padding:0}
#poll_result_list li {margin:20px 0;position:relative;list-style-position:inside}
#poll_result_list .poll_percent{position:absolute;top:0;right:0;color:#415b72;font-weight:bold}
.poll_result_graph {position:relative;margin-right:5%;margin:5px 0 ;height:15px;background:#f4f4f4;border-radius:10px 10px}
.poll_result_graph span {position:absolute;top:0;left:0;height:15px;background:#ae99da;border-radius:10px 10px}
.poll_result_graph span .poll_cnt {display:none;position:absolute;top:18px;right:0;font-size:0.92em;text-align:right;background:#333;color:#fff;padding:0 7px;line-height:22px;border-radius:3px}
.poll_result_graph span:hover .poll_cnt {display:block;white-space: nowrap;}
.poll_result_graph span .poll_cnt:before{content: "";position: absolute;top: -6px;left: 50%;margin-left:-4px;width: 0;height: 0;border-style: solid;border-width: 0 4px 6px 4px;border-color: transparent transparent #333 transparent;}
#poll_result_cmt {}
#poll_result_cmt h2 {;font-size:1.083em;}
#poll_result_cmt h3 {margin:0;font-size:1.083em;padding: 0 0 15px;margin:0 0 15px;border-bottom:1px solid #ddd;text-align:center;}
#poll_result_cmt article {margin:15px 0 ;position:relative;}
#poll_result_cmt h2 {position:absolute;margin:0;padding:0;border:0;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden}
#poll_result_cmt header{margin:0 0 5px}
#poll_result_cmt .poll_datetime{display:inline-block;position:absolute;top:0;right:0;font-size:0.92em;color:#777;font-style:italic}
#poll_result_cmt .profile_img img{border-radius:50%}
#poll_result_cmt p {padding:10px;background:#f6f6f6;border-radius:5px;}
#poll_result_cmt fieldset {margin-bottom:0;text-align:left}
#poll_result_cmt fieldset p {margin:0 0 15px;padding:3px 0 0px;text-align:left}
#poll_result_cmt footer {text-align:right}
#poll_result_cmt .btn_submit {height:40px;padding:0 20px}
.poll_cmt_del a {display:inline-block;margin-left:5px;color:#49857c;font-size:16px;}
.poll_cmt_del a:hover{color:#98ca69}
#poll_result_oth {padding:0}
#poll_result_oth ul {margin:0;padding:0;list-style:none;}
#poll_result_oth li{position:relative}
#poll_result_oth li:after {display:block;visibility:hidden;clear:both;content:""}
#poll_result_oth li span{float:right;color:#777;font-size:0.92em;font-style:italic}