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')."&nbsp; &nbsp; &nbsp; >><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')."&nbsp; &nbsp; &nbsp; >><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')."&nbsp; &nbsp; &nbsp; >><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').'&nbsp;*','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 &nbsp;(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>" : "&nbsp; &nbsp; &nbsp; &nbsp; $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').'&nbsp; &nbsp; '.strbutton('bfilter','filter0').
		'&nbsp; &nbsp; &nbsp; &nbsp; '.lang('current gather mission &nbsp;:&nbsp;').$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')."&nbsp;&nbsp;&nbsp;&nbsp;<input class=\"checkbox\" type=\"checkbox\" name=\"select_all\" value=\"1\">&nbsp;".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\">&nbsp;".lang('delete').'&nbsp; &nbsp; &nbsp; '.
		"<input class=\"radio\" type=\"radio\" name=\"arcdeal\" value=\"gather\" checked>&nbsp;".lang('gather').'&nbsp; &nbsp; &nbsp; '.
		"<input class=\"radio\" type=\"radio\" name=\"arcdeal\" value=\"output\">&nbsp;".lang('output').'&nbsp; &nbsp; &nbsp; '.
		"</td></tr>";
		trbasic("<input class=\"radio\" type=\"radio\" name=\"arcdeal\" value=\"abover\">&nbsp;".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']) ? '&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' : '';
	$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>&nbsp; ".
					(!empty($gmission['pid']) ? '&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' : "<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>&nbsp; ".
					(!empty($gmission['pid']) ? '&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' : "<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>&nbsp; ".
					(!empty($gmission['pid']) ? '&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; ' : "<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";
			
}
?>