www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/answers.php
<? include_once './include/general.inc.php'; include_once M_ROOT.'./include/common.fun.php'; include_once M_ROOT.'./include/archive.fun.php'; include_once M_ROOT.'./include/archive.cls.php'; $querystr = $_SERVER['QUERY_STRING']; un_virtual($querystr); parse_str($querystr); if(empty($action)){ $aid = empty($aid) ? 0 : max(0,intval($aid)); !$aid && cumessage(lang('confirmchoose archive')); if(!submitcheck('submit')){ $page = empty($page) ? 1 : max(1,intval($page)); $arc = new cls_archive(); $arc->arcid($aid); !$arc->aid && message(lang('confirmchoose archive')); !$arc->archive['checked'] && message(lang('pointed archive nocheck')); !arc_allow($arc->archive,'aread') && message(lang('none archive browse permission')); !($commu = read_cache('commu',$channels[$arc->archive['chid']]['cuid'])) && cumessage(lang('noavailable item operate')); (!$commu['available'] || $commu['cclass'] != 'answer') && cumessage(lang('noavailable item operate')); //根据当前文档所在的子站重新处理缓存 switch_cache($arc->archive['sid']); $sid = $arc->archive['sid']; if_siteclosed($sid); cache_merge($commu,'commu',$sid); if(@!$tplname = $commu['cutpl']) message(lang('please define answer record template'));//未定义答疑模板 if(!($arc->template = load_tpl($tplname))) message(lang('please add template content !'));//未定义模板内容 $arc->parsedata(); $arc->mpcheck(); $temparr = $arc->transarr(); $arc->mpinfos['durlpre'] = $cms_abs."answers.php?aid=".$arc->aid."&page="; $arc->mpinfos['nowpage'] = max(1,min($page,$arc->mpinfos['pcount'])); $arc->mpinfos['static'] = 0; $s_item = array(); $arc->nreplace($arc->template,'p',$s_item); nreplace($arc->template,'c',$temparr); $arc->nreplace($arc->template,'u',$s_item); $arc->nreplace($arc->template,'b',$s_item); code_parse($arc->template); mexit($arc->template); }else{ include_once M_ROOT.'./include/arcedit.cls.php'; !$memberid && cumessage(lang('nouser nohave operate permission')); if(!regcode_pass('answer',empty($regcode) ? '' : trim($regcode))) cumessage(lang('regcode error')); !$curuser->checkforbid('answer') && mcmessage(lang('userisforbid'));//屏蔽组 $aedit = new cls_arcedit(); $aedit->set_aid($aid); $aedit->basic_data(); !$aedit->aid && cumessage(lang('confirmchoose archive')); !($commu = read_cache('commu',$channels[$aedit->archive['chid']]['cuid'])) && cumessage(lang('noavailable item operate')); (!$commu['available'] || $commu['cclass'] != 'answer') && cumessage(lang('noavailable item operate')); !$curuser->pmsbyugids(explode(',',$commu['setting']['ugids'])) && cumessage(lang('you nohave this item permission')); !$aedit->archive['checked'] && cumessage(lang('pointed archive nocheck')); ($aedit->archive['closed'] || $aedit->archive['finishdate'] < $timestamp) && cumessage(lang('question closed')); $answer = empty($answer) ? '' : trim($answer); empty($answer) && cumessage(lang('please input answer content')); (!empty($commu['setting']['minlength']) && strlen($answer) < $commu['setting']['minlength']) && cumessage(lang('answer0 over minlength')); !empty($commu['setting']['maxlength']) && $answer = cutstr($answer,$commu['setting']['maxlength']); $db->query("INSERT INTO {$tblprefix}answers SET aid='$aid', subject='".$aedit->archive['subject']."', answer='$answer', chid='".$aedit->archive['chid']."', caid='".$aedit->archive['caid']."', crid='".$aedit->archive['crid']."', mid='".$curuser->infos['mid']."', mname='".$curuser->infos['mname']."', createdate='$timestamp' "); if($cid = $db->insert_id()){ $aedit->arc_nums('answers',1,1); $curuser->basedeal('answer',1,1,1); if(!empty($commu['setting']['nota'])){ $db->query("INSERT INTO {$tblprefix}notaanswer (aid,cid,content,createdate) VALUES ('$aid','$cid','$answer','$timestamp')"); } } cumessage(lang('answer0 add finish')); } }elseif($action == 'vote'){ $cid = empty($cid) ? 0 : max(0,intval($cid)); empty($cid) && cumessage(lang('confirmchoose answer0')); !$memberid && cumessage(lang('nouser none operate permission')); $chid = $db->result_one("SELECT chid FROM {$tblprefix}answers WHERE cid='$cid'"); !($commu = read_cache('commu',$channels[$chid]['cuid'])) && cumessage(lang('noavailable item operate')); (!$commu['available'] || $commu['cclass'] != 'answer') && cumessage(lang('noavailable item operate')); if(!empty($commu['setting']['norepeatvote'])){ if(empty($m_cookie['cms_cuid'.$commu['cuid'].'_'.$cid.'_support'])){ msetcookie('cms_cuid'.$commu['cuid'].'_'.$cid.'_support','1',365 * 24 * 3600); }else{ cumessage(lang('please dont repeat vote support')); } } $db->query("UPDATE {$tblprefix}answers SET votes=votes+1 WHERE cid='$cid'",'SILENT'); cumessage(lang('answer0 support finish')); }elseif($action == 'appeal'){ include_once M_ROOT.'./include/arcedit.cls.php'; empty($cid) && cumessage(lang('confirmchoose answer0')); !$memberid && cumessage(lang('nouser none operate permission')); if(!$item = $db->fetch_one("SELECT * FROM {$tblprefix}answers WHERE cid='$cid'")) cumessage(lang('confirmchoose answer0')); $item['mid'] != $memberid && cumessage(lang('please choose yourself answer0')); $item['end'] && cumessage(lang('operate overdate')); $item['appeal'] && cumessage(lang('please dont repeat appeal')); !($commu = read_cache('commu',$channels[$item['chid']]['cuid'])) && cumessage(lang('noavailable item operate')); (!$commu['available'] || $commu['cclass'] != 'answer' || empty($commu['setting']['nota'])) && cumessage(lang('noavailable item operate')); $aedit = new cls_arcedit(); $aedit->set_aid($item['aid']); $aedit->basic_data(); !$aedit->aid && cumessage(lang('confirmchoose archive')); (!$aedit->archive['closed'] && $aedit->archive['finishdate'] > $timestamp) && cumessage(lang('this question notyet start allow appeal')); $db->query("UPDATE {$tblprefix}answers SET appeal=1 WHERE cid='$cid'",'SILENT'); $db->query("UPDATE {$tblprefix}archives_sub SET appeals=appeals+1 WHERE aid='".$aedit->aid."'",'SILENT'); cumessage(lang('answer appeal succeed')); }elseif($action == 'del'){ include_once M_ROOT.'./include/arcedit.cls.php'; empty($cid) && cumessage(lang('confirmchoose answer0')); (!$memberid || !$curuser->isadmin()) && cumessage(lang('nohave operate permission')); if(!$item = $db->fetch_one("SELECT * FROM {$tblprefix}answers WHERE cid='$cid'")) cumessage(lang('confirmchoose answer0')); $aedit = new cls_arcedit(); $aedit->set_aid($item['aid']); $aedit->basic_data(); if($aedit->aid){ $item['checked'] && $aedit->arc_nums('adopts',-1,0); $aedit->arc_nums('answers',-1,1); $aedit->auser->basedeal('answer',0,1,1); } $db->query("DELETE FROM {$tblprefix}answers WHERE cid=$cid"); $db->query("DELETE FROM {$tblprefix}notaanswer WHERE cid=$cid"); cumessage(lang('answer0 delete succeed')); } ?>