30) { $result = '站点名不能空并不能大于30个字符
'; return $result; } elseif(eregi("[<>{}(),%#|^&!`$]",$sitename)) { $result = '站点名中不能含有特殊字符
'; return $result; } } // 检查站点描述是否符合逻辑 function checknote($note = '') { if($note && strlen($note) > 200) { $result = '站点描述不能大于200个字符
'; return $result; } } //添加站点 if($_POST['action'] == 'doaddsite') { $site_title = trim($_POST["title"]); $site_site_url = trim($_POST["url"]); $site_rss_url = trim($_POST["rss_url"]); $site_icon = trim($_POST["icon"]); $rss_cate = trim($_POST["rss_cate"]); $site_email = trim($_POST["email"]); $site_count = trim($_POST["count"]); $site_content = trim($_POST["content"]); $state = intval($_POST['state']); $result = checksitename($site_title); $result .= checkurl($site_site_url,0); $result .= checkurl($site_rss_url,0); $result .= checkurl($site_icon,0); $result .= checknote($content); if($result) { redirect($result); } $site_title = char_cv($site_title); $site_site_url = char_cv($site_site_url); $site_rss_url = char_cv($site_rss_url); $site_icon = char_cv($site_icon); $site_content = char_cv($site_content); $rs = $db->fetch_one_array("SELECT count(*) AS sites FROM {$tablepre}xna_site WHERE site_title='$site_title' AND site_url='$site_url'"); if($rs['sites']) { redirect('该站点在数据库中已存在', 'index.php?job=site'); } $query = $db->query("INSERT INTO {$tablepre}xna_site (site_title,site_url,rss_url,site_icon,rss_cate,site_email,site_count,site_content,state,addtime) VALUES ('$site_title','$site_site_url','$site_rss_url','$site_icon','$rss_cate','$site_email','$site_count','$site_content','$state','$timestamp')"); categories_recache(); redirect('添加站点成功', 'index.php?job=site'); } //修改站点 if($action == 'domodsite') { $site_title = trim($_POST["title"]); $site_url = trim($_POST["url"]); $site_rss_url = trim($_POST["rss_url"]); $site_icon = trim($_POST["icon"]); $rss_cate = trim($_POST["rss_cate"]); $site_email = trim($_POST["email"]); $site_count = trim($_POST["count"]); $site_content = trim($_POST["content"]); $state = intval($_POST['state']); $cid = intval($_POST['cid']); $result = checksitename($site_title); if($result) {redirect($result);} $site_title = char_cv($site_title); $rs = $db->fetch_one_array("SELECT count(*) AS categories FROM {$tablepre}xna_category WHERE cid!='$cid' AND cate_title='$site_title'"); if($rs['categories']) { redirect('已经有其他站点使用'.$site_title.'这个名称'); } // 更新站点 $db->query("UPDATE {$tablepre}xna_site SET site_title='$site_title' , site_url='$site_url' , rss_url='$site_rss_url' , site_icon='$site_icon' , rss_cate='$rss_cate', site_email='$site_email', site_count='$site_count', site_content='$site_content', state='$state' WHERE siteid='$sid'"); categories_recache(); redirect('修改站点成功', 'index.php?job=site'); } //批量处理 if($_POST['action'] == 'domoresite') { if($ids = implode_ids($_POST['delete'])) { $db->query("DELETE FROM {$tablepre}xna_site WHERE siteid IN ($ids)"); } if(is_array($_POST['displayorder'])) { foreach($_POST['displayorder'] as $siteid => $value) { $db->query("UPDATE {$tablepre}xna_site SET displayorder='".intval($_POST['displayorder'][$siteid])."', state='".intval($_POST['state'][$siteid])."' WHERE siteid='".intval($siteid)."'"); $db->query("UPDATE {$tablepre}xna_feed SET state='".intval($_POST['state'][$siteid])."' WHERE siteid='".intval($siteid)."'"); } } categories_recache(); redirect('站点已成功更新', 'index.php?job=site'); } if(!$action) { $action = 'list'; } //站点操作 if (in_array($action, array('addsite', 'modsite', 'delcate','dofetch'))) { if ($action == 'addsite') { $subnav = '添加站点'; $site["cid"]=intval($_GET['cid']); } elseif($action == 'dofetch'){ $subnav = '聚合站点'; $sid=intval($_GET['sid']); ob_start(); doFetch($sid); redirect('更新成功', 'index.php?job=site'); }else { $site = $db->fetch_one_array("SELECT * FROM {$tablepre}xna_site WHERE siteid='".intval($_GET['sid'])."'"); if($action == 'modsite') { $subnav = '编辑站点'; } else { $subnav = '删除站点'; } } } // 导入OPML if ($action == 'importopml') { $cid = intval($_POST['cid']); if (!$cid) { redirect('请选择目标分类', 'index.php?job=site&action=opmlimport'); } $uid = intval($_POST['uid']); //if (!$uid) { // redirect('请选择文章作者', 'index.php?job=site&action=opmlimport'); //} $xmlfile = $_FILES['opmlfile']; if (is_array($xmlfile)) { $attachment = $xmlfile['tmp_name']; $attachment_name = $xmlfile['name']; $attachment_size = $xmlfile['size']; $attachment_type = $xmlfile['type']; } if (trim($attachment) != 'none' && trim($attachment) != '' && trim($attachment_name) != '') { $rssinfo = pathinfo($attachment_name); if ($rssinfo['extension'] == 'xml') { $attachment = upfile($attachment, _ROOT.'cache/opml_tmp.xml'); // 如果一种函数上传失败,还可以用其他函数上传 if (!$attachment) { redirect('上传XML文件发生意外错误!'); } $opml = file_get_contents(_ROOT .'cache/opml_tmp.xml') ; require_once(_ROOT .'include/opml.class.php'); $i = 0; if (is_array($feeds)) { foreach ($feeds as $rss) { $i++; $db->query("INSERT INTO {$tablepre}xna_site (rss_cate, uid, site_title, site_url,site_content, addtime) VALUES ('$cid', '$uid', '".$rss['site_title']."', '".$rss['site_url']."','".$rss['site_content']."', '".$timestamp."')"); } } @unlink($attachment); $db->query("UPDATE {$tablepre}xna_category SET site_conut=site_conut+$i WHERE cid='$cid'"); $db->query("UPDATE {$tablepre}xna_statistics SET site_conut=site_conut+$i"); sites_recache(); categories_recache(); statistics_recache(); redirect('导入OPML数据成功', 'index.php?job=site'); } else { redirect('只允许上传XML格式的文件', 'index.php?job=site&action=opmlimport'); } } else { redirect('请选择要上传的XML文件', 'index.php?job=site&action=opmlimport'); } } if ($action == 'list') { if($page) { $start_limit = ($page - 1) * 30; } else { $start_limit = 0; $page = 1; } $tatol = $stats['site_count']; $query = $db->query("SELECT * FROM {$tablepre}xna_site ORDER BY siteid DESC LIMIT $start_limit, 30"); $multipage = multi($tatol, 30, $page, 'index.php?job=site&action=list'.$pagelink); $sitedb = array(); while ($site = $db->row($query)) { if ($site['state'] == '1') { $site['state'] = ''; } else { $site['state'] = ''; } $site[addtime] = date("Y-m-d ",$site["addtime"]); $site[uptime] = date("Y-m-d h:m:s",$site["uptime"]); $sitedb[] = $site; } unset($site); $db->free($query); $subnav = '编辑站点'; } $navlink_L = ' » 站点管理'.($subnav ? ' » '.$subnav : ''); cpheader(); include template("site", _ROOT . "/template/admin/"); ?>