📄 poll.php
字号:
<?php/*======================================================================*\|| #################################################################### |||| # VirtuaNews - 1.0.4 Pro License ID - [WDYL-WTN]|| # ---------------------------------------------------------------- # |||| # All code in this file is ?2002 VirtuaSystems . # |||| # This file may not be redistributed in whole or significant part. # |||| # --------------- VIRTUANEWS IS NOT FREE SOFTWARE ---------------- # |||| # http://www.virtuanews.co.uk # |||| # http://www.virtuanews.co.uk/license.php # |||| #################################################################### ||\*======================================================================*/if (preg_match("/(admin\/poll.php)/i",$PHP_SELF)) { header("location:../admin.php"); exit;}updateadminlog(iif($id,"id = $id",""));switch ($action) {case "poll": echohtmlheader(); echotableheader("编辑投票",1); echotabledescription("使用这部分你能添加、编辑、删除投票并显示在 $sitename",1); echotabledescription(returnlinkcode("添加投票","admin.php?action=poll_add"),1); $tablerows = returnminitablerow("<b>问题</b>","<b>全部投票</b>","<b>选项</b>"); $getdata = query("SELECT id,question,totalvotes FROM news_poll ORDER BY id DESC"); while ($data_arr = fetch_array($getdata)) { $tablerows .= returnminitablerow($data_arr[question],"$data_arr[totalvotes] ",returnlinkcode("编辑","admin.php?action=poll_edit&id=$data_arr[id]")." |".returnlinkcode("删除","admin.php?action=poll_delete&id=$data_arr[id]")); } echotabledescription("\n".returnminitable($tablerows,0,100)." ",1); echotablefooter(); echohtmlfooter();break;case "poll_add": echohtmlheader(); echoformheader("poll_new","添加投票"); echotabledescription("下面你能增加一个投票并显示在这个站, 适当的评估并填写所有的详细资料,并按 submit 键"); echotabledescription("注意至少有2个选项才能使一个有效的投票"); echoinputcode("问题:","question","",60); echoinputcode("选择 1:","option[1]"); echoinputcode("选择 2:","option[2]"); for ($i=3;$i<11;$i++) { echoinputcode("选择 $i:","option[$i]","",40,1); } foreach ($cat_arr as $key => $val) { $checkboxes .= returncheckboxcode("showcategories[$key]",1,$val[name],iif($key == $defaultcategory,1,0)); } echotablerow("显示在哪个新闻分类?<br /><span class=\"red\">(你可以选择多个)</span>","\n$checkboxes "); echoformfooter(); echohtmlfooter();break;case "poll_new": if ($question == "") { adminerror("空白栏目","所有栏目必须填满, 只有1个 <span class=\"red\">(可选)</span> 可以空着"); } $lastoption = 0; foreach ($option AS $temp) { $votes .= iif($temp != "",iif($votes != "",",0",0),""); if ($temp != "") { $option_new[$lastoption++] = $temp; } } if (countchar($votes,",") < 1) { adminerror("没有足够选项","至少有2个选项才能使一个有效的投票"); } foreach ($cat_arr AS $key => $val) { $categorydisplay .= iif($showcategories[$key],iif($categorydisplay,",$key",$key),""); } for ($i=0;$i<10;$i++) { $optionsql .= ",'$option_new[$i]'"; } query("INSERT INTO news_poll VALUES (NULL,'$question'$optionsql,'0','$votes','$categorydisplay')"); $pollid = getlastinsert(); query("UPDATE news_category SET pollid = $pollid WHERE id IN ($categorydisplay)"); $cat_arr = getcat_arr(); writeallpages(); echoadminredirect("admin.php?action=poll");break;case "poll_edit": verifyid("news_poll",$id); $data_arr = query_first("SELECT question,option1,option2,option3,option4,option5,option6,option7,option8,option9,option10,totalvotes,display FROM news_poll WHERE id = $id"); $cat_display = explode(",",$data_arr[display]); foreach ($cat_display AS $temp) { $display[$temp] = 1; } echohtmlheader(); echoformheader("投票更新","编辑投票在 $sitename"); updatehiddenvar("id",$id); echotabledescription("下面你能编辑一个投票并显示在服务器上,下面正确填写全部资料并按 submit 确认"); echotabledescription("没有足够选项","至少有2个选项才能使一个有效的投票"); echoinputcode("问题:","question",$data_arr[question],60); for ($i=1;$i<11;$i++) { echoinputcode("选项 $i:","option[$i]",$data_arr[option.$i]); } foreach ($cat_arr as $key => $val) { $checkboxes .= returncheckboxcode("showcategories[$key]",1,$val[name],iif($display[$key],1,0)); } echotablerow("显示在哪个哪个部分?<br /><span class=\"red\">(你可以选择多个)</span>","\n$checkboxes "); echoformfooter(); echohtmlfooter();break;case "poll_update": if ($question == "") { adminerror("空白栏目","所有栏目必须填满, 只有1个 <span class=\"red\">(可选)</span> 可以空着"); } foreach ($option AS $temp) { if ($temp != "") { $validoption ++; } } if ($validoption < 2) { adminerror("没有足够选项","至少有2个选项才能使一个有效的投票"); } $old_data = query_first("SELECT votes,totalvotes,display FROM news_poll WHERE id = $id"); $splitvotes = explode(",",$old_data[votes]); $lastoption = 0; $count = 0; foreach ($option AS $temp) { if ($temp != "") { $option_new[$lastoption++] = $temp; $votes_new[$lastoption] = intval($splitvotes[$count]); query("UPDATE news_pollvote SET voteoption = '$lastoption' WHERE (voteoption = '".($count+1)."') AND (pollid = $id)"); } else { query("DELETE FROM news_pollvote WHERE (voteoption = '".($count+1)."') AND (pollid = $id)"); } $count++; } $totalvotes = array_sum($votes_new); $votes = join(",",$votes_new); foreach ($cat_arr AS $key => $val) { $categorydisplay .= iif($showcategories[$key],iif($categorydisplay,",$key",$key),""); } for ($i=0;$i<10;$i++) { $optionsql .= " option".($i+1)." = '$option_new[$i]',\n"; } query(" UPDATE news_poll SET question = '$question',$optionsql display = '$categorydisplay', votes = '$votes', totalvotes = '$totalvotes' WHERE id = $id "); $newdisplay = (strlen($categorydisplay) > 0) ? (explode(',', $categorydisplay)) : (array()); $olddisplay = (strlen($old_data[display]) > 0) ? (explode(',', $old_data[display])) : (array()); $update = array(); foreach ($newdisplay AS $val) { if (!in_array($val, $olddisplay)) { $update[] = $val; } } foreach ($olddisplay AS $val) { if (!in_array($val, $newdisplay) && !in_array($val, $update)) { $update[] = $val; } } if (count($update) > 0) { foreach ($update AS $val) { $next = query_first("SELECT id FROM news_poll WHERE (display LIKE '$val,%') OR (display LIKE '%,$val,%') OR (display LIKE '%,$val%') OR (display = '$val') ORDER BY id DESC LIMIT 1"); if (empty($next)) { $next[id] = 0; } query("UPDATE news_category SET pollid = $next[id] WHERE id = $val"); } } $cat_arr = getcat_arr(); writeallpages(); echoadminredirect("admin.php?action=poll");break;case "poll_delete": verifyid("news_poll",$id); echodeleteconfirm("投票","poll_kill",$id);break;case "poll_kill": verifyid("news_poll",$id); $old_data = query_first("SELECT display FROM news_poll WHERE id = $id"); $olddisplay = (strlen($old_data[display]) > 0) ? (explode(',', $old_data[display])) : (array()); query("DELETE FROM news_poll WHERE id = $id"); query("DELETE FROM news_pollvote WHERE pollid = $id"); if (count($olddisplay) > 0) { foreach ($olddisplay AS $val) { $next = query_first("SELECT id FROM news_poll WHERE (display LIKE '$val,%') OR (display LIKE '%,$val,%') OR (display LIKE '%,$val%') OR (display = '$val') ORDER BY id DESC LIMIT 1"); if (empty($next)) { $next[id] = 0; } query("UPDATE news_category SET pollid = $next[id] WHERE id = $val"); } } $cat_arr = getcat_arr(); writeallpages(); echoadminredirect("admin.php?action=poll");break;default: adminerror("无效连接","你跳转到一个无效的连接");}/*======================================================================*\|| ####################################################################|| # VirtuaNews is not free software|| # Downloaded: [WDYL-WTN]|| # File: admin/poll.php|| ####################################################################\*======================================================================*/?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -