if (!in_array($action,array('addarticle','setarticle','editarticle','seteditarticle','delarticle','searcharticle'))) {
$page = empty($page)?'1':intval($page);
$perpage = 10;
$begin = ($page-1)*$perpage;
if ($action=='list') {
$cateid = intval($_GET['cateid']);
$sqlcate = "SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC";
$sqlarticle = "SELECT a.articleid,a.cid,a.title,a.attachments,a.dateline,a.visible,c.cid,c.name FROM {$db_prefix}articles a LEFT JOIN ({$db_prefix}categories c) ON (a.cid=c.cid AND a.cid='$cateid') ORDER BY articleid DESC LIMIT $begin,$perpage";
$purl = "admincp.php?do=article&action=list&cateid=$cateid";
//echo $sqlcate;echo $sqlarticle;echo $purl;exit;
}else {
$sqlcate = "SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC";
$sqlarticle = "SELECT a.articleid,a.cid,a.title,a.attachments,a.dateline,a.visible,c.cid,c.name FROM {$db_prefix}articles a LEFT JOIN ({$db_prefix}categories c) ON (a.cid=c.cid) ORDER BY articleid DESC LIMIT $begin,$perpage";
$purl = "admincp.php?do=article";
}
$categories = $DB->query($sqlcate);
$allarticles = 0;
while ($catearr = $DB->fetch_assoc($categories)) {
$categoryarr[] = $catearr;
$allarticles += $catearr['articles'];
}
$article = $DB->query($sqlarticle);
while ($aarr = $DB->fetch_assoc($article)) {
$articlearr[] = $aarr;
}
//print_r($articlearr);exit;
$pagination = pagination($allarticles,$perpage,$page,$purl);
include $template->getfile('admin_article');
}if ($action=='addarticle') {
include C7ROOT.'editor/fckeditor.php';
$fckeditor = new FCKeditor('article');
$fckeditor->BasePath = '../editor/';
$fckeditor->Width='650px';
$fckeditor->Height='400px';
$categories = $DB->query("SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC");
while ($catearr = $DB->fetch_assoc($categories)) {
$categoryarr[] = $catearr;
}
include $template->getfile('admin_addarticle');
}
if($action=='setarticle') {
foreach ($_POST as $k=>$v) {
$_POST[$k] = char_cv($v);
}
if (empty($title) || empty($category) || empty($tags) || empty($article)) {
showmessage('请将必要信息填写完整!','admincp.php?do=article&action=addarticle');
exit;
}
$dateline = tolinuxtime($_POST['addtime']);
$keywords = str_replace(',',',',$_POST['tags']);
$keywords = str_replace(',,',',',$keywords);
include C7ROOT.'./c7admin/upload.inc.php';
$sql = "INSERT INTO {$db_prefix}articles VALUES(NULL,'$_POST[category]','$_SESSION[C7UID]','$_POST[title]','".htmlspecialchars_decode($_POST[article])."','$keywords','$dateline','','','$attachs','$_POST[closecomment]','$_POST[visible]','$_POST[stick]')";
//echo $sql;exit;
$DB->query($sql);
$articleid = $DB->insert_id();
if ($attachmentsids) {
$DB->query("UPDATE {$db_prefix}attachments SET articleid='$articleid' WHERE attachmentid IN($attachmentsids)");
} $DB->query("UPDATE {$db_prefix}users SET articles=articles+1 WHERE userid='$_SESSION[C7UID]'");
if ($keywords) {
$tagdb = explode(',',$keywords);
$tagnum = count($tagdb);
for($i=0;$i<$tagnum;$i++) {
$tagdb[$i] = trim($tagdb[$i]);
if ($tagdb[$i]) {
$tag = $DB->fetch_assoc($DB->query("SELECT tagid,aids FROM {$db_prefix}tags WHERE tag='$tagdb[$i]'"));
if (!$tag) {
$DB->query("INSERT INTO {$db_prefix}tags VALUES(NULL,'$tagdb[$i]','1','$articleid')");
$DB->query("UPDATE {$db_prefix}statistics SET tag_count=tag_count+1,curdate='$timestamp'");
}else {
$aids = $tag['aids'].','.$articleid;
$DB->query("UPDATE {$db_prefix}tags SET usenum=usenum+1,aids='$aids' WHERE tag='$tagdb[$i]'");
}
}
}
}//end if
$DB->query("UPDATE {$db_prefix}categories SET articles=articles+1 WHERE cid='$_POST[category]'"); $DB->query("UPDATE {$db_prefix}statistics SET article_count=article_count+1");
$DB->query("UPDATE {$db_prefix}statistics SET attachment_count=attachment_count+'$attachmentcount',curdate='$timestamp'");
require_once C7ROOT.'./include/cache.func.php';
recache();
showmessage('添加文章成功!','admincp.php?do=article');
}if ($action=='editarticle') {
include C7ROOT.'editor/fckeditor.php';
$fckeditor = new FCKeditor('article');
$fckeditor->BasePath = '../editor/';
$fckeditor->Width='650px';
$fckeditor->Height='400px';
$articleid = intval($articleid);
$categories = $DB->query("SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC");
while ($catearr = $DB->fetch_assoc($categories)) {
$categoryarr[] = $catearr;
}
$articlearr = $DB->fetch_assoc($DB->query("SELECT cid,title,content,keywords,dateline,attachments,closecomment,visible,stick FROM {$db_prefix}articles WHERE articleid='$articleid'"));
$fckeditor->Value=$articlearr['content'];
include $template->getfile('admin_editarticle');
}
if ($action=='seteditarticle') {
//print_r($_POST);exit;
$articleid = intval($_GET['articleid']);
foreach ($_POST as $k=>$v) {
$_POST[$k] = char_cv($v);
}
if (empty($title) || empty($category) || empty($tags) || empty($article)) {
showmessage('请将必要信息填写完整!','admincp.php?do=article&action=addarticle');
exit;
}
$dateline = tolinuxtime($_POST['addtime']); $keywords = str_replace(',',',',$_POST['tags']);
$keywords = str_replace(',,',',',$keywords);
$_POST['upattachid'] = !empty($_POST['upattachid'])?$_POST['upattachid']:array();
$attarr = $DB->fetch_assoc($DB->query("SELECT attachments FROM {$db_prefix}articles WHERE articleid='$articleid'"));
$attarr = unserialize(stripslashes_array($attarr['attachments']));
//print_r($attarr);print_r($upattachid); if (!empty($attarr)) {
if (count($attarr) != count($_POST['upattachid'])) {
$attachment_count=0;
foreach ($attarr as $key=>$value) {
if (!in_array($key,$_POST['upattachid'])) {
unlink(C7ROOT.$c7base['attachments_dir'].$value['filepath']);
if ($value['isimage']=='1') {
unlink(C7ROOT.$c7base['attachments_dir'].$value['thumb_filepath']);
}
$DB->query("DELETE FROM {$db_prefix}attachments WHERE attachmentid='$key'");
unset($attarr[$key]);
}
$attachment_count--;
}
}
}
//print_r($attarr);print_r($upattachid); if ($_FILES['attach']['name'][0]||$_FILES['attach']['name'][1]||$_FILES['attach']['name'][2]||$_FILES['attach']['name'][3]) {
include C7ROOT.'./c7admin/upload.inc.php';
if (!empty($attarr)) {
$attachment_count =$attachment_count + $attachmentcount;
$attachs = unserialize(stripslashes_array($attachs));
$attachs = serialize(array_merge($attarr,$attachs));
}else{
$attachs = $attachs;
}
}elseif (!empty($attarr)) {
$attachs = addslashes(serialize($attarr));
}else {
$attachs = '';
}
//print_r($attachs);print_r(unserialize(stripslashes_array($attachs)));echo 'articleid:'.$articleid;exit; $DB->query("UPDATE {$db_prefix}statistics SET attachment_count=attachment_count+'$attachment_count'");
if ($keywords) {
$tagdb = explode(',',$keywords);
$tagnum = count($tagdb);
for($i=0;$i<$tagnum;$i++) {
$tagdb[$i] = trim($tagdb[$i]);
if ($tagdb[$i]) {
$tag = $DB->fetch_assoc($DB->query("SELECT tagid,aids FROM {$db_prefix}tags WHERE tag='$tagdb[$i]'"));
if (!$tag) {
$DB->query("INSERT INTO {$db_prefix}tags VALUES(NULL,'$tagdb[$i]','1','$articleid')");
$DB->query("UPDATE {$db_prefix}statistics SET tag_count=tag_count+1");
}
}
}
}//end if
$DB->query("UPDATE {$db_prefix}attachments SET articleid='$articleid' WHERE attachmentid IN($attachmentsids)"); $DB->query("UPDATE {$db_prefix}articles SET cid='$_POST[category]',uid='$_SESSION[C7UID]',title='$_POST[title]',content='".htmlspecialchars_decode($_POST[article])."',keywords='$keywords',dateline='$dateline',attachments='$attachs',closecomment='$_POST[closecomment]',visible='$_POST[visible]',stick='$_POST[stick]' WHERE articleid='$articleid'");
//$DB->query("UPDATE {$db_prefix}statistics SET ")
require_once C7ROOT.'./include/cache.func.php';
recache();
showmessage('更新文章成功!','admincp.php?do=article');
}if ($action=='delarticle') {
//print_r($_POST);exit;
if ($delarticleid) {
foreach ($delarticleid as $k=>$v) {
$delarticleid[$k] = intval($v);
}
$articleids = implode(',',$delarticleid);
$DB->query("DELETE FROM {$db_prefix}articles WHERE articleid IN ($articleids)");
$DB->query("DELETE FROM {$db_prefix}attachments WHERE articleid IN ($articleids)");
//还要处理TAGS表文章引用ID
require_once C7ROOT.'./include/cache.func.php';
recache();
showmessage('删除文章成功','admincp.php?do=article');
}else {
showmessage('请选择要删除的文章','admincp.php?do=article');
}
if ($action=='searcharticle') {
foreach ($_GET as $k=>$v) {
$_GET[$k] = char_cv($v);
}
if (!empty($_GET['words'])) {
$page = empty($page)?'1':intval($page);
$perpage = 10;
$begin = ($page-1)*$perpage;
$num = $DB->num_rows($DB->query("SELECT articleid FROM {$db_prefix}articles WHERE keywords LIKE '%$_GET[words]%'"));
$sql = "SELECT articleid,title,dateline,visible FROM {$db_prefix}articles WHERE keywords LIKE '%$_GET[words]%' ORDER BY dateline DESC LIMIT $begin,$perpage";
$sresult = $DB->query($sql);
while ($arr = $DB->fetch_assoc($sresult)) {
$sarray[] = $arr;
}
$pagination = pagination($num,$perpage,$page,"admincp.php?do=article&action=searcharticle&words=$_GET[words]");
}
include $template->getfile('admin_searcharticle');
}
$page = empty($page)?'1':intval($page);
$perpage = 10;
$begin = ($page-1)*$perpage;
if ($action=='list') {
$cateid = intval($_GET['cateid']);
$sqlcate = "SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC";
$sqlarticle = "SELECT a.articleid,a.cid,a.title,a.attachments,a.dateline,a.visible,c.cid,c.name FROM {$db_prefix}articles a LEFT JOIN ({$db_prefix}categories c) ON (a.cid=c.cid AND a.cid='$cateid') ORDER BY articleid DESC LIMIT $begin,$perpage";
$purl = "admincp.php?do=article&action=list&cateid=$cateid";
//echo $sqlcate;echo $sqlarticle;echo $purl;exit;
}else {
$sqlcate = "SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC";
$sqlarticle = "SELECT a.articleid,a.cid,a.title,a.attachments,a.dateline,a.visible,c.cid,c.name FROM {$db_prefix}articles a LEFT JOIN ({$db_prefix}categories c) ON (a.cid=c.cid) ORDER BY articleid DESC LIMIT $begin,$perpage";
$purl = "admincp.php?do=article";
}
$categories = $DB->query($sqlcate);
$allarticles = 0;
while ($catearr = $DB->fetch_assoc($categories)) {
$categoryarr[] = $catearr;
$allarticles += $catearr['articles'];
}
$article = $DB->query($sqlarticle);
while ($aarr = $DB->fetch_assoc($article)) {
$articlearr[] = $aarr;
}
//print_r($articlearr);exit;
$pagination = pagination($allarticles,$perpage,$page,$purl);
include $template->getfile('admin_article');
}if ($action=='addarticle') {
include C7ROOT.'editor/fckeditor.php';
$fckeditor = new FCKeditor('article');
$fckeditor->BasePath = '../editor/';
$fckeditor->Width='650px';
$fckeditor->Height='400px';
$categories = $DB->query("SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC");
while ($catearr = $DB->fetch_assoc($categories)) {
$categoryarr[] = $catearr;
}
include $template->getfile('admin_addarticle');
}
if($action=='setarticle') {
foreach ($_POST as $k=>$v) {
$_POST[$k] = char_cv($v);
}
if (empty($title) || empty($category) || empty($tags) || empty($article)) {
showmessage('请将必要信息填写完整!','admincp.php?do=article&action=addarticle');
exit;
}
$dateline = tolinuxtime($_POST['addtime']);
$keywords = str_replace(',',',',$_POST['tags']);
$keywords = str_replace(',,',',',$keywords);
include C7ROOT.'./c7admin/upload.inc.php';
$sql = "INSERT INTO {$db_prefix}articles VALUES(NULL,'$_POST[category]','$_SESSION[C7UID]','$_POST[title]','".htmlspecialchars_decode($_POST[article])."','$keywords','$dateline','','','$attachs','$_POST[closecomment]','$_POST[visible]','$_POST[stick]')";
//echo $sql;exit;
$DB->query($sql);
$articleid = $DB->insert_id();
if ($attachmentsids) {
$DB->query("UPDATE {$db_prefix}attachments SET articleid='$articleid' WHERE attachmentid IN($attachmentsids)");
} $DB->query("UPDATE {$db_prefix}users SET articles=articles+1 WHERE userid='$_SESSION[C7UID]'");
if ($keywords) {
$tagdb = explode(',',$keywords);
$tagnum = count($tagdb);
for($i=0;$i<$tagnum;$i++) {
$tagdb[$i] = trim($tagdb[$i]);
if ($tagdb[$i]) {
$tag = $DB->fetch_assoc($DB->query("SELECT tagid,aids FROM {$db_prefix}tags WHERE tag='$tagdb[$i]'"));
if (!$tag) {
$DB->query("INSERT INTO {$db_prefix}tags VALUES(NULL,'$tagdb[$i]','1','$articleid')");
$DB->query("UPDATE {$db_prefix}statistics SET tag_count=tag_count+1,curdate='$timestamp'");
}else {
$aids = $tag['aids'].','.$articleid;
$DB->query("UPDATE {$db_prefix}tags SET usenum=usenum+1,aids='$aids' WHERE tag='$tagdb[$i]'");
}
}
}
}//end if
$DB->query("UPDATE {$db_prefix}categories SET articles=articles+1 WHERE cid='$_POST[category]'"); $DB->query("UPDATE {$db_prefix}statistics SET article_count=article_count+1");
$DB->query("UPDATE {$db_prefix}statistics SET attachment_count=attachment_count+'$attachmentcount',curdate='$timestamp'");
require_once C7ROOT.'./include/cache.func.php';
recache();
showmessage('添加文章成功!','admincp.php?do=article');
}if ($action=='editarticle') {
include C7ROOT.'editor/fckeditor.php';
$fckeditor = new FCKeditor('article');
$fckeditor->BasePath = '../editor/';
$fckeditor->Width='650px';
$fckeditor->Height='400px';
$articleid = intval($articleid);
$categories = $DB->query("SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC");
while ($catearr = $DB->fetch_assoc($categories)) {
$categoryarr[] = $catearr;
}
$articlearr = $DB->fetch_assoc($DB->query("SELECT cid,title,content,keywords,dateline,attachments,closecomment,visible,stick FROM {$db_prefix}articles WHERE articleid='$articleid'"));
$fckeditor->Value=$articlearr['content'];
include $template->getfile('admin_editarticle');
}
if ($action=='seteditarticle') {
//print_r($_POST);exit;
$articleid = intval($_GET['articleid']);
foreach ($_POST as $k=>$v) {
$_POST[$k] = char_cv($v);
}
if (empty($title) || empty($category) || empty($tags) || empty($article)) {
showmessage('请将必要信息填写完整!','admincp.php?do=article&action=addarticle');
exit;
}
$dateline = tolinuxtime($_POST['addtime']); $keywords = str_replace(',',',',$_POST['tags']);
$keywords = str_replace(',,',',',$keywords);
$_POST['upattachid'] = !empty($_POST['upattachid'])?$_POST['upattachid']:array();
$attarr = $DB->fetch_assoc($DB->query("SELECT attachments FROM {$db_prefix}articles WHERE articleid='$articleid'"));
$attarr = unserialize(stripslashes_array($attarr['attachments']));
//print_r($attarr);print_r($upattachid); if (!empty($attarr)) {
if (count($attarr) != count($_POST['upattachid'])) {
$attachment_count=0;
foreach ($attarr as $key=>$value) {
if (!in_array($key,$_POST['upattachid'])) {
unlink(C7ROOT.$c7base['attachments_dir'].$value['filepath']);
if ($value['isimage']=='1') {
unlink(C7ROOT.$c7base['attachments_dir'].$value['thumb_filepath']);
}
$DB->query("DELETE FROM {$db_prefix}attachments WHERE attachmentid='$key'");
unset($attarr[$key]);
}
$attachment_count--;
}
}
}
//print_r($attarr);print_r($upattachid); if ($_FILES['attach']['name'][0]||$_FILES['attach']['name'][1]||$_FILES['attach']['name'][2]||$_FILES['attach']['name'][3]) {
include C7ROOT.'./c7admin/upload.inc.php';
if (!empty($attarr)) {
$attachment_count =$attachment_count + $attachmentcount;
$attachs = unserialize(stripslashes_array($attachs));
$attachs = serialize(array_merge($attarr,$attachs));
}else{
$attachs = $attachs;
}
}elseif (!empty($attarr)) {
$attachs = addslashes(serialize($attarr));
}else {
$attachs = '';
}
//print_r($attachs);print_r(unserialize(stripslashes_array($attachs)));echo 'articleid:'.$articleid;exit; $DB->query("UPDATE {$db_prefix}statistics SET attachment_count=attachment_count+'$attachment_count'");
if ($keywords) {
$tagdb = explode(',',$keywords);
$tagnum = count($tagdb);
for($i=0;$i<$tagnum;$i++) {
$tagdb[$i] = trim($tagdb[$i]);
if ($tagdb[$i]) {
$tag = $DB->fetch_assoc($DB->query("SELECT tagid,aids FROM {$db_prefix}tags WHERE tag='$tagdb[$i]'"));
if (!$tag) {
$DB->query("INSERT INTO {$db_prefix}tags VALUES(NULL,'$tagdb[$i]','1','$articleid')");
$DB->query("UPDATE {$db_prefix}statistics SET tag_count=tag_count+1");
}
}
}
}//end if
$DB->query("UPDATE {$db_prefix}attachments SET articleid='$articleid' WHERE attachmentid IN($attachmentsids)"); $DB->query("UPDATE {$db_prefix}articles SET cid='$_POST[category]',uid='$_SESSION[C7UID]',title='$_POST[title]',content='".htmlspecialchars_decode($_POST[article])."',keywords='$keywords',dateline='$dateline',attachments='$attachs',closecomment='$_POST[closecomment]',visible='$_POST[visible]',stick='$_POST[stick]' WHERE articleid='$articleid'");
//$DB->query("UPDATE {$db_prefix}statistics SET ")
require_once C7ROOT.'./include/cache.func.php';
recache();
showmessage('更新文章成功!','admincp.php?do=article');
}if ($action=='delarticle') {
//print_r($_POST);exit;
if ($delarticleid) {
foreach ($delarticleid as $k=>$v) {
$delarticleid[$k] = intval($v);
}
$articleids = implode(',',$delarticleid);
$DB->query("DELETE FROM {$db_prefix}articles WHERE articleid IN ($articleids)");
$DB->query("DELETE FROM {$db_prefix}attachments WHERE articleid IN ($articleids)");
//还要处理TAGS表文章引用ID
require_once C7ROOT.'./include/cache.func.php';
recache();
showmessage('删除文章成功','admincp.php?do=article');
}else {
showmessage('请选择要删除的文章','admincp.php?do=article');
}
if ($action=='searcharticle') {
foreach ($_GET as $k=>$v) {
$_GET[$k] = char_cv($v);
}
if (!empty($_GET['words'])) {
$page = empty($page)?'1':intval($page);
$perpage = 10;
$begin = ($page-1)*$perpage;
$num = $DB->num_rows($DB->query("SELECT articleid FROM {$db_prefix}articles WHERE keywords LIKE '%$_GET[words]%'"));
$sql = "SELECT articleid,title,dateline,visible FROM {$db_prefix}articles WHERE keywords LIKE '%$_GET[words]%' ORDER BY dateline DESC LIMIT $begin,$perpage";
$sresult = $DB->query($sql);
while ($arr = $DB->fetch_assoc($sresult)) {
$sarray[] = $arr;
}
$pagination = pagination($num,$perpage,$page,"admincp.php?do=article&action=searcharticle&words=$_GET[words]");
}
include $template->getfile('admin_searcharticle');
}
太多。看着太累。好像就是个文章管理系统。有搜索分页和各种操作。楼主慢慢看吧。没有太多难点。
通过不同的action来进行的文章的操作
$page = empty($page)?'1':intval($page);
$perpage = 10;
$begin = ($page-1)*$perpage;
if ($action=='list') {
$cateid = intval($_GET['cateid']);
$sqlcate = "SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC";
$sqlarticle = "SELECT a.articleid,a.cid,a.title,a.attachments,a.dateline,a.visible,c.cid,c.name FROM {$db_prefix}articles a LEFT JOIN ({$db_prefix}categories c) ON (a.cid=c.cid AND a.cid='$cateid') ORDER BY articleid DESC LIMIT $begin,$perpage";
$purl = "admincp.php?do=article&action=list&cateid=$cateid";
//echo $sqlcate;echo $sqlarticle;echo $purl;exit;
}else {
$sqlcate = "SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC";
$sqlarticle = "SELECT a.articleid,a.cid,a.title,a.attachments,a.dateline,a.visible,c.cid,c.name FROM {$db_prefix}articles a LEFT JOIN ({$db_prefix}categories c) ON (a.cid=c.cid) ORDER BY articleid DESC LIMIT $begin,$perpage";
$purl = "admincp.php?do=article";
}$categories = $DB->query($sqlcate);
$allarticles = 0;
while ($catearr = $DB->fetch_assoc($categories)) {
$categoryarr[] = $catearr;
$allarticles += $catearr['articles'];
}
$article = $DB->query($sqlarticle);
while ($aarr = $DB->fetch_assoc($article)) {
$articlearr[] = $aarr;
}
//print_r($articlearr);exit;
$pagination = pagination($allarticles,$perpage,$page,$purl);
include $template->getfile('admin_article');
}if ($action=='addarticle') {
include C7ROOT.'editor/fckeditor.php';
$fckeditor = new FCKeditor('article');
$fckeditor->BasePath = '../editor/';
$fckeditor->Width='650px';
$fckeditor->Height='400px';
$categories = $DB->query("SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC");
while ($catearr = $DB->fetch_assoc($categories)) {
$categoryarr[] = $catearr;
}
include $template->getfile('admin_addarticle');
}
if($action=='setarticle') {
foreach ($_POST as $k=>$v) {
$_POST[$k] = char_cv($v);
}
if (empty($title) || empty($category) || empty($tags) || empty($article)) {
showmessage('请将必要信息填写完整!','admincp.php?do=article&action=addarticle');
exit;
}
$dateline = tolinuxtime($_POST['addtime']);$keywords = str_replace(',',',',$_POST['tags']);
$keywords = str_replace(',,',',',$keywords);include C7ROOT.'./c7admin/upload.inc.php';
$sql = "INSERT INTO {$db_prefix}articles VALUES(NULL,'$_POST[category]','$_SESSION[C7UID]','$_POST[title]','".htmlspecialchars_decode($_POST[article])."','$keywords','$dateline','','','$attachs','$_POST[closecomment]','$_POST[visible]','$_POST[stick]')";
//echo $sql;exit;
$DB->query($sql);
$articleid = $DB->insert_id();
if ($attachmentsids) {
$DB->query("UPDATE {$db_prefix}attachments SET articleid='$articleid' WHERE attachmentid IN($attachmentsids)");
}$DB->query("UPDATE {$db_prefix}users SET articles=articles+1 WHERE userid='$_SESSION[C7UID]'");
if ($keywords) {
$tagdb = explode(',',$keywords);
$tagnum = count($tagdb);
for($i=0;$i<$tagnum;$i++) {
$tagdb[$i] = trim($tagdb[$i]);
if ($tagdb[$i]) {
$tag = $DB->fetch_assoc($DB->query("SELECT tagid,aids FROM {$db_prefix}tags WHERE tag='$tagdb[$i]'"));
if (!$tag) {
$DB->query("INSERT INTO {$db_prefix}tags VALUES(NULL,'$tagdb[$i]','1','$articleid')");$DB->query("UPDATE {$db_prefix}statistics SET tag_count=tag_count+1,curdate='$timestamp'");
}else {$aids = $tag['aids'].','.$articleid;
$DB->query("UPDATE {$db_prefix}tags SET usenum=usenum+1,aids='$aids' WHERE tag='$tagdb[$i]'");
}
}
}
}//end if$DB->query("UPDATE {$db_prefix}categories SET articles=articles+1 WHERE cid='$_POST[category]'");$DB->query("UPDATE {$db_prefix}statistics SET article_count=article_count+1");
$DB->query("UPDATE {$db_prefix}statistics SET attachment_count=attachment_count+'$attachmentcount',curdate='$timestamp'");
require_once C7ROOT.'./include/cache.func.php';
recache();
showmessage('添加文章成功!','admincp.php?do=article');
}if ($action=='editarticle') {
include C7ROOT.'editor/fckeditor.php';
$fckeditor = new FCKeditor('article');
$fckeditor->BasePath = '../editor/';
$fckeditor->Width='650px';
$fckeditor->Height='400px';
$articleid = intval($articleid);
$categories = $DB->query("SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC");
while ($catearr = $DB->fetch_assoc($categories)) {
$categoryarr[] = $catearr;
}
$articlearr = $DB->fetch_assoc($DB->query("SELECT cid,title,content,keywords,dateline,attachments,closecomment,visible,stick FROM {$db_prefix}articles WHERE articleid='$articleid'"));
$fckeditor->Value=$articlearr['content'];
include $template->getfile('admin_editarticle');
}
if ($action=='seteditarticle') {
//print_r($_POST);exit;
$articleid = intval($_GET['articleid']);
foreach ($_POST as $k=>$v) {
$_POST[$k] = char_cv($v);
}
if (empty($title) || empty($category) || empty($tags) || empty($article)) {
showmessage('请将必要信息填写完整!','admincp.php?do=article&action=addarticle');
exit;
}
$dateline = tolinuxtime($_POST['addtime']);$keywords = str_replace(',',',',$_POST['tags']);
$keywords = str_replace(',,',',',$keywords);
$_POST['upattachid'] = !empty($_POST['upattachid'])?$_POST['upattachid']:array();
$attarr = $DB->fetch_assoc($DB->query("SELECT attachments FROM {$db_prefix}articles WHERE articleid='$articleid'"));
$attarr = unserialize(stripslashes_array($attarr['attachments']));
//print_r($attarr);print_r($upattachid);if (!empty($attarr)) {
if (count($attarr) != count($_POST['upattachid'])) {
$attachment_count=0;
foreach ($attarr as $key=>$value) {if (!in_array($key,$_POST['upattachid'])) {unlink(C7ROOT.$c7base['attachments_dir'].$value['filepath']);
if ($value['isimage']=='1') {
unlink(C7ROOT.$c7base['attachments_dir'].$value['thumb_filepath']);
}
$DB->query("DELETE FROM {$db_prefix}attachments WHERE attachmentid='$key'");unset($attarr[$key]);
}
$attachment_count--;
}}
}
//print_r($attarr);print_r($upattachid);if ($_FILES['attach']['name'][0]||$_FILES['attach']['name'][1]||$_FILES['attach']['name'][2]||$_FILES['attach']['name'][3]) {
include C7ROOT.'./c7admin/upload.inc.php';
if (!empty($attarr)) {
$attachment_count =$attachment_count + $attachmentcount;
$attachs = unserialize(stripslashes_array($attachs));
$attachs = serialize(array_merge($attarr,$attachs));
}else{
$attachs = $attachs;
}
}elseif (!empty($attarr)) {
$attachs = addslashes(serialize($attarr));
}else {
$attachs = '';
}
//print_r($attachs);print_r(unserialize(stripslashes_array($attachs)));echo 'articleid:'.$articleid;exit;$DB->query("UPDATE {$db_prefix}statistics SET attachment_count=attachment_count+'$attachment_count'"); if ($keywords) {
$tagdb = explode(',',$keywords);
$tagnum = count($tagdb);
for($i=0;$i<$tagnum;$i++) {
$tagdb[$i] = trim($tagdb[$i]);
if ($tagdb[$i]) {
$tag = $DB->fetch_assoc($DB->query("SELECT tagid,aids FROM {$db_prefix}tags WHERE tag='$tagdb[$i]'"));
if (!$tag) {
$DB->query("INSERT INTO {$db_prefix}tags VALUES(NULL,'$tagdb[$i]','1','$articleid')");$DB->query("UPDATE {$db_prefix}statistics SET tag_count=tag_count+1");
}
}
}
}//end if
$DB->query("UPDATE {$db_prefix}attachments SET articleid='$articleid' WHERE attachmentid IN($attachmentsids)");$DB->query("UPDATE {$db_prefix}articles SET cid='$_POST[category]',uid='$_SESSION[C7UID]',title='$_POST[title]',content='".htmlspecialchars_decode($_POST[article])."',keywords='$keywords',dateline='$dateline',attachments='$attachs',closecomment='$_POST[closecomment]',visible='$_POST[visible]',stick='$_POST[stick]' WHERE articleid='$articleid'");
//$DB->query("UPDATE {$db_prefix}statistics SET ")
require_once C7ROOT.'./include/cache.func.php';
recache();
showmessage('更新文章成功!','admincp.php?do=article');
}if ($action=='delarticle') {
//print_r($_POST);exit;
if ($delarticleid) {
foreach ($delarticleid as $k=>$v) {
$delarticleid[$k] = intval($v);
}
$articleids = implode(',',$delarticleid);
$DB->query("DELETE FROM {$db_prefix}articles WHERE articleid IN ($articleids)");
$DB->query("DELETE FROM {$db_prefix}attachments WHERE articleid IN ($articleids)");
//还要处理TAGS表文章引用ID
require_once C7ROOT.'./include/cache.func.php';
recache();
showmessage('删除文章成功','admincp.php?do=article');
}else {
showmessage('请选择要删除的文章','admincp.php?do=article');
}if ($action=='searcharticle') {
foreach ($_GET as $k=>$v) {
$_GET[$k] = char_cv($v);
}
if (!empty($_GET['words'])) {
$page = empty($page)?'1':intval($page);
$perpage = 10;
$begin = ($page-1)*$perpage;
$num = $DB->num_rows($DB->query("SELECT articleid FROM {$db_prefix}articles WHERE keywords LIKE '%$_GET[words]%'"));
$sql = "SELECT articleid,title,dateline,visible FROM {$db_prefix}articles WHERE keywords LIKE '%$_GET[words]%' ORDER BY dateline DESC LIMIT $begin,$perpage";
$sresult = $DB->query($sql);
while ($arr = $DB->fetch_assoc($sresult)) {
$sarray[] = $arr;
}
$pagination = pagination($num,$perpage,$page,"admincp.php?do=article&action=searcharticle&words=$_GET[words]");
}
include $template->getfile('admin_searcharticle');
}
循环
sql语句
...
//判断array('addarticle','setarticle','editarticle','seteditarticle','delarticle','searcharticle')数组中是否不存在$action;
$page = empty($page)?'1':intval($page);
//判断$page是否为空,如果是,则$page赋值为1,如果不是则把$page去整,然后再赋值给$page;
$perpage = 10;
//定义每页显示10条记录;
$begin = ($page-1)*$perpage;
//计算从那条记录开始查询并返回;
if ($action=='list') {
//判断$action的值是否等于list;
$cateid = intval($_GET['cateid']);
//获取从$purl地址传递过来的参数cateid并赋值给$cateid变量;
$sqlcate = "SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC";
//查询{$db_prefix}categories中的所有字段,并且按displayorder字段升序排序;
$sqlarticle = "SELECT a.articleid,a.cid,a.title,a.attachments,a.dateline,a.visible,c.cid,c.name FROM {$db_prefix}articles a LEFT JOIN ({$db_prefix}categories c) ON (a.cid=c.cid AND a.cid='$cateid') ORDER BY articleid DESC LIMIT $begin,$perpage";
//首先把{$db_prefix}articles表包含到{$db_prefix}categorier表当中去,然后再在其中查询{$db_prefix}articles表的articleid、cid、title、attachments、dateline、visible字段以及{$db_prefix}categorier表中的cid、name字段,并且筛选出两个表cid相等、{$db_prefix}articles中cid=$cateid的记录,最后按照articleid降序排序,从$begin开始取$perpage=10条记录;(ps:这里是联合两个表查询)
$purl = "admincp.php?do=article&action=list&cateid=$cateid";
//定义处理地址变量并传递所需参数;
//echo $sqlcate;echo $sqlarticle;echo $purl;
//测试$sqlcate $sqlarticle $purl三个变量是否正确获取了嵌套其中的变量;
//exit;
//退出当前脚本(PS:这里有点小问题,exit函数应该有一个参数的:exit(status));}else {
//如果$action不等于list,则:
$sqlcate = "SELECT * FROM {$db_prefix}categories ORDER BY displayorder ASC";
//查询{$db_prefix}categories中的所有字段,并且按displayorder字段升序排序;
$sqlarticle = "SELECT a.articleid,a.cid,a.title,a.attachments,a.dateline,a.visible,c.cid,c.name FROM {$db_prefix}articles a LEFT JOIN ({$db_prefix}categories c) ON (a.cid=c.cid) ORDER BY articleid DESC LIMIT $begin,$perpage";
//首先把{$db_prefix}articles表包含到{$db_prefix}categorier表当中去,然后再在其中查询{$db_prefix}articles表的articleid、cid、title、attachments、dateline、visible字段以及{$db_prefix}categorier表中的cid、name字段,并且筛选出两个表cid相等的记录,最后按照articleid降序排序,从$begin开始取$perpage=10条记录;
$purl = "admincp.php?do=article";
//定义处理地址变量并传递所需参数;
}$categories = $DB->query($sqlcate);
//调用$DB对象中的query()方法,使其执行$sqlcate语句,并将结果返回给categories(PS:query()方法相当于mysql_query()之类的执行sql语句的函数,在类中已定义);
$allarticles = 0;
//把$allarticles置为0;
while ($catearr = $DB->fetch_assoc($categories)) {
//调用$DB对象中的fetch_assoc()方法,并把值返回给$catearr数组,如果数组指针不指向末端则返回true(ps:fetch_assoc()方法相当于mysql_query_assoc()函数,返回的是数组,读取数组元素时必须使用字段名索引;
$categoryarr[] = $catearr;
//把数组赋值给$categaoryaar[]数组;
$allarticles += $catearr['articles'];
//把articles字段的值累加到$allartcles变量中;
}
$article = $DB->query($sqlarticle);
//调用$DB对象中的query()方法,使其执行$sqlcate语句,并将结果返回给$artcle变量;
while ($aarr = $DB->fetch_assoc($article)) {
//调用$DB对象中的fetch_assoc()方法,并把值返回给$aarr数组,如果数组指针不指向末端则返回true;
$articlearr[] = $aarr;
//把$aarr的值赋值给$artclearr[]数组;
}
//print_r($articlearr);exit;
//通过输出$artclearr[]数组测试数组是否正确,并退出脚本;
$pagination = pagination($allarticles,$perpage,$page,$purl);
//调用分页函数pagination(),并把返回的值赋给$pagination;
include $template->getfile('admin_article');
//调用$template对象的getfile()方法,使其获取admin_article文件,并且把这文件包含进来;
}
代码的大体思路是这样的:
通过按照$action不同的值进行不同 的操作,其操作有修改,添加,删除等。