www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/adminm/farchivesedit.inc.php
<?php load_cache('grouptypes,currencys,fcatalogs,fchannels'); include_once M_ROOT."./include/fields.fun.php"; include_once M_ROOT."./include/fields.cls.php"; include_once M_ROOT."./include/upload.cls.php"; include_once M_ROOT."./include/farcedit.cls.php"; !defined('M_COM') && exit('No Permission'); $aid = empty($aid) ? 0 : max(0,intval($aid)); if(!$aid){ m_guide(14); $page = !empty($page) ? max(1, intval($page)) : 1; submitcheck('bfilter') && $page = 1; $viewdetail = empty($viewdetail) ? '' : $viewdetail; $caid = empty($caid) ? '0' : $caid; $checked = isset($checked) ? $checked : '-1'; $subject = empty($subject) ? '' : $subject; $indays = empty($indays) ? 0 : max(0,intval($indays)); $outdays = empty($outdays) ? 0 : max(0,intval($outdays)); $filterstr = ''; foreach(array('viewdetail','caid','checked','subject','indays','outdays') as $k){ $filterstr .= "&$k=".rawurlencode($$k); } $wheresql = "WHERE mid='$memberid'"; $caid && $wheresql .= " AND caid='$caid'"; $checked != '-1' && $wheresql .= " AND checked='$checked'"; $subject && $wheresql .= " AND subject LIKE '%".str_replace(array(' ','*'),'%',addcslashes($subject,'%_'))."%'"; $indays && $wheresql .= " AND createdate>'".($timestamp - 86400 * $indays)."'"; $outdays && $wheresql .= " AND createdate<'".($timestamp - 86400 * $outdays)."'"; if(!submitcheck('bfarchivesedit')){ $caidsarr = array('0' => lang('all coclass')) + fcaidsarr(); $checkedarr = array('-1' => lang('nolimit'),'0' => lang('nocheck message'),'1' => lang('checked message')); tabheader(lang('filter0 message').viewcheck('viewdetail',$viewdetail,'tbodyfilter').' '.strbutton('bfilter','filter0'),'farchivesedit',"?action=farchivesedit&page=$page"); echo "<tbody id=\"tbodyfilter\" style=\"display: ".(empty($viewdetail) ? 'none' : '')."\">"; trbasic(lang('belong coclass'),'caid',makeoption($caidsarr,$caid),'select'); trbasic(lang('check state'),'',makeradio('checked',$checkedarr,$checked),''); trbasic(lang('search title'),'subject',$subject,'text',lang('agsearchkey')); trrange(lang('add date'),array('outdays',empty($outdays) ? '' : $outdays,'',' '.lang('day before').' - ',5),array('indays',empty($indays) ? '' : $indays,'',' '.lang('day in'),5)); echo "</tbody>"; tabfooter(); $pagetmp = $page; do{ $query = $db->query("SELECT * FROM {$tblprefix}farchives $wheresql ORDER BY aid DESC LIMIT ".(($pagetmp - 1) * $mrowpp).",$mrowpp"); $pagetmp--; }while(!$db->num_rows($query) && $pagetmp); $itemstr = ''; $dforwardstr = '&forward='.rawurlencode("?action=farchivesedit$filterstr&page=$page"); while($farchive = $db->fetch_array($query)){ $catalogstr = $fcatalogs[$farchive['caid']]['title']; $fcatalog = read_cache('fcatalog',$farchive['caid']); $orderstr = empty($fcatalog['taxcrid']) ? '-' : "<a href=\"?action=farchivesedit&deal=forder&aid=$farchive[aid]$dforwardstr\">".lang('ordering')."</a>"; $checkedstr = $farchive['checked'] ? "Y" : '-'; $editstr = (!$farchive['checked'] || $fcatalog['allowupdate']) ? "<a href=\"?action=farchivesedit&aid=$farchive[aid]$dforwardstr\">".lang('modify')."</a>" : '-'; $itemstr .= "<tr><td align=\"center\" class=\"item1\" width=\"30\"><input class=\"checkbox\" type=\"checkbox\" name=\"selectid[$farchive[aid]]\" value=\"$farchive[aid]\">\n". "<td class=\"item2\">".mhtmlspecialchars($farchive['subject'])."</td>\n". "<td align=\"center\" class=\"item1\">$catalogstr</td>\n". "<td align=\"center\" class=\"item2\" width=\"70\">".(empty($farchive['startdate']) ? '-' : date("$dateformat",$farchive['startdate']))."</td>\n". "<td align=\"center\" class=\"item1\">".(empty($farchive['enddate']) ? '-' : date("$dateformat",$farchive['enddate']))."</td>\n". "<td align=\"center\" class=\"item2\" width=\"30\">$checkedstr</td>\n". "<td align=\"center\" class=\"item1\" width=\"30\">$orderstr</td>\n". "<td align=\"center\" class=\"item2\" width=\"30\">$editstr</td></tr>\n"; } $counts = $db->result_one("SELECT count(*) FROM {$tblprefix}farchives $wheresql"); $multi = multi($counts,$mrowpp,$page,"?action=farchivesedit$filterstr"); tabheader(lang('message list')." <input class=\"checkbox\" type=\"checkbox\" name=\"select_all\" value=\"1\"> ".lang('selectallpage'),'','',10); trcategory(array("<input class=\"checkbox\" type=\"checkbox\" name=\"chkall\" class=\"category\" onclick=\"checkall(this.form, 'selectid', 'chkall')\">",lang('message title'),lang('message coclass'),lang('startdate'),lang('enddate'),lang('check'),lang('purchase'),lang('edit'))); echo $itemstr; tabfooter(); echo $multi; echo "<input class=\"button\" type=\"submit\" name=\"bfarchivesedit\" value=\"".lang('delete')."\"></form>\n"; }else{ if(empty($selectid) && empty($select_all)) mcmessage(lang('confirmselect message'),"?action=farchivesedit&page=$page$filterstr"); if(!empty($select_all)){ $selectid = array(); $npage = empty($npage) ? 1 : $npage; if(empty($pages)){ $counts = $db->result_one("SELECT count(*) FROM {$tblprefix}farchives $wheresql"); $pages = @ceil($counts / $mrowpp); } if($npage <= $pages){ $fromstr = empty($fromid) ? "" : "aid<$fromid"; $nwheresql = !$wheresql ? ($fromstr ? "WHERE $fromstr" : "") : ($wheresql.($fromstr ? " AND " : "").$fromstr); $query = $db->query("SELECT aid FROM {$tblprefix}farchives $nwheresql ORDER BY aid DESC LIMIT 0,$mrowpp"); while($item = $db->fetch_array($query)){ $selectid[] = $item['aid']; } } } $aedit = new cls_farcedit; foreach($selectid as $aid){ $aedit->set_aid($aid); $aedit->arc_delete(1); $aedit->init(); } unset($aedit); if(!empty($select_all)){ $npage ++; if($npage <= $pages){ $fromid = min($selectid); $transtr = ''; $transtr .= "&select_all=1"; $transtr .= "&pages=$pages"; $transtr .= "&npage=$npage"; $transtr .= "&bfarchivesedit=1"; $transtr .= "&fromid=$fromid"; mcmessage(lang('operating')."<br> ".lang('all')." $pages ".lang('page0').",".lang('dealing')." $npage ".lang('page0')."<br><br> <a href=\"?action=farchivesedit&page=$page$filterstr\">>>".lang('pause')."</a>", "?action=farchivesedit&page=$page$filterstr$transtr", 500); } } mcmessage(lang('message operate finish'),"?action=farchivesedit&page=$page$filterstr"); } }elseif(empty($deal)){ $forward = empty($forward) ? M_REFERER : $forward; $aedit = new cls_farcedit; $aedit->set_aid($aid); $aedit->basic_data(); !$aedit->aid && mcmessage(lang('confirmchoose message'),$forward); $aedit->archive['mid'] != $memberid && mcmessage(lang('please choose yourself message')); $fcatalog = &$aedit->catalog; (!$fcatalog['allowupdate'] && $aedit->archive['checked']) && mcmessage(lang('this coclass checked message forbid update'),$forward); $aedit->detail_data(); $chid = $aedit->archive['chid']; $fields = read_cache('ffields',$chid); if(!submitcheck('bfarchivedetail')){ tabheader(lang('common option'),'farchivedetail',"?action=farchivesedit&aid=$aid&forward=".rawurlencode($forward),2,1,1); trbasic(lang('belong coclass').' *','',$fcatalog['title'],''); $a_field = new cls_field; $submitstr = ''; foreach($fields as $k => $field){ if(!$field['isadmin'] && !$field['isfunc']){ $a_field->init(); $a_field->field = read_cache('ffield',$chid,$k); $a_field->oldvalue = isset($aedit->archive[$k]) ? $aedit->archive[$k] : ''; $a_field->trfield('farchivenew'); $submitstr .= $a_field->submitstr; } } unset($a_field); tabfooter('bfarchivedetail'); check_submit_func($submitstr); } else{ $c_upload = new cls_upload; $fields = fields_order($fields); $a_field = new cls_field; foreach($fields as $k => $field){ if(!$field['isadmin'] && !$field['isfunc']){ $a_field->init(); $a_field->field = read_cache('ffield',$chid,$k); $a_field->oldvalue = isset($aedit->archive[$k]) ? $aedit->archive[$k] : ''; $a_field->deal('farchivenew'); if(!empty($a_field->error)){ $c_upload->rollback(); mcmessage($a_field->error,M_REFERER); } $aedit->updatefield($k,$a_field->newvalue,$field['issystem'] ? 'main' : 'custom'); } } unset($a_field); $aedit->updatedb(); $c_upload->saveuptotal(1); mcmessage(lang('freeinfo edit finish'),$forward); } }elseif($deal == 'forder'){ $forward = empty($forward) ? M_REFERER : $forward; $forwardstr = '&forward='.rawurlencode($forward); $aedit = new cls_farcedit; $aedit->set_aid($aid); $aedit->basic_data(); !$aedit->aid && mcmessage(lang('confirmchoose message')); $aedit->archive['mid'] != $memberid && mcmessage(lang('please choose yourself message')); $fcatalog = &$aedit->catalog; if(!submitcheck('bforderadd') && !submitcheck('bfordersedit')){//是否已有未激活定单//是否续期 $statestr = $aedit->archive['checked'] ? lang('message content checked') : lang('message content nocheck'); if($aedit->archive['checked'] && $aedit->archive['startdate'] && (empty($aedit->archive['enddate']) || $aedit->archive['enddate'] > $timestamp)){ $statestr .= ",".lang('effecting message'); $statestr .= "<br>".lang('start date').":".date("Y-n-j",$aedit->archive['startdate']); $statestr .= ",".lang('end date').":".($aedit->archive['enddate'] ? date("Y-n-j",$aedit->archive['enddate']) : lang('flong')); }else{ $statestr .= ",".lang('noeffect message'); } tabheader(lang('forder message')); trbasic(lang('message title').' / '.lang('coclass'),'',$aedit->archive['subject'].' / '.$fcatalog['title'],''); trbasic(lang('message purchase price'),'',$fcatalog['taxprice'].$currencys[$fcatalog['taxcrid']]['cname'].' / '.($fcatalog['taxperiod'] ? $fcatalog['taxperiod'].lang('day') : lang('flong')).($fcatalog['taxperiod'] ? ' '.lang('purchase cell').':'.$fcatalog['taxperiod'].lang('day') : ''),''); trbasic(lang('mini purchase cell amount'),'',$fcatalog['taxmini'] ? $fcatalog['taxmini'] : lang('flong'),''); trbasic(lang('message current state'),'',$statestr,''); trbasic(lang('member current currency'),'',$curuser->infos['currency'.$fcatalog['taxcrid']].$currencys[$fcatalog['taxcrid']]['cname'],''); tabfooter(); tabheader(lang('forder manager'),'fordersedit',"?action=farchivesedit&deal=forder&aid=$aid&forward=".rawurlencode($forward),8); trcategory(array(lang('delete'),lang('message content'),lang('purchase cell'),lang('purchase days'),lang('purchase currency'),lang('orders date'),lang('check'))); $query = $db->query("SELECT o.*,a.subject,a.caid FROM {$tblprefix}forders o LEFT JOIN {$tblprefix}farchives a ON a.aid=o.aid WHERE o.aid=$aid ORDER BY o.aid DESC"); $itemstr = ''; while($row = $db->fetch_array($query)){ $itemstr .= "<tr><td align=\"center\" class=\"item1\" width=\"30\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$row[foid]]\" value=\"$row[foid]\"".($row['checked'] ? ' disabled' : '').">\n". "<td class=\"item2\">".$row['subject']."</td>\n". "<td align=\"center\" class=\"item1\" width=\"60\">".(empty($row['ordercells']) ? lang('flong') : $row['ordercells'])."</td>\n". "<td align=\"center\" class=\"item2\" width=\"60\">".(empty($row['orderdays']) ? lang('flong') : $row['orderdays'])."</td>\n". "<td align=\"center\" class=\"item1\" width=\"80\">".$row['crvalue'].$currencys[$row['crid']]['cname']."</td>\n". "<td align=\"center\" class=\"item2\" width=\"70\">".date("$dateformat",$row['createdate'])."</td>\n". "<td align=\"center\" class=\"item1\" width=\"30\">".($row['checked'] ? 'Y' : '-')."</td>\n". "</tr>\n"; } echo $itemstr; tabfooter('bfordersedit',lang('delete')); tabheader(lang('add forder'),'forderadd',"?action=farchivesedit&deal=forder&aid=$aid&forward=".rawurlencode($forward)); if($fcatalog['taxmini']){ trbasic(lang('purchase cell amount'),'fordernew[ordercells]'); }else{ trbasic(lang('purchase cell amount'),'',lang('flong'),''); } tabfooter('bforderadd'); }elseif(submitcheck('bforderadd')){ ($fcatalog['taxmini'] && empty($fordernew['ordercells'])) && mcmessage(lang('please setting purchase cell amount'),M_REFERER); if($db->result_one("SELECT COUNT(*) FROM {$tblprefix}forders WHERE aid='$aid' AND (ordercells=0 OR checked=0)")){//ordercells为0表示永久有效信息 mcmessage(lang('dont repeat send orders'),$forward); } $fordernew['ordercells'] = $fcatalog['taxmini'] ? max($fcatalog['taxmini'],intval($fordernew['ordercells'])) : 0; $crvalue = empty($fcatalog['taxmini']) ? $fcatalog['taxprice'] : ($fcatalog['taxprice'] * $fordernew['ordercells']); $orderdays = empty($fcatalog['taxmini']) ? 0 : ($fcatalog['taxperiod'] * $fordernew['ordercells']); $db->query("INSERT INTO {$tblprefix}forders SET aid='".$aedit->aid."', mid='".$curuser->infos['mid']."', mname='".$curuser->infos['mname']."', ordercells='".$fordernew['ordercells']."', orderdays='$orderdays', crid='".$fcatalog['taxcrid']."', crvalue='$crvalue', createdate='$timestamp'"); unset($aedit); mcmessage(lang('forder send finish'),$forward); }elseif(submitcheck('bfordersedit')){ if(!empty($delete)){ $db->query("DELETE FROM {$tblprefix}forders WHERE foid IN (".mimplode($delete).") AND checked=0",'SILENT'); } mcmessage(lang('forder modify finish'),$forward); } }elseif($deal == 'consult'){ $forward = empty($forward) ? M_REFERER : $forward; $aedit = new cls_farcedit; $aedit->set_aid($aid); $aedit->basic_data(); if(!$aedit->aid || !$aedit->archive['checked']) mcmessage(lang('confirmchoose message'),$forward);//只有已审信息才可以继续咨询 $aedit->archive['mid'] != $memberid && mcmessage(lang('please choose yourself message')); $chid = $aedit->channel['chid']; empty($fchannels[$chid]['cumode']) && mcmessage(lang('please point consult channel'),$forward); if(!submitcheck('bfconsultadd')){ tabheader(lang('consult based message')); trbasic(lang('consult title'),'',$aedit->archive['subject']." <a href=\"?action=farchivesedit&aid=".$aedit->archive['aid']."\">>>".lang('detail')."</a>",''); trbasic(lang('message coclass'),'',$fcatalogs[$aedit->archive['caid']]['title'],''); trbasic(lang('add time'),'',date("$dateformat $timeformat",$aedit->archive['createdate']),''); tabfooter(); tabheader(lang('consult commu list')); trcategory(array(lang('based message'),lang('consult and reply content'))); $query = $db->query("SELECT * FROM {$tblprefix}consults WHERE aid='$aid'"); $i = 0; while($item = $db->fetch_array($query)){ !$item['reply'] && $i ++; $cid = $item['cid']; trbasic('<b>'.$item['mname'].'</b> '.(empty($item['reply']) ? lang('consult') : lang('reply')).' :<br>'.date("$dateformat $timeformat",$item['createdate']),'','<br>'.$item['content'].'<br> ',''); } tabfooter(); if($i < 10){ tabheader(lang('continue consult'),'fconsultadd','?action=farchivesedit&deal=consult&aid='.$aid.'&forward='.rawurlencode($forward)); trbasic(lang('consult content'),'contentadd','','btextarea'); tabfooter('bfconsultadd'); }else{ tabheader(lang('continue consult')); trbasic(lang('consult content'),'',lang('overconsult'),''); tabfooter(); } }elseif(submitcheck('bfconsultadd')){ if($count = $db->result_one("SELECT COUNT(*) FROM {$tblprefix}consults WHERE aid='$aid' AND reply='0'")){ $count > 10 && mcmessage(lang('over max amount limited'),M_REFERER); } $contentadd = empty($contentadd) ? '' : trim($contentadd); empty($contentadd) && mcmessage(lang('data missing'),M_REFERER); $aedit->channel['culength'] && $contentadd = cutstr($contentadd,$aedit->channel['culength']); $contentadd = mnl2br(mhtmlspecialchars($contentadd)); $db->query("INSERT INTO {$tblprefix}consults SET aid='$aid', content='$contentadd', mid='$memberid', mname='".$curuser->infos['mname']."', createdate='$timestamp' "); $db->query("UPDATE {$tblprefix}farchives SET qstate='new' WHERE aid='$aid'"); mcmessage(lang('add consult succeed'),$forward); } } ?>