<?php
define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
include PHPCMS_PATH.'/phpcms/base.php';
$db_config = pc_base::load_config('database');
pc_base::load_sys_class('mysql', '', 0);
pc_base::load_sys_class('param', '', 0);
//pc_base::load_model('content_model');
if(WEB_OFF>1) die('网站更新中，请稍候再来访问！');

define('CACHE_MODEL_PATH',CACHE_PATH.'caches_model'.DIRECTORY_SEPARATOR.'caches_data'.DIRECTORY_SEPARATOR);
if(isset($_GET['siteid'])) {
$siteid = intval($_GET['siteid']);
} else {
$siteid = 1;
}
$siteid = $GLOBALS['siteid'] = max($siteid,1);
$SEO = seo($siteid);
$sitelist  = getcache('sitelist','commons');
$CATEGORYS = getcache('category_content_'.$siteid,'commons');


header('Last-Modified: '.gmdate('D, d M Y H:i', TIME()).' GMT');
header('Expires: '.gmdate('D, d M Y H:i', TIME() + 3600*2).' GMT');
$modelid=1;
$tmps=$_GET['sitemap'];
$cat=$_GET['cat'];
$pn=$_GET['pn'];
$kpn=$_GET['kpn'];
$cpn=$_GET['cpn'];
$txt=$_GET['txt'];
$sitemapname='sitemap';
$cdb = pc_base::load_model('nurl_model');
$keydb = pc_base::load_model('keyword_model');


if($txt=='99'){
	pc_base::load_sys_func('dir');
	if(!is_dir('sitemap/')) dir_create('sitemap/');
	if(!is_dir('sitemap/wap/')) dir_create('sitemap/wap/');
	if(!is_dir('sitemap/mip/')) dir_create('sitemap/mip/');

	$r=$cdb->get_one('status=99','id','id desc');
	$maxid=$r['id'];
	$num=ceil($maxid/190000);
	$d=1;
	if($pn) $num=$d=$pn;
	for($i=$d;$i<=$num;$i++){
		$p1=($i-1)*190000;
		$p2=$i*190000;
		$file=PHPCMS_PATH.'sitemap/'.$i.'.txt';
		$file1=PHPCMS_PATH.'sitemap/wap/'.$i.'.txt';
		$file2=PHPCMS_PATH.'sitemap/mip/'.$i.'.txt';

		$rs=$cdb->select('status=99 and id>'.$p1.' and id<='.$p2,'url',200000,'id asc');
		foreach($rs as $c){
			$data.= $c['url']."\r\n";
			$data1.=murl($c['url'])."\r\n";
			$data2.=mipurl($c['url'])."\r\n";
		}

		if($data){
			file_put_contents($file, $data);
			file_put_contents($file1, $data1);
			file_put_contents($file2, $data2);
		}
		echo APP_PATH."sitemap/".$i.".txt<p>";
		unset($data,$data1,$data2,$r,$rs,$file,$file1,$file2,$p1,$p2);
		usleep(260);
	}
	die();
}
if(!$pn) $pn=1;

if($tmps=='txt'){
	pc_base::load_sys_func('dir');
	header("Content-Type: text/plain; charset=UTF-8");
//error_reporting(E_ALL);
//ini_set('display_errors', '1');
	$p1=($pn-1)*190000;
	$p2=$pn*190000;

$r=$cdb->select('status=99 and id>'.$p1.' and id<='.$p2,'url',200000,'id asc');
foreach($r as $c){
	$data.= $c['url']."\r\n";
	$data1.=murl($c['url'])."\r\n";
	$data2.=mipurl($c['url'])."\r\n";
}

if(!is_dir('sitemap/')) dir_create('sitemap/');
if(!is_dir('sitemap/wap/')) dir_create('sitemap/wap/');
if(!is_dir('sitemap/mip/')) dir_create('sitemap/mip/');
$file=PHPCMS_PATH.'sitemap/'.$pn.'.txt';
$file1=PHPCMS_PATH.'sitemap/wap/'.$pn.'.txt';
$file2=PHPCMS_PATH.'sitemap/mip/'.$pn.'.txt';

if($data){
	file_put_contents($file, $data);
	file_put_contents($file1, $data1);
	file_put_contents($file2, $data2);
}

if($_SERVER['HTTP_HOST']==WAP_PATH){
	echo $data1;
}elseif($_SERVER['HTTP_HOST']==MIP_PATH){
	echo $data2;
}else{
	echo $data;
}

die();
}




$tagdir=TAG_DIR;//'t/';// tag/
$cachetime=86400;
$mapc='c-'.$cpn;
$mapk='key-'.$kpn;
$mapcarr=getcache($mapc,'sitemap');
$ctime=$mapcarr['lasttime'];
$mapkarr=getcache($mapk,'sitemap');
$ktime=$mapkarr['lasttime'];


$pnarr=getcache('pn','sitemap');
$knum=0;//$pnarr['kpn'];
$cnum=$pnarr['cpn'];
$lasttime=$pnarr['lasttime'];
if(time()-$lasttime>=$cachetime){
//$number = $keydb->get_one('','id','id desc');//count('id');
//$knum=ceil($number['id']/1000);
$cr = $cdb->get_one('status=99','aid','aid desc');//count('id');
$cnum=ceil($cr['aid']/1000);
$pndata=array('kpn'=>$knum,'cpn'=>$cnum,'lasttime'=>time());
setcache('pn', $pndata, 'sitemap');
}
if($kpn<$knum){
	$kctime=time()+86400*15+($knum-$kpn)*60;
}else{
	$kctime=time()+86400;
}
if($cpn<$cnum){
	$cctime=time()+86400*15+($cnum-$cpn)*60;
}else{
	$cctime=time()+86400;
}
if($kpn>$knum || $cpn>$cnum){
header('HTTP/1.1 404 Not Found');
header('status: 404 Not Found');
include PHPCMS_PATH.'/404.html';
die();
}

if($tmps=='xml' || $tmps==''){
header("Content-Type: text/xml; charset=UTF-8");
echo '<?xml version="1.0" encoding="UTF-8"?>';
}elseif($tmps=='txt'){
header("Content-Type: text/plain; charset=UTF-8");

}elseif($tmps=='html'){

}

//die('');
include template('content','sitemap'.$tmps,$default_style);
?>