<option value="repair">{lang admin_repair}</option>
<!--{if $polloptions}--><option value="cleanpoll">清除投票記錄</option><!--{/if}-->
} else {
showmessage('undefined_action', NULL, 'HALTED');
}
} elseif($action == 'cleanpoll') {
if (!$thread['poll']) showmessage('undefined_action', NULL, 'HALTED');
$query = $db->query("SELECT pollopts FROM {$tablepre}polls WHERE tid='$tid'");
$pollarray = unserialize($db->result($query, 0));
if(!is_array($pollarray) || !$pollarray) {
showmessage('undefined_action', NULL, 'HALTED');
}
if (!$pollarray[voters] && !$pollarray[max]) showmessage("找不到投票的記錄,請返回!");
if(!submitcheck('cleanmembersubmit') && !submitcheck('cleanoptionsubmit')) {
foreach ($pollarray[voters] AS $v) {
if (!($n++ % 4)) $cleanmembers .= "\n</tr><tr>";
$cleanmembers .= "\n<td width=\"20%\"><input type=\"checkbox\" name=\"delete[]\" value=\"$v\"> <a href=\"viewpro.php?username=".rawurlencode($v)."\" target=\"_blank\">$v</a></td>";
}
$polloptions = array();
foreach($pollarray['options'] as $key=>$option) {
$polloptions[] = array (
'option' => dhtmlspecialchars(stripslashes($option[0])),
'votes' => $option[1],
'width' => @round($option[1] * 300 / $pollopts['max']) + 2,
'percent' => @sprintf ("%01.2f", $option[1] * 100 / $pollarray['total']),
'voters' => $pollarray['voterlist'][$key]
);
}
include template('topicadmin_cleanpoll');
} elseif (submitcheck('cleanoptionsubmit')) {
if (!$delete) showmessage("請選擇要清除的投票選項記錄,請返回!");
$delid = $delslast[user] = $alldel = array();
foreach ($delete AS $dels) {
$pollarray[total] = max(0, $pollarray[total]-$pollarray['options'][$dels][1]);
$pollarray['options'][$dels][1] = 0;
if ($pollarray[voterlist] && $cleanmem) {
$delsarray = explode('<option>', str_replace('</option>', '', $pollarray[voterlist][$dels]));
unset($delsarray[0], $delsarray[1]);
$alldel = array_unique(array_merge($alldel, $delsarray));
foreach ($delsarray AS $alluser) {
$delslast[user][] = $alluser;
$delslast[num][$alluser]++;
}
}
}
if ($pollarray[voterlist] && $cleanmem) {
foreach ($alldel AS $user) {
foreach ($pollarray[voterlist] AS $vln => $vl) {
if (ereg("<option>".$user."</option>", $vl)) {
$delsall[$user]++;
}
}
}
$otheropt = array();
$delslast[user] = array_unique($delslast[user]);
foreach ($delslast[user] AS $user) {
if ($delsall[$user] <= $delslast[num][$user]) {
$deluser = array_keys($pollarray[voters], $user);
unset($pollarray[voters][$deluser[0]]);
}
}
foreach ($delete AS $dels) {
unset($pollarray[voterlist][$dels]);
}
}
$pollarray['max'] = 0;
foreach($pollarray['options'] as $id) {
if($id[1] > $pollarray['max']) {
$pollarray['max'] = $id[1];
}
}
$pollopts = addslashes(serialize($pollarray));
$db->query("UPDATE {$tablepre}polls SET pollopts='$pollopts' WHERE tid='$tid'", 'UNBUFFERED');
showmessage("成功清除的指定投票選項記錄!", "viewthread.php?tid=$tid");
} elseif (submitcheck('cleanmembersubmit')) {
if (!$delete) showmessage("請選擇要清除的記錄,請返回!");
$delid = array();
foreach ($delete AS $dels) {
if (in_array($dels, $pollarray[voters])) {
$delids = array_keys($pollarray[voters], $dels);
unset($pollarray[voters][$delids[0]]);
if ($pollarray[voterlist]) {
foreach ($pollarray[voterlist] AS $vln => $vl) {
if (ereg("<option>".$dels."</option>", $vl)) {
$pollarray[voterlist][$vln] = str_replace("<option>".$dels."</option>", "", $pollarray[voterlist][$vln]);
$deloption++;
$pollarray[options][$vln][1]--;
}
}
}
}
}
$pollarray['max'] = 0;
foreach($pollarray['options'] as $id) {
if($id[1] > $pollarray['max']) {
$pollarray['max'] = $id[1];
}
}
$pollarray[total] = max(0, $pollarray[total]-$deloption);
if (!$pollarray[voters]) {
unset($pollarray[voterlist]);
}
$pollopts = addslashes(serialize($pollarray));
$db->query("UPDATE {$tablepre}polls SET pollopts='$pollopts' WHERE tid='$tid'", 'UNBUFFERED');
showmessage("成功清除的指定會員投票記錄!", "viewthread.php?tid=$tid");
} else {
}
$polloptions = unserialize($db->result($query, 0));
$pollnum = count($polloptions['options']);
$pollremain = $maxpolloptions-$pollnum;
$pollarray['options'][$key][0] = $option;
$pollarray['options'][$key][1] = !$pollarray['options'][$key][1] ? 0 : $pollarray['options'][$key][1];
<!--{loop $polloptions['options'] $key $option}-->
<input type="text" name="polloptions[$key]" value="$option[0]" size="55"><br>
<!--{/loop}-->
<!--{loop $polloptions['options'] $key $option}-->
<input type="text" name="polloptions[$key]" value="$option[0]" size="55"> <a href="javascript:deloption($key)">[-]</a><br>
<!--{/loop}-->
<span id="addoptionhtml"></span>
<a href="javascript:addoption()"><span id="remaindis">[ + 增加投票選項 ({$pollremain}/{$maxpolloptions}) ]</span></a>
<input type="hidden" name="newoption" value="0">
<script language="javascript">
var remain = $pollremain;
var maxpolloptions = $maxpolloptions;
var pollnum = $pollnum;
var newoption = 0;
function addoption() {
if (remain > 0) {
remain--;
newoption++;
addoptionhtml.innerHTML += '<input type="text" name="polloptions['+Math.floor(pollnum+newoption-1)+']" value="" size="55"> <a href="javascript:deloption('+Math.floor(pollnum+newoption-1)+')">[-]</a> <font color="red">+</font><br>';
remaindis.innerText = '[ + 增加投票選項 ('+remain+'/'+maxpolloptions+') ]';
document.all.newoption.value = newoption;
}
}
function deloption(key) {
document.all['polloptions['+key+']'].value = '';
}
</script>
暫時無bug...