설문조사 기본 스킨 추가
git-svn-id: http://xe-core.googlecode.com/svn/trunk@2268 201d5d3c-b55e-5fd7-737f-ddc643e51545
34
modules/poll/skins/default/css/poll.css
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
.poll_table { table-layout:fixed; width:100%; }
|
||||
|
||||
.poll_table td.h { background:url(../images/top_bg.png) repeat-x left top; }
|
||||
.poll_table td.title { height:28px; background:url(../images/top_title_bg.png) repeat-x left top; padding:0 20px 0 20px;color:#C3C3C4;}
|
||||
.poll_table td.title strong { color:#FFFFFF; font-weight:bold; }
|
||||
|
||||
.poll_table td.l { border-left:1px solid #E5E5E5; }
|
||||
.poll_table td.r { border-right:1px solid #E5E5E5; }
|
||||
.poll_table td.content { padding:18px 13px 18px 13px; }
|
||||
|
||||
.poll_table td.buttonBox { border:1px solid #E5E5E5; border-bottom:none; background-color:#F6F6F5; }
|
||||
.poll_table td.buttonBox div { padding:5px 0 2px 0; position:relative; text-align:center;}
|
||||
.poll_table td.b { background-color:#F6F6F5; height:7px; }
|
||||
.poll_table td.b img { width:100%; height:6px; border-bottom:1px solid #E5E5E5; }
|
||||
.poll_table td.bb { height:7px; }
|
||||
.poll_table td.bb img { width:100%; height:6px; border-bottom:1px solid #E5E5E5; }
|
||||
|
||||
.poll_table td.content div.title { color:#000000; background-color:#F5F5F5; border-top:2px solid #C1C0BD; border-bottom:2px solid #C1C0BD; font-weight:bold; padding:7px 0 7px 10px; margin-bottom:10px; }
|
||||
|
||||
.poll_table td.content div.item_text { color:#636363; padding:0 10px 0 10px; margin-top:10px; }
|
||||
.poll_table td.content div.item_text strong { font-weight:bold; color:#000000; font-family:돋움; font-size:12px; }
|
||||
|
||||
.poll_table td.content table.item_bar_table { width:100%; table-layout:fixed; border-bottom:1px solid #EDEDED; margin-top:10px;}
|
||||
.poll_table td.content table.noborder { border-bottom:none; margin-bottom:10px;}
|
||||
.poll_table td.content table.item_bar_table td.bar { padding:0 0 5px 0; background:url(../images/back_bar.png) repeat-x left 4px;}
|
||||
.poll_table td.content table.item_bar_table td.bar img { width:100%; height:6px; }
|
||||
.poll_table td.content table.item_bar_table td.status { font-size:.9em; padding-bottom:5px; color:#636363; padding-left:15px; }
|
||||
.poll_table td.content table.item_bar_table td.status strong { font-weight:bold; color:#58C011; }
|
||||
|
||||
.poll_table td.content div.item { color:#636363; border-bottom:1px solid #EDEDED; padding:5px 0 8px 10px; margin-bottom:3px; }
|
||||
.poll_table td.content div.noborder { border-bottom:none; margin-bottom:10px;}
|
||||
.poll_table td.content div.checkcount { border-bottom:1px dashed #EDEDED; padding:0 0 8px 10px; margin-bottom:3px; text-align:right; color:#636363; }
|
||||
|
||||
|
||||
10
modules/poll/skins/default/filter/poll.xml
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
<filter name="poll" module="poll" act="procPoll" confirm_msg_code="confirm_poll_submit">
|
||||
<form />
|
||||
<parameter />
|
||||
<response callback_func="completePoll">
|
||||
<tag name="error" />
|
||||
<tag name="message" />
|
||||
<tag name="poll_srl" />
|
||||
<tag name="tpl" />
|
||||
</response>
|
||||
</filter>
|
||||
78
modules/poll/skins/default/form.html
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
<!--%import("filter/poll.xml")-->
|
||||
<!--%import("js/poll.js")-->
|
||||
<!--%import("css/poll.css")-->
|
||||
|
||||
<script type="text/javascript">
|
||||
var poll_alert_lang = "{$lang->msg_check_poll_item}";
|
||||
</script>
|
||||
|
||||
<div id="poll_{$poll->poll_srl}" style="{$poll->style}">
|
||||
|
||||
<form action="./" method="get" onsubmit="return doPoll(this)">
|
||||
<input type="hidden" name="poll_srl" value="{$poll->poll_srl}" />
|
||||
<input type="hidden" name="poll_srl_indexes" value="" />
|
||||
|
||||
<table cellspacing="0" class="poll_table">
|
||||
<col width="7" />
|
||||
<col />
|
||||
<col width="7" />
|
||||
<tr>
|
||||
<td><img src="./images/lh.png" alt="lh" class="iePngFix" width="7" height="7" /></td>
|
||||
<td class="h"><img src="./images/blank.gif" height="7" alt="blank" /></td>
|
||||
<td><img src="./images/rh.png" alt="rh" class="iePngFix" width="7" height="7" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title" colspan="3">
|
||||
{$lang->poll_stop_date} : <strong>{zdate($poll->stop_date, "Y-m-d")}</strong> {zdate($poll->stop_date, "H:i")}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="l"><img src="./images/blank.gif" height="7" alt="blank" /></td>
|
||||
<td class="content">
|
||||
|
||||
<!--@foreach($poll->poll as $poll_srl_index => $val)-->
|
||||
<input type="hidden" name="checkcount_{$poll_srl_index}" value="{$val->checkcount}" />
|
||||
|
||||
<div class="title">A : {$val->title}</div>
|
||||
|
||||
<!--@if($val->checkcount>1)-->
|
||||
<div class="checkcount">
|
||||
{$lang->poll_checkcount} : {$val->checkcount}
|
||||
</div>
|
||||
<!--@end-->
|
||||
|
||||
|
||||
{@ $_key = 0}
|
||||
<!--@foreach($val->item as $item_srl => $item)-->
|
||||
{@$_idx = $poll->poll_srl.'_'.$poll_srl_index.'_'.$item_srl}
|
||||
|
||||
<div class="item <!--@if($_key==count($val->item)-1)-->noborder<!--@end-->">
|
||||
<!--@if($val->checkcount>1)-->
|
||||
<input type="checkbox" name="item_{$poll->poll_srl}_{$poll_srl_index}" value="{$item->poll_item_srl}" id="item_{$item->poll_item_srl}" />
|
||||
<!--@else-->
|
||||
<input type="radio" name="item_{$poll->poll_srl}_{$poll_srl_index}" value="{$item->poll_item_srl}" id="item_{$item->poll_item_srl}" />
|
||||
<!--@end-->
|
||||
<label for="item_{$item->poll_item_srl}">{$item->title}</label>
|
||||
</div>
|
||||
{@ $_key++}
|
||||
<!--@end-->
|
||||
|
||||
<!--@end-->
|
||||
|
||||
|
||||
</td>
|
||||
<td class="r"><img src="./images/blank.gif" height="7" alt="blank" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3" class="buttonBox"><div><span class="button"><input type="submit" value="{$lang->cmd_apply_poll}" class="poll_button" /></span></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="lb" ><img src="./images/lb.png" alt="lb" class="iePngFix" width="7" height="7" /></td>
|
||||
<td class="b"><img src="./images/blank.gif" alt="blank" /></td>
|
||||
<td class="rb" ><img src="./images/rb.png" alt="rb" class="iePngFix" width="7" height="7" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
BIN
modules/poll/skins/default/images/back_bar.png
Executable file
|
After Width: | Height: | Size: 159 B |
BIN
modules/poll/skins/default/images/blank.gif
Normal file
|
After Width: | Height: | Size: 43 B |
BIN
modules/poll/skins/default/images/color_bar.png
Executable file
|
After Width: | Height: | Size: 328 B |
BIN
modules/poll/skins/default/images/lb.png
Executable file
|
After Width: | Height: | Size: 216 B |
BIN
modules/poll/skins/default/images/lh.png
Executable file
|
After Width: | Height: | Size: 272 B |
BIN
modules/poll/skins/default/images/pipe.png
Executable file
|
After Width: | Height: | Size: 177 B |
BIN
modules/poll/skins/default/images/rb.png
Executable file
|
After Width: | Height: | Size: 211 B |
BIN
modules/poll/skins/default/images/rh.png
Executable file
|
After Width: | Height: | Size: 262 B |
BIN
modules/poll/skins/default/images/rlb.png
Executable file
|
After Width: | Height: | Size: 215 B |
BIN
modules/poll/skins/default/images/rrb.png
Executable file
|
After Width: | Height: | Size: 212 B |
BIN
modules/poll/skins/default/images/top_bg.png
Executable file
|
After Width: | Height: | Size: 299 B |
BIN
modules/poll/skins/default/images/top_title_bg.png
Executable file
|
After Width: | Height: | Size: 523 B |
51
modules/poll/skins/default/js/poll.js
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
/* 설문 참여 함수 */
|
||||
function doPoll(fo_obj) {
|
||||
|
||||
var checkcount = new Array();
|
||||
var item = new Array();
|
||||
|
||||
for(var i=0;i<fo_obj.length;i++) {
|
||||
var obj = fo_obj[i];
|
||||
if(obj.nodeName != 'INPUT') continue;
|
||||
|
||||
var name = obj.name;
|
||||
if(name.indexOf('checkcount')>-1) {
|
||||
var t = name.split('_');
|
||||
var poll_srl_index = parseInt(t[1],10);
|
||||
checkcount[poll_srl_index] = obj.value;
|
||||
item[poll_srl_index] = new Array();
|
||||
|
||||
} else if(name.indexOf('item_')>-1) {
|
||||
var t = name.split('_');
|
||||
var poll_srl = parseInt(t[1],10);
|
||||
var poll_srl_index = parseInt(t[2],10);
|
||||
if(obj.checked == true) item[poll_srl_index][item[poll_srl_index].length] = obj.value;
|
||||
}
|
||||
}
|
||||
|
||||
var poll_srl_indexes = "";
|
||||
for(var poll_srl_index in checkcount) {
|
||||
var count = checkcount[poll_srl_index];
|
||||
var items = item[poll_srl_index];
|
||||
if(count > items.length) {
|
||||
alert(poll_alert_lang);
|
||||
return false;
|
||||
}
|
||||
|
||||
poll_srl_indexes += items.join(',')+',';
|
||||
}
|
||||
fo_obj.poll_srl_indexes.value = poll_srl_indexes;
|
||||
|
||||
procFilter(fo_obj, poll);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* 설문 조사후 내용을 바꿀 함수 */
|
||||
function completePoll(ret_obj) {
|
||||
alert(ret_obj['message']);
|
||||
var poll_srl = ret_obj['poll_srl'];
|
||||
var tpl = ret_obj['tpl'];
|
||||
var width = xWidth("poll_"+poll_srl);
|
||||
xInnerHtml("poll_"+poll_srl, tpl);
|
||||
xWidth("poll_"+poll_srl, width);
|
||||
}
|
||||
60
modules/poll/skins/default/result.html
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
<!--%import("css/poll.css")-->
|
||||
|
||||
<div class="poll_box" style="{$poll->style}">
|
||||
|
||||
<table cellspacing="0" class="poll_table">
|
||||
<col width="7" />
|
||||
<col />
|
||||
<col width="7" />
|
||||
<tr>
|
||||
<td><img src="./images/lh.png" alt="lh" class="iePngFix" width="7" height="7" /></td>
|
||||
<td class="h"><img src="./images/blank.gif" height="7" alt="blank" /></td>
|
||||
<td><img src="./images/rh.png" alt="rh" class="iePngFix" width="7" height="7" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="title" colspan="3">
|
||||
<div class="fl">
|
||||
{$lang->poll_stop_date} : <strong>{zdate($poll->stop_date, "Y-m-d")}</strong> {zdate($poll->stop_date, "H:i")}
|
||||
</div>
|
||||
<div class="fr">
|
||||
{$lang->poll_join_count} : <strong>{number_format($poll->poll_count)}</strong>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="l"><img src="./images/blank.gif" height="7" alt="blank" /></td>
|
||||
<td class="content">
|
||||
|
||||
<!--@foreach($poll->poll as $poll_srl_index => $val)-->
|
||||
<div class="title">{$val->title} ({$val->poll_count})</div>
|
||||
<!--@foreach($val->item as $item_srl => $item)-->
|
||||
{@$per = (int)(( $item->poll_count / $val->poll_count)*100) }
|
||||
|
||||
<div class="item_text">
|
||||
<strong>{$item_srl+1}</strong> <img src="./images/pipe.png" alt="" /> {$item->title}
|
||||
</div>
|
||||
|
||||
<table cellspacing="0" class="item_bar_table <!--@if($item_srl == count($val->item)-1)-->noborder<!--@end-->">
|
||||
<col width="30" />
|
||||
<col/>
|
||||
<col width="75" />
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td class="bar"><!--@if($per)--><img src="./images/color_bar.png" style="width:{$per}%;height:6px;" alt="bar" /></div><!--@else--><img src="./images/blank.gif" width="1" height="1" alt="" /><!--@end--></td>
|
||||
<td class="status"><strong>{$item->poll_count}</strong> ({$per}%)</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--@end-->
|
||||
|
||||
<!--@end-->
|
||||
</td>
|
||||
<td class="r"><img src="./images/blank.gif" height="7" alt="blank" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="rlb" ><img src="./images/rlb.png" alt="lb" class="iePngFix" width="7" height="7" /></td>
|
||||
<td class="bb"><img src="./images/blank.gif" alt="blank" /></td>
|
||||
<td class="rrb" ><img src="./images/rrb.png" alt="rb" class="iePngFix" width="7" height="7" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
25
modules/poll/skins/default/skin.xml
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<skin>
|
||||
<title xml:lang="ko">설문조사 기본 스킨</title>
|
||||
<title xml:lang="zh-CN">投票调查默认皮肤</title>
|
||||
<title xml:lang="jp">アンケート調査デフォルトスキン</title>
|
||||
<title xml:lang="en">Default Skin of Poll</title>
|
||||
<maker email_address="zero@zeroboard.com" link="http://www.zeroboard.com" date="2007. 2. 28">
|
||||
<name xml:lang="ko">제로</name>
|
||||
<name xml:lang="zh-CN">zero</name>
|
||||
<name xml:lang="jp">Zero</name>
|
||||
<name xml:lang="en">zero</name>
|
||||
<description xml:lang="ko">설문조사 기본 스킨</description>
|
||||
<description xml:lang="zh-CN">投票调查默认皮肤。</description>
|
||||
<description xml:lang="jp">アンケート調査デフォルトスキン</description>
|
||||
<description xml:lang="en">Default Skin of Poll</description>
|
||||
</maker>
|
||||
<colorset>
|
||||
<color name="normal">
|
||||
<title xml:lang="ko">기본</title>
|
||||
<title xml:lang="zh-CN">默认</title>
|
||||
<title xml:lang="jp">デフォルト</title>
|
||||
<title xml:lang="en">Default</title>
|
||||
</color>
|
||||
</colorset>
|
||||
</skin>
|
||||