www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/admina/gmissions.inc.php
<? (!defined('M_COM') || !defined('M_ADMIN')) && exit('No Permission'); load_cache('rprojects,cotypes,channels,vcps,permissions,currencys'); load_cache('gmodels,gmissions,catalogs,altypes',$sid); cache_merge($channels,'channels',$sid); include_once M_ROOT."./include/gather.fun.php"; include_once M_ROOT."./include/gather.cls.php"; include_once M_ROOT."./include/upload.cls.php"; include_once M_ROOT."./include/fields.fun.php"; include_once M_ROOT."./include/fields.cls.php"; include_once M_ROOT."./include/commu.fun.php"; include_once M_ROOT."./include/notice.cls.php"; include_once M_ROOT."./include/arcedit.cls.php"; aheader(); $gmidsarr = array(); foreach($gmodels as $gmid =>$gmodel) $gmidsarr[$gmid] = $gmodel['cname']; empty($gmidsarr) && amessage(lang('please add gather channel !')); if($action == 'gmissionsedit'){ if(!submitcheck('bgmissionsedit')){ a_guide('gmissionadd'); tabheader(lang('gather mission manager')." >><a href=\"?entry=gmissions&action=gmissionadd$param_suffix\">".lang('add mission')."</a>",'gmissionsedit',"?entry=gmissions&action=gmissionsedit$param_suffix",'9'); trcategory(array('<input class="checkbox" type="checkbox" name="chkall" onclick="checkall(this.form)">'.lang('del'),lang('mission cname'),lang('gather model'),lang('inalbum mission'),lang('1. netsite gather'),lang('2. content gather'),lang('3. content output'),lang('detail0'),lang('onekey all finish'))); foreach($gmissions as $k => $gmission){ $gmission = read_cache('gmission',$k,'',$sid); if(empty($gmission['pid'])){ gmission_list(); if(!empty($gmission['sonid'])){ $gmission = read_cache('gmission',$gmission['sonid'],'',$sid); gmission_list(); } } } tabfooter('bgmissionsedit',lang('modify')); }else{ if(!empty($delete)){ foreach($delete as $k){ $db->query("DELETE FROM {$tblprefix}gmissions WHERE gsid=$k"); $db->query("DELETE FROM {$tblprefix}gurls WHERE gsid=$k");//将相关记录清除 unset($gmissionsnew[$k]); del_cache('gmission',$k,'',$sid); if($gmissions[$k]['pid']){//如果有父任务,将关联关系清除 $db->query("UPDATE {$tblprefix}gmissions SET sonid='0' WHERE gsid='".$gmissions[$k]['pid']."'"); } if($gmissions[$k]['sonid']){//如有辑内任务,将辑内任务一并删除 $db->query("DELETE FROM {$tblprefix}gmissions WHERE gsid='".$gmissions[$k]['sonid']."'"); $db->query("DELETE FROM {$tblprefix}gurls WHERE gsid='".$gmissions[$k]['sonid']."'"); unset($gmissionsnew[$gmissions[$k]['sonid']]); del_cache('gmission',$gmissions[$k]['sonid'],'',$sid); } } } if(!empty($gmissionsnew)){ foreach($gmissionsnew as $k => $v){ $v['cname'] = empty($v['cname']) ? addslashes($gmissions[$k]['cname']) : $v['cname']; if($v['cname'] != addslashes($gmissions[$k]['cname'])){ $db->query("UPDATE {$tblprefix}gmissions SET cname='$v[cname]' WHERE gsid=$k"); } } } updatecache('gmissions','',$sid); adminlog(lang('edit gather mission manager list')); amessage(lang('gather mission modify finish'),"?entry=gmissions&action=gmissionsedit$param_suffix"); } }elseif($action == 'gmissionadd'){ $pid = empty($pid) ? 0 : max(0,intval($pid)); if(empty($gmissions[$pid])) $pid = 0; if(!submitcheck('bgmissionadd')){ a_guide('gmissionadd'); tabheader(lang('gather mission add'),'gmissionadd',"?entry=gmissions&action=gmissionadd$param_suffix"); trbasic(lang('gather mission cname'),'gmissionadd[cname]'); trbasic(lang('gather model'),'gmissionadd[gmid]',makeoption($gmidsarr),'select'); if($pid){ trbasic(lang('belong gather mission'),'',$gmissions[$pid]['cname'],''); trhidden('pid',$pid); } tabfooter('bgmissionadd',lang('add')); }else{ $gmissionadd['cname'] = trim(strip_tags($gmissionadd['cname'])); (!$gmissionadd['cname'] || !$gmissionadd['gmid']) && amessage(lang('gather mission data missing'),M_REFERER); $db->query("INSERT INTO {$tblprefix}gmissions SET cname='$gmissionadd[cname]',gmid='$gmissionadd[gmid]',pid='$pid',sid='$sid'"); if($pid && $sonid = $db->insert_id()){ $db->query("UPDATE {$tblprefix}gmissions SET sonid='$sonid' WHERE gsid='$pid'"); } updatecache('gmissions','',$sid); adminlog(lang('add gather mission')); amessage(lang('gather mission add finish'),"?entry=gmissions&action=gmissionsedit$param_suffix"); } }elseif($action == 'gmissionurls' && $gsid){ $gmission = read_cache('gmission',$gsid,'',$sid); $gmodel = $gmodels[$gmission['gmid']]; if(!submitcheck('bgmissionurls')){ a_guide('gmissionurls'); $mchararr = array('gbk' => 'GBK/GB2312','utf8' => 'UTF-8','big5' => 'BIG5',); tabheader(lang('gather based setting')." >><a href=\"?entry=gmissions&action=urlstest&gsid=$gsid$param_suffix\">".lang('test rule')."</a>",'gmissionurls',"?entry=gmissions&action=gmissionurls&gsid=$gsid$param_suffix"); trbasic(lang('gather mission cname'),'gmissionnew[cname]',$gmission['cname']); trbasic(lang('charset'),'gmissionnew[mcharset]',makeoption($mchararr,$gmission['mcharset']),'select'); trbasic(lang('timeout ( second )'),'gmissionnew[timeout]',empty($gmission['timeout']) ? 0 : $gmission['timeout'],'text',lang('agnolimit')); echo "<tr>\n". "<td width=\"25%\" class=\"item1\">".lang('login website')."Cookies</td>\n". "<td class=\"item2\"><input type=\"text\" size=\"60\" name=\"gmissionnew[mcookies]\" value=\"".mhtmlspecialchars($gmission['mcookies'])."\"></td>\n". "</tr>\n"; tabfooter(); tabheader(lang('netsite source rule')); if(empty($gmission['pid'])){ trbasic(lang('handwork source netsite <br>( oneperline netsite )'),'gmissionnew[uurls]',$gmission['uurls'],'textarea'); echo "<tr>\n". "<td width=\"25%\" class=\"item1\">".lang('serial source netsite')."</td>\n". "<td class=\"item2\"><input type=\"text\" size=\"60\" name=\"gmissionnew[uregular]\" value=\"".mhtmlspecialchars($gmission['uregular'])."\"></td>\n". "</tr>\n"; trbasic(lang('serial start pagecode'),'gmissionnew[ufromnum]',$gmission['ufromnum']); trbasic(lang('serial end pagecode'),'gmissionnew[utonum]',$gmission['utonum']); }else{ $frompagearr = array(0 => lang('based content page0'),1 => lang('content trace page0 1'),2 => lang('content trace page0 2')); trbasic(lang('ufrompage'),'gmissionnew[ufrompage]',makeoption($frompagearr,$gmission['ufrompage']),'select'); } trbasic(lang('reverseorder gather'),'gmissionnew[udesc]',$gmission['udesc'],'radio'); tabfooter(); tabheader(lang('netsite gather rule')); trbasic(lang('page initial range <br> gather pattern'),'gmissionnew[uregion]',$gmission['uregion'],'textarea'); trbasic(lang('netsite list cell split tag'),'gmissionnew[uspilit]',$gmission['uspilit']); trbasic(lang('netsite gather pattern'),'gmissionnew[uurltag]',$gmission['uurltag'],'textarea'); trbasic(lang('title gather pattern'),'gmissionnew[utitletag]',$gmission['utitletag'],'textarea'); trbasic(lang('result netsite mustinc'),'gmissionnew[uinclude]',$gmission['uinclude']); trbasic(lang('result netsite forbidinc'),'gmissionnew[uforbid]',$gmission['uforbid']); tabfooter(); tabheader(lang('trace netsite rule')); trbasic(lang('trace netsite 1 gather pattern'),'gmissionnew[uurltag1]',$gmission['uurltag1'],'textarea'); trbasic(lang('trace netsite 1 mustinc'),'gmissionnew[uinclude1]',$gmission['uinclude1']); trbasic(lang('trace netsite 1 forbidinc'),'gmissionnew[uforbid1]',$gmission['uforbid1']); trbasic(lang('trace netsite 2 gather pattern'),'gmissionnew[uurltag2]',$gmission['uurltag2'],'textarea'); trbasic(lang('trace netsite 2 mustinc'),'gmissionnew[uinclude2]',$gmission['uinclude2']); trbasic(lang('trace netsite 2 forbidinc'),'gmissionnew[uforbid2]',$gmission['uforbid2']); tabfooter('bgmissionurls'); }else{ $gmissionnew['cname'] = empty($gmissionnew['cname']) ? $gmission['cname'] : $gmissionnew['cname']; if(empty($gmission['pid'])){ $gmissionnew['uurls'] = trim($gmissionnew['uurls']); $gmissionnew['uregular'] = trim($gmissionnew['uregular']); $gmissionnew['ufromnum'] = max(0,intval($gmissionnew['ufromnum'])); $gmissionnew['utonum'] = max(0,intval($gmissionnew['utonum'])); $gmissionnew['ufrompage'] = 0; }else{ $gmissionnew['uurls'] = ''; $gmissionnew['uregular'] = ''; $gmissionnew['ufromnum'] = 0; $gmissionnew['utonum'] = 0; $gmissionnew['ufrompage'] = max(0,intval($gmissionnew['ufrompage'])); } $db->query("UPDATE {$tblprefix}gmissions SET cname='$gmissionnew[cname]', timeout='$gmissionnew[timeout]', mcharset='$gmissionnew[mcharset]', mcookies='$gmissionnew[mcookies]', uurls='$gmissionnew[uurls]', uregular='$gmissionnew[uregular]', ufromnum='$gmissionnew[ufromnum]', utonum='$gmissionnew[utonum]', ufrompage='$gmissionnew[ufrompage]', udesc='$gmissionnew[udesc]', uregion='$gmissionnew[uregion]', uspilit='$gmissionnew[uspilit]', uurltag='$gmissionnew[uurltag]', utitletag='$gmissionnew[utitletag]', uinclude='$gmissionnew[uinclude]', uforbid='$gmissionnew[uforbid]', uurltag1='$gmissionnew[uurltag1]', uinclude1='$gmissionnew[uinclude1]', uforbid1='$gmissionnew[uforbid1]', uurltag2='$gmissionnew[uurltag2]', uinclude2='$gmissionnew[uinclude2]', uforbid2='$gmissionnew[uforbid2]' WHERE gsid=$gsid"); updatecache('gmissions','',$sid); adminlog(lang('detail0 modify gather mission')); amessage(lang('gather mission modify finish'), "?entry=gmissions&action=gmissionurls&gsid=$gsid$param_suffix"); } }elseif($action == 'gmissionfields' && $gsid){ $gmission = read_cache('gmission',$gsid,'',$sid); $gmodel = read_cache('gmodel',$gmission['gmid'],'',$sid); $fields = read_cache('fields',$gmodel['chid']); if(!submitcheck('bgmissionfields')){ $mpfieldarr = array('' => lang('none splitpage field')); foreach($fields as $k => $v){ if($v['available'] && isset($gmodel['gfields'][$k])){ $mpfieldarr[$k] = $v['cname']; } } a_guide('gmissionfields'); tabheader(lang('splitpage gather rule')." >><a href=\"?entry=gmissions&action=contentstest&gsid=$gsid$param_suffix\">".lang('test rule')."</a>",'gmissionfields',"?entry=gmissions&action=gmissionfields&gsid=$gsid$param_suffix",4); trbasic(lang('splitpage field'),'gmissionnew[mpfield]',makeoption($mpfieldarr,isset($gmission['mpfield']) ? $gmission['mpfield'] : ''),'select'); trbasic(lang('notall splitpage navi'),'gmissionnew[mpmode]',$gmission['mpmode'],'radio'); trbasic(lang('splitpage navi region <br> gather pattern'),'gmissionnew[mptag]',isset($gmission['mptag']) ? $gmission['mptag'] : '','textarea'); trbasic(lang('splitpage url mustinc'),'gmissionnew[mpinclude]',isset($gmission['mpinclude']) ? $gmission['mpinclude'] : ''); trbasic(lang('splitpage url forbidinc'),'gmissionnew[mpforbid]',isset($gmission['mpforbid']) ? $gmission['mpforbid'] : ''); tabfooter(); tabheader(lang('gather field rule'),'',"",4); foreach($fields as $k => $v){ if($v['available'] && isset($gmodel['gfields'][$k])){ missionfield($v['cname'],$k,empty($gmission['fsettings'][$k]) ? array() : $gmission['fsettings'][$k],$v['datatype']); } } tabfooter('bgmissionfields'); }else{ if(!empty($fsettingsnew)){ foreach($fsettingsnew as $k => $fsettingnew){ if(!in_array($fields[$k]['datatype'],array('images','files','flashs','medias'))){ $fsettingnew['clearhtml'] = isset(${'clearhtml'.$k}) ? implode(',',${'clearhtml'.$k}) : ''; } foreach($fsettingnew as $t => $v){ $fsettingnew[$t] = stripslashes($v); } $fsettingsnew[$k] = $fsettingnew; } } $fsettingsnew = empty($fsettingsnew) ? '' : addslashes(serialize($fsettingsnew)); $db->query("UPDATE {$tblprefix}gmissions SET mpfield='$gmissionnew[mpfield]', mpmode='$gmissionnew[mpmode]', mptag='$gmissionnew[mptag]', mpinclude='$gmissionnew[mpinclude]', mpforbid='$gmissionnew[mpforbid]', fsettings='$fsettingsnew' WHERE gsid=$gsid"); updatecache('gmissions','',$sid); adminlog(lang('detail0 modify gather mission')); amessage(lang('gather mission edit finish'), "?entry=gmissions&action=gmissionfields&gsid=$gsid$param_suffix"); } }elseif($action == 'gmissionoutput' && $gsid){ $gmission = read_cache('gmission',$gsid,'',$sid); $gmodel = read_cache('gmodel',$gmission['gmid'],'',$sid); $dvalues = empty($gmission['dvalues']) ? array() : $gmission['dvalues']; $chid = $gmodel['chid']; $atid = $gmodel['atid']; $channel = read_cache('channel',$chid); $fields = read_cache('fields',$chid); if(!submitcheck('bgmissionoutput')){ $a_field = new cls_field; a_guide('gmissionoutput'); $mustsarr = array(); foreach($fields as $k => $v){ if($v['available'] && in_array($k,array_keys($gmodel['gfields']))){ $mustsarr[$k] = $v['cname']; } } tabheader('['.$gmission['cname'].lang('] output based setting'),'gmissionoutput',"?entry=gmissions&action=gmissionoutput&gsid=$gsid$param_suffix",2,1,1); $submitstr = ''; trbasic(lang('mustfields'),'',multiselect('dvaluesnew[musts][]',$mustsarr,empty($dvalues['musts']) ? array() : explode(',',$dvalues['musts'])),''); if($fields['abstract']['available'] && !in_array('abstract',array_keys($gmodel['gfields']))){ trbasic(lang('auto abstract'),'dvaluesnew[autoabstract]',empty($dvalues['autoabstract']) ? 0 : $dvalues['autoabstract'],'radio'); } if($fields['thumb']['available'] && !in_array('thumb',array_keys($gmodel['gfields']))){ trbasic(lang('auto thumb'),'dvaluesnew[autothumb]',empty($dvalues['autothumb']) ? 0 : $dvalues['autothumb'],'radio'); } tabfooter(); tabheader('['.$gmission['cname'].lang('] output default value')); $ucaidsarr = $atid ? ucaidsarr($atid,1) : ucaidsarr($chid); trbasic(lang('belong catalog').' *','dvaluesnew[caid]',umakeoption($ucaidsarr,empty($dvalues['caid']) ? 0 : $dvalues['caid']),'select'); $submitstr .= makesubmitstr('dvaluesnew[caid]',1,'int'); foreach($fields as $k => $field){ if($field['available'] && !in_array($k,array_keys($gmodel['gfields'])) && !in_array($k,array('abstract','thumb'))){ $a_field->init(); $a_field->field = read_cache('field',$chid,$k); $a_field->oldvalue = !isset($dvalues[$k]) ? '' : $dvalues[$k]; $a_field->trfield('dvaluesnew'); $submitstr .= $a_field->submitstr; } } foreach($cotypes as $coid => $cotype){ if(!$cotype['self_reg']){ if(!$atid && (!$cotype['chids'] || !in_array($chid,explode(',',$cotype['chids'])))){ $optionarr = empty($cotype['notblank']) ? array('0' => array('title' =>lang('nosetting'))) : array(); $optionarr = $optionarr + uccidsarr($coid,$chid); trbasic($cotype['cname'],"dvaluesnew[cotype$coid]",umakeoption($optionarr,empty($dvalues["cotype$coid"]) ? 0 : $dvalues["cotype$coid"]),'select'); }elseif($atid && (!$cotype['atids'] || !in_array($atid,explode(',',$cotype['atids'])))){ $optionarr = empty($cotype['notblank']) ? array('0' => array('title' =>lang('nosetting'))) : array(); $optionarr = $optionarr + uccidsarr($coid,$atid,1); trbasic($cotype['cname'],"dvaluesnew[cotype$coid]",umakeoption($optionarr,empty($dvalues["cotype$coid"]) ? 0 : $dvalues["cotype$coid"]),'select'); } } } trbasic(lang('content permission project'),'dvaluesnew[permission]',makeoption(pmidsarr(),empty($dvalues['permission']) ? 0 : $dvalues['permission']),'select'); trbasic(lang('browse archive saleprice'),'dvaluesnew[salecp]',makeoption(array('' => lang('freesale')) + $vcps['sale'],empty($dvalues['salecp']) ? '' : $dvalues['salecp']),'select'); trbasic(lang('attachment operate saleprice'),'dvaluesnew[fsalecp]',makeoption(array('' => lang('freesale')) + $vcps['fsale'],empty($dvalues['fsalecp']) ? '' : $dvalues['fsalecp']),'select'); tabfooter('bgmissionoutput'); check_submit_func($submitstr); }else{//数组内的addsalshes if(empty($dvaluesnew['caid'])) amessage(lang('confirmchoose catalog'),"?entry=gmissions&action=gmissionoutput&gsid=$gsid$param_suffix"); $dvaluesnew['atid'] = $atid; $dvaluesnew['musts'] = empty($dvaluesnew['musts']) ? '' : implode(',',$dvaluesnew['musts']); foreach($cotypes as $coid => $cotype){ if(!$atid && (!$cotype['chids'] || !in_array($chid,explode(',',$cotype['chids'])))){ $dvaluesnew["cotype$coid"] = empty($dvaluesnew["cotype$coid"]) ? 0 : $dvaluesnew["cotype$coid"]; }elseif($atid && (!$cotype['atids'] || !in_array($atid,explode(',',$cotype['atids'])))){ $dvaluesnew["cotype$coid"] = empty($dvaluesnew["cotype$coid"]) ? 0 : $dvaluesnew["cotype$coid"]; } } $dvaluesnew['autoabstract'] = empty($dvaluesnew['autoabstract']) ? 0 : $dvaluesnew['autoabstract']; $dvaluesnew['autothumb'] = empty($dvaluesnew['autothumb']) ? 0 : $dvaluesnew['autothumb']; $c_upload = new cls_upload; $fields = fields_order($fields); $a_field = new cls_field; foreach($fields as $k => $field){ if($field['available'] && !in_array($k,array_keys($gmodel['gfields'])) && !in_array($k,array('abstract','thumb'))){ $a_field->init(); $a_field->field = read_cache('field',$chid,$k); $a_field->oldvalue = !isset($dvalues[$k]) ? '' : $dvalues[$k]; $a_field->deal('dvaluesnew'); if(!empty($a_field->error)){//非采集字段的设置 $c_upload->rollback(); amessage($a_field->error,M_REFERER); } $dvaluesnew[$k] = $a_field->newvalue; } } unset($a_field); if(!empty($dvaluesnew)){ foreach($dvaluesnew as $t => $v){ $dvaluesnew[$t] = stripslashes($v); } } $dvaluesnew = empty($dvaluesnew) ? '' : addslashes(serialize($dvaluesnew)); $db->query("UPDATE {$tblprefix}gmissions SET dvalues='$dvaluesnew' WHERE gsid=$gsid"); $c_upload->saveuptotal(1); updatecache('gmissions','',$sid); adminlog(lang('detail0 modify gather mission')); amessage(lang('output rule modify finish'), "?entry=gmissions&action=gmissionsedit$param_suffix"); } }elseif($action == 'urlstest' && $gsid){ a_guide('urlstest'); tabheader(lang('gather netsite rule test')); $c_upload = new cls_upload; $gather = new cls_gather; $gather->set_mission($gsid); $message = ''; if($surls = $gather->fetch_surls()){ foreach($surls as $surl) $message .= $surl.'<br>'; }else{ $message = lang('none source netsite').'<br>'; } trbasic(lang('all source netsite'),'',$message,''); $surl = empty($surls) ? '' : $surls[array_rand($surls)]; trbasic(lang('current test source netsite'),'',$surl,''); tabfooter(); tabheader(lang('content netsite list (test netsite result amount limited 30 )'),'','',5); trcategory(array(lang('sn'),lang('netsite title'),lang('content netsite'),lang('trace netsite 1'),lang('trace netsite 2'))); $rets = $gather->fetch_gurls($surl,1);//得到测试网址列表 $i = 0; foreach($rets as $k => $v){ $i ++; $titlestr = empty($v['son']) ? "<b>$v[utitle]</b>" : " $v[utitle]"; $gurlstr = empty($k) ? '-' : "<a href=\"$k\" target=\"_blank\">".mhtmlspecialchars($k)."</a>"; $gurl1str = empty($v['gurl1']) ? '-' : "<a href=\"$v[gurl1]\" target=\"_blank\">".mhtmlspecialchars($v['gurl1'])."</a>"; $gurl2str = empty($v['gurl2']) ? '-' : "<a href=\"$v[gurl2]\" target=\"_blank\">".mhtmlspecialchars($v['gurl2'])."</a>"; echo "<tr>". "<td class=\"item1\" align=\"center\" width=\"40\">$i</td>\n". "<td class=\"item2\">$titlestr</td>\n". "<td class=\"item1\">$gurlstr</td>\n". "<td class=\"item2\">$gurl1str</td>\n". "<td class=\"item1\">$gurl2str</td></tr>\n"; } tabfooter(); echo "<input class=\"button\" type=\"submit\" name=\"\" value=\"".lang('goback')."\" onclick=\"history.go(-1);\">\n"; }elseif($action == 'contentstest' && $gsid){//只从数据库中加入有效链接来测试 a_guide('contentstest'); tabheader(lang('gather content rule test')); $counts = $db->result_one("SELECT COUNT(*) FROM {$tblprefix}gurls WHERE gsid='$gsid' AND gatherdate=0"); trbasic(lang('current want gather of netsite amount'),'',$counts ? $counts : lang('please gather netsite'),''); if($counts){ $item = $db->fetch_one("SELECT guid,gurl,utitle FROM {$tblprefix}gurls WHERE gsid='$gsid' AND gatherdate=0 AND guid >= (SELECT floor(RAND() * (SELECT MAX(guid) FROM {$tblprefix}gurls))) ORDER BY guid LIMIT 1"); trbasic(lang('current test netsite title'),'',mhtmlspecialchars($item['utitle']),''); trbasic(lang('current test netsite'),'',"<a href=\"$item[gurl]\" target=\"_blank\">$item[gurl]</a>",''); $c_upload = new cls_upload; $gather = new cls_gather; $gather->set_mission($gsid); $contents = $gather->gather_guid($item['guid'],1); if($contents){ $chid = $gmodels[$gmissions[$gsid]['gmid']]['chid']; $fields = read_cache('fields',$chid); foreach($contents as $k => $v){ trbasic('['.$fields[$k]['cname'].']'.lang('gather result'),'',mhtmlspecialchars($v),''); } }else{ trbasic(lang('gather result'),'','',''); } } tabfooter(); echo "<input class=\"button\" type=\"submit\" name=\"\" value=\"".lang('goback')."\" onclick=\"history.go(-1);\">\n"; }elseif($action == 'contentsoption' && $gsid){ empty($gmissions[$gsid]) && amessage(lang('confirmchoose gather mission'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $page = !empty($page) ? max(1, intval($page)) : 1; submitcheck('bfilter') && $page = 1; $viewdetail = empty($viewdetail) ? 0 : $viewdetail; $gathered = isset($gathered) ? $gathered : '-1'; $outputed = isset($outputed) ? $outputed : '-1'; $abover = isset($abover) ? $abover : '-1'; $utitle = empty($utitle) ? '' : $utitle; $filterstr = ''; foreach(array('viewdetail','gathered','outputed','abover','utitle') as $k) $filterstr .= "&$k=".rawurlencode(stripslashes($$k)); $wheresql = "WHERE gsid='$gsid'"; $gathered != '-1' && $wheresql .= " AND gatherdate".($gathered ? '!=' : '=')."'0'"; $outputed != '-1' && $wheresql .= " AND outputdate".($outputed ? '!=' : '=')."'0'"; $abover != '-1' && $wheresql .= " AND abover='$abover'"; $utitle && $wheresql .= " AND utitle LIKE '%".str_replace(array(' ','*'),'%',addcslashes($utitle,'%_'))."%'"; if(!submitcheck('barcsedit')){ $gatheredarr = array('-1' => lang('nolimit'),'0' => lang('no1 gather'),'1' => lang('already1 gather')); $outputedarr = array('-1' => lang('nolimit'),'0' => lang('no1 output'),'1' => lang('already1 output')); $aboverarr = array('-1' => lang('nolimit'),'0' => lang('noabover'),'1' => lang('abover')); tabheader(lang('filter0 gather record').viewcheck('viewdetail',$viewdetail,'tbodyfilter').' '.strbutton('bfilter','filter0'). ' '.lang('current gather mission : ').$gmissions[$gsid]['cname'], 'arcsedit',"?entry=gmissions&action=contentsoption&gsid=$gsid&page=$page$param_suffix"); echo "<tbody id=\"tbodyfilter\" style=\"display: ".(empty($viewdetail) ? 'none' : '')."\">"; trbasic(lang('gather state'),'',makeradio('gathered',$gatheredarr,$gathered),''); trbasic(lang('output state'),'',makeradio('outputed',$outputedarr,$outputed),''); trbasic(lang('weather abover album'),'',makeradio('abover',$aboverarr,$abover),''); trbasic(lang('search title'),'utitle',$utitle,'text',lang('agsearchkey')); echo "</tbody>"; tabfooter(); $pagetmp = $page; do{ $query = $db->query("SELECT * FROM {$tblprefix}gurls $wheresql ORDER BY guid DESC LIMIT ".(($pagetmp - 1) * $atpp).",$atpp"); $pagetmp--; } while(!$db->num_rows($query) && $pagetmp); $itemstr = ''; while($row = $db->fetch_array($query)){ $gatherstr = $row['gatherdate'] ? date("Y-m-d",$row['gatherdate']) : '-'; $outputstr = $row['outputdate'] ? date("Y-m-d",$row['outputdate']) : '-'; $gurl1str = $row['gurl1'] ? "<a href=$row[gurl1] target=\"_blank\">".lang('look')."</a>" : '-'; $gurl2str = $row['gurl2'] ? "<a href=$row[gurl2] target=\"_blank\">".lang('look')."</a>" : '-'; $aboverstr = $row['abover'] ? 'Y' : '-'; $itemstr .= "<tr><td align=\"center\" class=\"item1\"><input class=\"checkbox\" type=\"checkbox\" name=\"selectid[$row[guid]]\" value=\"$row[guid]\">\n". "<td class=\"item2\"><a href=$row[gurl] target=\"_blank\">$row[utitle]</a></td>\n". "<td align=\"center\" class=\"item1\">$gurl1str</td>\n". "<td align=\"center\" class=\"item2\">$gurl2str</td>\n". "<td align=\"center\" class=\"item1\">$gatherstr</td>\n". "<td align=\"center\" class=\"item2\">$outputstr</td>\n". "<td align=\"center\" class=\"item1\">$aboverstr</td>\n". "<td align=\"center\" class=\"item2\"><a href=\"?entry=gmissions&action=contentdetail&guid=$row[guid]$param_suffix\">".lang('look')."</a></td></tr>\n"; } $counts = $db->result_one("SELECT count(*) FROM {$tblprefix}gurls $wheresql"); $multi = multi($counts,$atpp,$page, "?entry=gmissions&action=contentsoption&gsid=$gsid$filterstr$param_suffix"); tabheader(lang('content gather manager')." <input class=\"checkbox\" type=\"checkbox\" name=\"select_all\" value=\"1\"> ".lang('selectallpage'),'','',8); trcategory(array("<input class=\"checkbox\" type=\"checkbox\" name=\"chkall\" onclick=\"checkall(this.form, 'selectid', 'chkall')\">",lang('content netsite'),lang('trace netsite 1'),lang('trace netsite 2'),lang('gather'),lang('output'),lang('abover'),lang('result'))); echo $itemstr; tabfooter(); echo $multi; $aboverarr = array(0 => lang('no1 abover'),1 => lang('already1 abover')); tabheader(lang('operate item')); echo "<tr><td class=\"item1\" colspan=\"2\">". "<input class=\"radio\" type=\"radio\" name=\"arcdeal\" value=\"delete\"> ".lang('delete').' '. "<input class=\"radio\" type=\"radio\" name=\"arcdeal\" value=\"gather\" checked> ".lang('gather').' '. "<input class=\"radio\" type=\"radio\" name=\"arcdeal\" value=\"output\"> ".lang('output').' '. "</td></tr>"; trbasic("<input class=\"radio\" type=\"radio\" name=\"arcdeal\" value=\"abover\"> ".lang('setting album abover state'),'',makeradio('arcabover',$aboverarr),''); tabfooter('barcsedit'); }else{ if(empty($selectid) && empty($select_all)) amessage(lang('confirmselect netsite'),"?entry=gmissions&action=contentsoption&gsid=$gsid$filterstr$param_suffix"); if(!empty($select_all)){ $parastr = ""; foreach(array('arcabover') as $k) $parastr .= "&$k=".$$k; $selectid = array(); $npage = empty($npage) ? 1 : $npage; if(empty($pages)){ $counts = $db->result_one("SELECT count(*) FROM {$tblprefix}gurls $wheresql"); $pages = @ceil($counts / $atpp); } if($npage <= $pages){ $fromstr = empty($fromid) ? "" : "guid<$fromid"; $nwheresql = !$wheresql ? ($fromstr ? "WHERE $fromstr" : "") : ($wheresql.($fromstr ? " AND " : "").$fromstr); $query = $db->query("SELECT guid FROM {$tblprefix}gurls $nwheresql ORDER BY guid DESC LIMIT 0,$atpp"); while($item = $db->fetch_array($query)) $selectid[] = $item['guid']; } } if($arcdeal == 'delete'){ $db->query("DELETE FROM {$tblprefix}gurls WHERE guid IN (".mimplode($selectid).")",'UNBUFFERED'); }elseif($arcdeal == 'gather'){ $c_upload = new cls_upload; $gather = new cls_gather; $gather->set_mission($gsid); foreach($selectid as $guid){ $gather->gather_guid($guid,0); } unset($gather); }elseif($arcdeal == 'output'){ $c_upload = new cls_upload; $gather = new cls_gather; $gather->set_mission($gsid); foreach($selectid as $guid){ $gather->output_guid($guid); } unset($gather); }elseif($arcdeal == 'abover'){ $gmodels[$gmissions[$gsid]['gmid']]['atid'] && $db->query("UPDATE {$tblprefix}gurls SET abover='$arcabover' WHERE guid IN (".mimplode($selectid).")",'UNBUFFERED'); } if(!empty($select_all)){ $npage ++; if($npage <= $pages){ $fromid = min($selectid); $transtr = ''; $transtr .= "&select_all=1"; $transtr .= "&pages=$pages"; $transtr .= "&npage=$npage"; $transtr .= "&barcsedit=1"; $transtr .= "&fromid=$fromid"; amessage(lang('operating')."<br>".lang('all')." $pages ".lang('page0').",".lang('dealing')." $npage ".lang('page0')."<br><br> <a href=\"?entry=gmissions&action=contentsoption&gsid=$gsid$filterstr$param_suffix\">>>".lang('pause')."</a>", "?entry=gmissions&action=contentsoption&gsid=$gsid&page=$page$filterstr$transtr$parastr&arcdeal=$arcdeal$param_suffix",200); } } adminlog(lang('content gather admin')); amessage(lang('content gather operate finish'),"?entry=gmissions&action=contentsoption&gsid=$gsid$filterstr$param_suffix"); } }elseif($action == 'contentdetail' && $guid){ if(!$item = $db->fetch_one("SELECT * FROM {$tblprefix}gurls WHERE guid=".$guid)) amessage(lang('please point gather record'),"?entry=gmissions&action=gmissionsedit$param_suffix"); tabheader(lang('gather content detail result')); trbasic(lang('netsite title'),'',mhtmlspecialchars($item['utitle']),''); trbasic(lang('content netsite'),'',$item['gurl'] ? "<a href=\"$item[gurl]\" target=\"_blank\">$item[gurl]</a>" : '-',''); trbasic(lang('trace netsite 1'),'',$item['gurl1'] ? "<a href=\"$item[gurl1]\" target=\"_blank\">$item[gurl1]</a>" : '-',''); trbasic(lang('trace netsite 2'),'',$item['gurl2'] ? "<a href=\"$item[gurl2]\" target=\"_blank\">$item[gurl2]</a>" : '-',''); if($item['contents']){ $item['contents'] = unserialize($item['contents']); $chid = $gmodels[$gmissions[$item['gsid']]['gmid']]['chid']; $fields = read_cache('fields',$chid); foreach($item['contents'] as $k => $v){ trbasic('['.$fields[$k]['cname'].']'.lang('gather result'),'',mhtmlspecialchars($v),''); } }elseif($item['outputdate']){ trbasic(lang('gather content result'),'',lang('content already output'),''); } tabfooter(); echo "<input class=\"button\" type=\"submit\" name=\"\" value=\"".lang('goback')."\" onclick=\"history.go(-1);\">\n"; }elseif($action == 'allauto' && $gsid){ empty($gmissions[$gsid]) && amessage(lang('confirmchoose gather mission'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $gmission = read_cache('gmission',$gsid,'',$sid); $c_upload = new cls_upload; $gather = new cls_gather; $gather->set_mission($gsid); if(empty($deal)){ $surls = $gather->fetch_surls(); foreach($surls as $surl){ $gather->fetch_gurls($surl); } amessage(lang('content netsite gather finish <br> start gather content , please wait'),"?entry=gmissions&action=allauto&gsid=$gsid&deal=gather$param_suffix"); }elseif($deal == 'gather'){ //已采集但未完结的合辑中的子内容也需要采集 $wheresql = "WHERE gsid='$gsid' AND ".($gmission['sonid'] ? 'abover=0' : 'gatherdate=0'); if(empty($pages)){ if(!$nums = $db->result_one("SELECT COUNT(*) FROM {$tblprefix}gurls $wheresql")) amessage(lang('none gather item'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $pages = @ceil($nums / $atpp); $npage = $fromid = 0; } $npage = empty($npage) ? 0 : $npage; $c_upload = new cls_upload; $gather = new cls_gather; $gather->set_mission($gsid); $gather->gather_fields();//先行分析采集规则 empty($gather->fields) && amessage(lang('please setting gather rule !'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $query = $db->query("SELECT guid FROM {$tblprefix}gurls $wheresql AND guid>'$fromid' ORDER BY guid ASC LIMIT 0,$atpp"); while($row = $db->fetch_array($query)){ $gather->gather_guid($row['guid'],0); $fromid = $row['guid']; } unset($gather); $npage ++; if($npage <= $pages){ amessage(lang('operating')."<br> ".lang('all')." $pages ".lang('page0').",".lang('dealing')." ".($npage + 1)." ".lang('page0')."<br><br> <a href=\"?entry=gmissions&action=gmissionsedit$param_suffix\">>>".lang('pause')."</a>", "?entry=gmissions&action=allauto&gsid=$gsid&deal=gather&pages=$pages&npage=$npage&fromid=$fromid$param_suffix", 200); } amessage(lang('content auto gather finish <br> start content output , please wait'),"?entry=gmissions&action=allauto&gsid=$gsid&deal=output$param_suffix"); }elseif($deal == 'output'){ //已入库但未完结的合辑中的子内容也需要入库 $wheresql = "WHERE gsid='$gsid' AND gatherdate<>'0' AND ".($gmission['sonid'] ? 'abover=0' : 'outputdate=0'); if(empty($pages)){ if(!$nums = $db->result_one("SELECT COUNT(*) FROM {$tblprefix}gurls $wheresql")) amessage(lang('none output item'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $pages = @ceil($nums / $atpp); $npage = $fromid = 0; } $c_upload = new cls_upload; $gather = new cls_gather; $gather->set_mission($gsid); $gather->output_configs();//先行分析入库规则 empty($gather->oconfigs) && amessage(lang('please setting output rule !'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $query = $db->query("SELECT guid FROM {$tblprefix}gurls $wheresql AND guid>'$fromid' ORDER BY guid ASC LIMIT 0,$atpp"); while($row = $db->fetch_array($query)){ $gather->output_guid($row['guid']); $fromid = $row['guid']; } unset($gather); $npage ++; if($npage <= $pages){ amessage(lang('operating')."<br> ".lang('all')." $pages ".lang('page0').",".lang('dealing')." ".($npage + 1)." ".lang('page0')."<br><br> <a href=\"?entry=gmissions&action=gmissionsedit$param_suffix\">>>".lang('pause')."</a>", "?entry=gmissions&action=allauto&gsid=$gsid&deal=output&pages=$pages&npage=$npage&fromid=$fromid$param_suffix", 200); } adminlog(lang('onekey auto gather')); amessage(lang('content auto output finish'),"?entry=gmissions&action=gmissionsedit$param_suffix"); } }elseif($action == 'urlsauto' && $gsid){ empty($gmissions[$gsid]) && amessage(lang('confirmchoose gather mission'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $c_upload = new cls_upload; $gather = new cls_gather; $gather->set_mission($gsid); $surls = $gather->fetch_surls(); foreach($surls as $surl){ $gather->fetch_gurls($surl); } unset($gather); adminlog(lang('url auto gather')); amessage(lang('content netsite gather finish'),"?entry=gmissions&action=gmissionsedit$param_suffix"); }elseif($action == 'gatherauto' && $gsid){ empty($gmissions[$gsid]) && amessage(lang('confirmchoose gather mission'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $gmission = read_cache('gmission',$gsid,'',$sid); //已采集但未完结的合辑中的子内容也需要采集 $wheresql = "WHERE gsid='$gsid' AND ".($gmission['sonid'] ? 'abover=0' : 'gatherdate=0'); if(empty($pages)){ if(!$nums = $db->result_one("SELECT COUNT(*) FROM {$tblprefix}gurls $wheresql")) amessage(lang('none gather item'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $pages = @ceil($nums / $atpp); $npage = $fromid = 0; } $npage = empty($npage) ? 0 : $npage; $c_upload = new cls_upload; $gather = new cls_gather; $gather->set_mission($gsid); $gather->gather_fields();//先行分析采集规则 empty($gather->fields) && amessage(lang('please setting gather rule !'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $query = $db->query("SELECT guid FROM {$tblprefix}gurls $wheresql AND guid>'$fromid' ORDER BY guid ASC LIMIT 0,$atpp"); while($row = $db->fetch_array($query)){ $gather->gather_guid($row['guid'],0); $fromid = $row['guid']; } unset($gather); $npage ++; if($npage <= $pages){ amessage(lang('operating')."<br> ".lang('all')." $pages ".lang('page0').",".lang('dealing')." ".($npage + 1)." ".lang('page0')."<br><br> <a href=\"?entry=gmissions&action=gmissionsedit$param_suffix\">>>".lang('pause')."</a>", "?entry=gmissions&action=gatherauto&gsid=$gsid&pages=$pages&npage=$npage&fromid=$fromid$param_suffix", 200); } adminlog(lang('content auto gather')); amessage(lang('content auto gather finish'),"?entry=gmissions&action=gmissionsedit$param_suffix"); }elseif($action == 'outputauto' && $gsid){ empty($gmissions[$gsid]) && amessage(lang('confirmchoose gather mission'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $gmission = read_cache('gmission',$gsid,'',$sid); //已入库但未完结的合辑中的子内容也需要入库 $wheresql = "WHERE gsid='$gsid' AND gatherdate<>'0' AND ".($gmission['sonid'] ? 'abover=0' : 'outputdate=0'); if(empty($pages)){ if(!$nums = $db->result_one("SELECT COUNT(*) FROM {$tblprefix}gurls $wheresql")) amessage(lang('none output item'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $pages = @ceil($nums / $atpp); $npage = $fromid = 0; } $c_upload = new cls_upload; $gather = new cls_gather; $gather->set_mission($gsid); $gather->output_configs();//先行分析入库规则 empty($gather->oconfigs) && amessage(lang('please setting output rule !'),"?entry=gmissions&action=gmissionsedit$param_suffix"); $query = $db->query("SELECT guid FROM {$tblprefix}gurls $wheresql AND guid>'$fromid' ORDER BY guid ASC LIMIT 0,$atpp"); while($row = $db->fetch_array($query)){ $gather->output_guid($row['guid']); $fromid = $row['guid']; } unset($gather); $npage ++; if($npage <= $pages){ amessage(lang('operating')."<br> ".lang('all')." $pages ".lang('page0').",".lang('dealing')." ".($npage + 1)." ".lang('page0')."<br><br> <a href=\"?entry=gmissions&action=gmissionsedit$param_suffix\">>>".lang('pause')."</a>", "?entry=gmissions&action=outputauto&gsid=$gsid&pages=$pages&npage=$npage&fromid=$fromid$param_suffix", 200); } adminlog(lang('content auto output')); amessage(lang('content auto output finish'),"?entry=gmissions&action=gmissionsedit$param_suffix"); } function gmission_list(){ global $param_suffix,$gmission,$sid; $gsid = $gmission['gsid']; $gmodel = read_cache('gmodel',$gmission['gmid'],'',$sid); $levelstr = !empty($gmission['pid']) ? ' ' : ''; $addstr = !empty($gmission['pid']) ? 'Y' : (empty($gmodel['atid']) || !empty($gmission['sonid']) ? '-' : "<a href=\"?entry=gmissions&action=gmissionadd&pid=$gsid$param_suffix\">".lang('add')."</a>"); $netsitestr = "<a href=\"?entry=gmissions&action=gmissionurls&gsid=$gsid$param_suffix\">".lang('rule')."</a> ". (!empty($gmission['pid']) ? ' ' : "<a href=\"?entry=gmissions&action=urlsauto&gsid=$gsid$param_suffix\">".lang('start')."</a>"); $contentstr = "<a href=\"?entry=gmissions&action=gmissionfields&gsid=$gsid$param_suffix\">".lang('rule')."</a> ". (!empty($gmission['pid']) ? ' ' : "<a href=\"?entry=gmissions&action=gatherauto&gsid=$gsid$param_suffix\">".lang('start')."</a>"); $outputstr = "<a href=\"?entry=gmissions&action=gmissionoutput&gsid=$gsid$param_suffix\">".lang('rule')."</a> ". (!empty($gmission['pid']) ? ' ' : "<a href=\"?entry=gmissions&action=outputauto&gsid=$gsid$param_suffix\">".lang('start')."</a>"); echo "<tr>". "<td class=\"item1\" width=\"40\" align=\"center\"><input class=\"checkbox\" type=\"checkbox\" name=\"delete[$gsid]\" value=\"$gsid\">\n". "<td class=\"item2\">$levelstr<input type=\"text\" size=\"20\" name=\"gmissionsnew[$gsid][cname]\" value=\"$gmission[cname]\"></td>\n". "<td class=\"item1\" align=\"center\">$gmodel[cname]</td>\n". "<td class=\"item2\" width=\"60\" align=\"center\">$addstr</td>\n". "<td class=\"item1\" width=\"70\" align=\"center\">$netsitestr</td>\n". "<td class=\"item2\" width=\"70\" align=\"center\">$contentstr</td>\n". "<td class=\"item1\" width=\"70\" align=\"center\">$outputstr</td>\n". "<td class=\"item2\" width=\"40\" align=\"center\"><a href=\"?entry=gmissions&action=contentsoption&gsid=$gsid$param_suffix\">".lang('admin')."</a></td>". "<td class=\"item1\" align=\"center\" width=\"80\">".(!empty($gmission['pid']) ? '' : "<a href=\"?entry=gmissions&action=allauto&gsid=$gsid$param_suffix\">>>".lang('start')."</a>")."</td>\n". "</tr>\n"; } ?>