www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/admina/sitemaps.inc.php

    <?
(!defined('M_COM') || !defined('M_ADMIN')) && exit('No Permission');
aheader();
load_cache('catalogs,cotypes,channels');
if($action == 'sitemapsedit'){
	$sitemaps = fetch_arr();
	if(!submitcheck('bsitemapsedit')){
		a_guide('sitemapsedit');
		tabheader(lang('sitemap page admin'),'sitemapsedit',"?entry=sitemaps&action=sitemapsedit",'8');
		trcategory(array(lang('available'),lang('sitemap cname'),lang('dynamic url'),lang('xml url'),lang('setting'),lang('create')));
		foreach($sitemaps as $ename => $sitemap){
			echo "<tr>".
				"<td class=\"item1\" width=\"30\" align=\"center\"><input class=\"checkbox\" type=\"checkbox\" name=\"sitemapsnew[$ename][available]\" value=\"1\"".(empty($sitemap['available']) ? '' : ' checked')."></td>\n".
				"<td class=\"item2\">".mhtmlspecialchars($sitemap['cname'])."</td>\n".
				"<td class=\"item1\">".($cms_abs.$sitemap['d_url'])."</td>\n".
				"<td class=\"item2\">".($cms_abs.$sitemap['xml_url'])."</td>\n".
				"<td class=\"item1\" width=\"30\" align=\"center\"><a href=\"?entry=sitemaps&action=sitemapdetail&ename=$ename\">".lang('setting')."</a></td>\n".
				"<td class=\"item2\" width=\"30\" align=\"center\"><a href=\"?entry=sitemaps&action=sitemapcreate&ename=$ename\">".lang('create')."</a></td></tr>\n";
		}
		tabfooter('bsitemapsedit');
	}else{
		!checkapermission('sitemapsedit') && amessage(lang('no_apermission'));
		foreach($sitemaps as $ename => $sitemap){
			$sitemap['available'] = empty($sitemapsnew[$ename]['available']) ? 0 : 1;
			$db->query("UPDATE {$tblprefix}sitemaps SET available='$sitemap[available]' WHERE ename='$ename'");
		}
		updatecache('sitemaps');
		amessage(lang('sitemap modify finish'), "?entry=sitemaps&action=sitemapsedit");
	}
}
elseif($action == 'sitemapdetail' && $ename){
	$sitemap = fetch_one($ename);
	empty($sitemap) && amessage(lang('confirmchoose sitemap'), '?entry=sitemaps&action=sitemapsedit');
	if($ename == 'baidu'){
		$chids = array();
		foreach($channels as $chid => $channel){
			$channel['baidu'] && $chids[$chid] = $channel['cname'];
		}
		empty($chids) && amessage(lang('nobaidunews'), '?entry=sitemaps&action=sitemapsedit');
	}else{
		$chids = chidsarr();
	}

	if(!submitcheck('bsitemapdetail')){
		a_guide('sitemapdetail');
		tabheader(lang('sitemap setting'),'sitemapdetail','?entry=sitemaps&action=sitemapdetail&ename='.$ename);
		trbasic(lang('sitemap cname'),'',$sitemap['cname'],'');
		trbasic(lang('dynamic pick url'),'',$cms_abs.$sitemap['d_url'],'');
		trbasic(lang('xml pick url'),'',$cms_abs.$sitemap['xml_url'],'');
		trbasic(lang('weather enable'),'sitemapnew[available]',isset($sitemap['available']) ? $sitemap['available'] : 0,'radio');
		trbasic(lang('update period ( hours )'),'sitemapnew[setting][life]',empty($sitemap['setting']['life']) ? '' : $sitemap['setting']['life']);
		trbasic(lang('limit indays of archive'),'sitemapnew[setting][indays]',empty($sitemap['setting']['indays']) ? '' : $sitemap['setting']['indays']);
		$sourcearr = array('0' => lang('nolimit catas'),'1' => lang('handpoint'));
		sourcemodule(lang('catalog limited'),
					'sitemapnew[setting][casource]',
					$sourcearr,
					empty($sitemap['setting']['casource']) ? '0' : $sitemap['setting']['casource'],
					'1',
					'sitemapnew[setting][caids][]',
					caidsarr(),
					empty($sitemap['setting']['caids']) ? array() : $sitemap['setting']['caids']
					);

		foreach($cotypes as $k => $cotype) {
			sourcemodule("$cotype[cname]".lang('limited'),
						"sitemapnew[setting][cosource$k]",
						$sourcearr,
						empty($sitemap['setting']['cosource'.$k]) ? '0' : $sitemap['setting']['cosource'.$k],
						'1',
						"sitemapnew[setting][ccids$k][]",
						ccidsarr($k),
						empty($sitemap['setting']['ccids'.$k]) ? array() : $sitemap['setting']['ccids'.$k]
						);
		}
		$chsourcearr = array('0' => lang('nolimit channel'),'1' => lang('handpoint'),);
		sourcemodule(lang('archive channel limited'),
					'sitemapnew[setting][chsource]',
					$chsourcearr,
					empty($sitemap['setting']['chsource']) ? '0' : $sitemap['setting']['chsource'],
					'1',
					'sitemapnew[setting][chids][]',
					$chids,
					!empty($sitemap['setting']['chids']) ? $sitemap['setting']['chids'] : array()
					);
		tabfooter('bsitemapdetail',lang('modify'));
	}else{
		!checkapermission('sitemapsedit') && amessage(lang('no_apermission'));
		if(!empty($sitemapnew['setting']['casource']) && empty($sitemapnew['setting']['caids'])) amessage(lang('confirmselect catalog'),'?entry=sitemaps&action=sitemapdetail&ename='.$ename);
		if(!empty($sitemapnew['setting']['chsource']) && empty($sitemapnew['setting']['chids'])) amessage(lang('confirmselect channel'),'?entry=sitemaps&action=sitemapdetail&ename='.$ename);
		if(empty($sitemapnew['setting']['casource'])) unset($sitemapnew['setting']['caids']);
		if(empty($sitemapnew['setting']['chsource'])) unset($sitemapnew['setting']['chids']);
		foreach($cotypes as $k => $cotype){
			if(!empty($sitemapnew['setting']['cosource'.$k]) && empty($sitemapnew['setting']['ccids'.$k])) amessage(lang('confirmselect').$cotype['cname'].lang('coclass'),'?entry=sitemaps&action=sitemapdetail&ename='.$ename);
		}
		$sitemapnew['available'] = empty($sitemapnew['available']) ? 0 : 1;
		$sitemapnew['setting']['life'] = max(0,intval($sitemapnew['setting']['life']));
		$sitemapnew['setting']['indays'] = max(0,intval($sitemapnew['setting']['indays']));
		$sitemapnew['setting'] = addslashes(serialize($sitemapnew['setting']));
		$db->query("UPDATE {$tblprefix}sitemaps SET 
					available='$sitemapnew[available]',
					setting='$sitemapnew[setting]'
					WHERE ename='$ename'");
		updatecache('sitemaps');
		amessage(lang('sitemap setting finish'),'?entry=sitemaps&action=sitemapdetail&ename='.$ename);
	}

}elseif($action == 'sitemapcreate' && $ename){
	!checkapermission('sitemapsedit') && amessage(lang('no_apermission'));
	$sitemap = fetch_one($ename);
	empty($sitemap) && amessage(lang('confirmchoose sitemap'), '?entry=sitemaps&action=sitemapsedit');
	empty($sitemap['available']) && amessage(lang('sitemap closed'), '?entry=sitemaps&action=sitemapsedit');
	if($sitemap['ename'] == 'baidu'){
		$chids = array();
		foreach($channels as $chid => $channel){
			$channel['baidu'] && $chids[] = $chid;
		}
		empty($chids) && amessage(lang('nobaidunews'), '?entry=sitemaps&action=sitemapsedit');
	}
	$cachefile = M_ROOT.$sitemap['xml_url'];
	include_once M_ROOT.'./include/sitemap.inc.php';
	str2file($datastr,$cachefile);
	amessage(lang('sitemap create finish'), '?entry=sitemaps&action=sitemapsedit');
}
function fetch_arr(){
	global $db,$tblprefix;
	$sitemaps = array();
	$query = $db->query("SELECT * FROM {$tblprefix}sitemaps ORDER BY vieworder");
	while($sitemap = $db->fetch_array($query)){
		if($sitemap['setting'] && is_array($setting = unserialize($sitemap['setting']))){$sitemap['setting'] = $setting;}
		else{$sitemap['setting'] = array();}
		$sitemaps[$sitemap['ename']] = $sitemap;
	}
	return $sitemaps;
}
function fetch_one($ename){
	global $db,$tblprefix;
	$sitemap = $db->fetch_one("SELECT * FROM {$tblprefix}sitemaps WHERE ename='$ename'");
	if($sitemap['setting'] && is_array($setting = unserialize($sitemap['setting']))){$sitemap['setting'] = $setting;}
	else{$sitemap['setting'] = array();}
	return $sitemap;
}
?>