cachelist = $cachelist; $discuz->init(); //zzcity add $member = array(); $member = DB::fetch_first("SELECT * FROM ".DB::table('common_member')." WHERE username='".$_POST['username']."'"); $cookietime=$_G['gp_cookietime'] ? 2592000 : 0; $_G['uid'] = $member['uid']; $_G['username'] = $member['username']; $_G['adminid'] = $member['adminid']; $_G['groupid'] = $member['groupid']; $_G['formhash'] = formhash(); $_G['session']['invisible'] = getuserprofile('invisible'); $_G['member'] = $member; $_G['core']->session->isnew = 1; dsetcookie('auth', authcode("{$member['password']}\t{$member['uid']}", 'ENCODE'), $cookietime, 1, true); dsetcookie('loginuser'); dsetcookie('activationauth'); dsetcookie('pmnum'); $discuz->_init_user(); //zzcity $_GET['mod']='portalcp'; //zzcity add $_GET['ac']='article';//zzcity add if(empty($_GET['mod']) || !in_array($_GET['mod'], array('list', 'view', 'comment', 'portalcp', 'topic', 'attachment'))) $_GET['mod'] = 'index'; define('CURMODULE', $_GET['mod']); //runhooks(); //require_once libfile('portal/'.$_GET['mod'], 'module'); //替换source/module/portal/portal_portalcp.php开始 //if(!defined('IN_DISCUZ')) { // exit('Access Denied'); //} $ac = in_array($_GET['ac'], array('comment', 'article', 'block', 'portalblock', 'topic', 'diy', 'upload', 'category'))?$_GET['ac']:'index'; if(empty($ac)) { showmessage('没有正确指定操作'); } require_once libfile('function/portalcp'); //require_once libfile('portalcp/'.$ac, 'include'); //替换source/include/portalcp/portal_article.php开始 /** * [Discuz!] (C)2001-2099 Comsenz Inc. * This is NOT a freeware, use is subject to license terms * * $Id: portalcp_article.php 9631 2010-04-30 07:55:17Z zhangguosheng $ */ //if(!defined('IN_DISCUZ')) { // exit('Access Denied'); //} $op = in_array($_GET['op'], array('addpage', 'edit', 'delpage', 'delete', 'related')) ? $_GET['op'] : 'add'; $aid = intval($_G['gp_aid']); $seccodecheck = $_G['setting']['seccodestatus'] & 4; $secqaacheck = $_G['setting']['secqaa']['status'] & 2; $allowmanage = $allowadd = 0; //if($_G['group']['allowpostarticle'] || $_G['group']['allowmanagearticle']) { $allowadd = 1;//发布权限 //} $article = $article_content = array(); //if($aid) { // $query = DB::query("SELECT * FROM ".DB::table('portal_article_title')." WHERE aid='$aid'"); // $article = DB::fetch($query); // if(!$article) { // showmessage('article_not_exist'); // } // if($_G['group']['allowmanagearticle'] || ($_G['group']['allowpostarticle'] && $article['uid'] == $_G['uid'])) { // $allowmanage = 1;//管理权限 // } //} //if(submitcheck("articlesubmit", 0, $seccodecheck, $secqaacheck)) { // if(($aid && !$allowmanage) || (!$aid && !$allowadd)) { // showmessage('article_edit_nopermission'); // } $_POST['title'] = getstr(trim($_POST['title']), 80, 1, 1, 1); if(strlen($_POST['title']) < 1) { // showmessage('title_not_too_little'); exit('[err]title_not_too_little[/err]'); } if(empty($_POST['summary'])) $_POST['summary'] = preg_replace("/(\s|###NextPage###)+/", ' ', $_POST['content']); $summary = portalcp_get_summary($_POST['summary']); $prename = getstr(dhtmlspecialchars($_POST['prename']), 255, 1, 1, 1); $_G['gp_author'] = dhtmlspecialchars($_G['gp_author']); $_G['gp_from'] = dhtmlspecialchars($_G['gp_from']); $_G['gp_fromurl'] = dhtmlspecialchars($_G['gp_fromurl']); $_G['gp_shorttitle'] = getstr(trim(dhtmlspecialchars($_G['gp_shorttitle'])), 80, 1, 1, 1); $setarr = array( 'title' => $_POST['title'], 'shorttitle' => $_G['gp_shorttitle'], 'author' => $_G['gp_author'], 'from' => $_G['gp_from'], 'fromurl' => $_G['gp_fromurl'], 'url' => $_POST['url'], 'summary' => $summary, 'prename' => $prename, 'preurl' => $_POST['preurl'], 'catid' => intval($_POST['catid']) ); if(empty($setarr['catid'])) { // showmessage('请选择一个合适的系统分类'); exit('[err]请选择一个合适的系统分类[/err]'); } // if($_FILES['pic']) { // if($files = pic_upload($_FILES['pic'], 'portal', 300, 300, 2)) { // $setarr['pic'] = $files['pic']; // $setarr['thumb'] = $files['thumb']; // $setarr['remote'] = $files['remote']; // } // if($setarr['pic'] && $article['pic']) { // pic_delete($article['pic'], 'portal', $article['thumb'], $article['remote']); // } // } //zzcity add function zzfileext($filename) { return strtolower(substr(strrchr($filename, '.'), 1, 10)); } // function zzis_image_ext($ext) { static $imgext = array('jpg', 'jpeg'); return in_array($ext, $imgext) ? 1 : 0; } $ashowurl = empty($_POST['ashowurl']) ? "/data/attachment/portal" : trim($_POST['ashowurl']); $ashowurl = substr($ashowurl,-1)=="/" ? $ashowurl : $ashowurl.'/'; if(!empty($_POST['pic'])){ $setarr['pic'] = str_replace($ashowurl,'',$_POST['pic']); }else{ $attachlist=explode(',',str_replace($ashowurl,'',$_POST['etattachs'])); for($i=0; $iThumb(getglobal('setting/attachdir').'./portal/'.$setarr['pic'], '', 300, 300, 2)) { $setarr['thumb'] = 1; } } if(getglobal('setting/ftp/on')) { $setarr['remote'] = 1; } //zzcity if(empty($article)) { $setarr['uid'] = $_G['uid']; $setarr['username'] = $_G['username']; $setarr['dateline'] = $_G['timestamp']; $setarr['id'] = intval($_POST['id']); if($setarr['id']) $setarr['idtype'] = $_POST['idtype']=='blogid'?'blogid':'tid'; $aid = DB::insert('portal_article_title', $setarr, 1); DB::query('UPDATE '.DB::table('portal_category')." SET articles=articles+1 WHERE catid = '$setarr[catid]'"); } else { DB::update('portal_article_title', $setarr, array('aid' => $aid)); } $cid = intval($_POST['cid']); if($cid) { $query = DB::query("SELECT * FROM ".DB::table('portal_article_content')." WHERE cid='$cid' AND aid='$aid'"); $article_content = DB::fetch($query); } $content = getstr($_POST['content'], 0, 1, 1, 1, 0, 1); $contents = explode('###NextPage###', $content); $content_count = count($contents); $pageorder = intval($_POST['pageorder']); if($pageorder>0) { $startorder = $pageorder - 1; $pageorder = DB::result(DB::query("SELECT pageorder FROM ".DB::table('portal_article_content')." WHERE aid='$aid' ORDER BY pageorder LIMIT $startorder, 1"), 0); if($article_content && $article_content['pageorder'] == $pageorder) { $content_count = $content_count - 1; } if($content_count > 0) { DB::query('UPDATE '.DB::table('portal_article_content')." SET pageorder = pageorder+$content_count WHERE aid='$aid' AND pageorder>='$pageorder'"); } } else { $pageorder = DB::result(DB::query("SELECT MAX(pageorder) FROM ".DB::table('portal_article_content')." WHERE aid='$aid'"), 0); $pageorder = $pageorder + 1; } if($article_content) { $setarr = array( 'content' => trim($contents[0]), 'pageorder' => $pageorder, 'dateline' => $_G['timestamp'] ); DB::update('portal_article_content', $setarr, array('cid'=>$cid)); unset($contents[0]); } if($contents) { $inserts = array(); foreach ($contents as $key => $value) { $value = trim($value); $inserts[] = "('$aid', '$value', '".($pageorder+$key)."', '$_G[timestamp]')"; } DB::query("INSERT INTO ".DB::table('portal_article_content')." (aid, content, pageorder, dateline) VALUES ".implode(',', $inserts)); DB::query('UPDATE '.DB::table('portal_article_title')." SET contents = contents+".count($inserts)." WHERE aid='$aid'"); } $newaids = array(); $_POST['attach_ids'] = explode(',', $_POST['attach_ids']); foreach ($_POST['attach_ids'] as $newaid) { $newaid = intval($newaid); if($newaid) $newaids[$newaid] = $newaid; } if($newaids) { DB::update('portal_attachment', array('aid'=>$aid), "attachid IN (".dimplode($newaids).") AND aid='0'"); } if($_POST['raids']) { DB::query("DELETE FROM ".DB::table('portal_article_related')." WHERE aid='$aid' OR raid='$aid'"); $replaces = array(); $query = DB::query("SELECT aid FROM ".DB::table('portal_article_title')." WHERE aid IN (".dimplode($_POST['raids']).")"); while ($value = DB::fetch($query)) { if($value['aid'] != $aid) { $replaces[] = "('$aid', '$value[aid]')"; $replaces[] = "('$value[aid]', '$aid')"; } } if($replaces) { DB::query("REPLACE INTO ".DB::table('portal_article_related')." (aid,raid) VALUES ".implode(',', $replaces)); } } if($_G['gp_from_idtype'] && $_G['gp_from_id']) { $id = intval($_G['gp_from_id']); $notify = array(); switch ($_G['gp_from_idtype']) { case 'blogid': $blog = DB::fetch_first("SELECT * FROM ".DB::table('home_blog')." WHERE blogid='$id'"); if(!empty($blog)) { $notify = array( 'url' => "home.php?mod=space&do=blog&id=$id", 'subject' => $blog['subject'] ); $touid = $blog['uid']; } break; case 'tid': $thread = DB::fetch_first("SELECT * FROM ".DB::table('forum_thread')." WHERE tid='$id'"); if(!empty($thread)) { $notify = array( 'url' => "forum.php?mod=viewthread&tid=$id", 'subject' => $thread['subject'] ); $touid = $thread['authorid']; } break; } if(!empty($notify)) { $notify['newurl'] = 'portal.php?mod=view&aid='.$aid; require_once libfile('function/notification'); notification_add($touid, 'pusearticle', 'puse_article', $notify, 1); } } /* if($_POST['addpage']) { $url = 'portal.php?mod=portalcp&ac=article&op=addpage&aid='.$aid; } else { $url = $_POST['url']?"portal.php?mod=list&catid=$_POST[catid]":'portal.php?mod=view&aid='.$aid; } */ // showmessage('do_success', $url); echo('[ok]'); //} //if ($op == 'delpage') { // // if(!$aid || !$allowmanage) { // showmessage('article_edit_nopermission'); // } // // $pageorder = intval($_GET['pageorder']); // $aid = intval($_GET['aid']); // $cid = intval($_GET['cid']); // // if($aid && $cid) { // $count = DB::result(DB::query("SELECT COUNT(*) FROM ".DB::table('portal_article_content')." WHERE aid='$aid'"), 0); // if($count > 1) { // DB::query('DELETE FROM '.DB::table('portal_article_content')." WHERE cid='$cid' AND aid='$aid'"); // DB::query('UPDATE '.DB::table('portal_article_title')." SET contents = contents-1 WHERE aid='$aid'"); // } else { // showmessage('当前为最后一页,不能被删除'); // } // } // showmessage('do_success', "portal.php?mod=portalcp&ac=article&op=edit&quickforward=1&aid=$aid"); // //} elseif($op == 'delete') { // // if(!$aid || !$allowmanage) { // showmessage('article_edit_nopermission'); // } // // if(submitcheck('deletesubmit')) { // include_once libfile('function/delete'); // $article = deletearticle(array(intval($_POST['aid'])), intval($_POST['optype'])); // showmessage('article_delete_success', "portal.php?mod=list&catid={$article[0][catid]}"); // } // //} elseif($op == 'related') { // // $raid = intval($_GET['raid']); // $ra = array(); // if($raid) { // $query = DB::query("SELECT * FROM ".DB::table('portal_article_title')." WHERE aid='$raid'"); // $ra = DB::fetch($query); // } // //} else { /* if(($aid && !$allowmanage) || (!$aid && !$allowadd)) { showmessage('article_edit_nopermission'); } $page = empty($_GET['page'])?1:intval($_GET['page']); if($page<1) $page = 1; $start = $page-1; $pageselect = ''; $category = array(); $query = DB::query('SELECT * FROM '.DB::table('portal_category')); while($value = DB::fetch($query)) { $category[$value[catid]] = $value; } foreach ($category as $key=>$value) { $upid = $value['upid']; if($upid) { $category[$upid]['children'][] = $key; $category[$key]['level'] = 1; while($category[$upid]) { $category[$key]['level'] += 1; $upid = $category[$upid]['upid']; } } else { $category[$key]['level'] = 0; } } $_GET['catid'] = $article['catid'] ? $article['catid'] : ($_GET['catid'] && isset($category[$_GET['catid']]) ? $_GET['catid'] : ''); $categoryselect = ""; if($article) { if($op == 'addpage') { $article_content = array(); } else { $query = DB::query("SELECT * FROM ".DB::table('portal_article_content')." WHERE aid='$aid' ORDER BY pageorder LIMIT $start,1"); $article_content = DB::fetch($query); } $article['attach_image'] = $article['attach_file'] = ''; $query = DB::query("SELECT * FROM ".DB::table('portal_attachment')." WHERE aid='$aid' ORDER BY attachid"); while ($value = DB::fetch($query)) { if($value['isimage']) { $article['attach_image'] .= get_uploadcontent($value); } else { $article['attach_file'] .= get_uploadcontent($value); } } if($article['contents'] > 0) { $pageselect = ''; } $multi = multi($article['contents'], 1, $page, "portal.php?mod=portalcp&ac=article&aid=$aid"); if($article['pic']) { $article['pic'] = pic_get($article['pic'], 'portal', $article['thumb'], $article['remote'], 1); } $article['related'] = array(); if($page < 2 && $op != 'addpage') { $query = DB::query("SELECT a.aid,a.title FROM ".DB::table('portal_article_related')." r LEFT JOIN ".DB::table('portal_article_title')." a ON a.aid=r.raid WHERE r.aid='$aid'"); while ($value = DB::fetch($query)) { $article['related'][] = $value; } } } $_GET['from_id'] = empty ($_GET['from_id'])?0:intval($_GET['from_id']); if($_GET['from_idtype'] != 'blogid') $_GET['from_idtype'] = 'tid'; $idtypes = array($_GET['from_idtype'] => ' selected'); if($_GET['from_idtype'] && $_GET['from_id']) { $havepush = db::result(db::query("SELECT COUNT(*) FROM ".db::table('portal_article_title')." WHERE id='$_GET[from_id]' AND idtype='$_GET[from_idtype]'"), 0); if($havepush) { showmessage('已经推送到文章里面了,不能重复推送', '', array(), array('return'=>true)); } switch ($_GET['from_idtype']) { case 'blogid': $query = DB::query("SELECT b.*, bf.message FROM ".DB::table('home_blog')." b LEFT JOIN ".DB::table('home_blogfield')." bf ON bf.blogid=b.blogid WHERE b.blogid='$_GET[from_id]'"); if($blog = DB::fetch($query)) { if($blog['friend']) { showmessage('当前日志因隐私设置不能进行文章推送操作'); } $article['title'] = getstr($blog['subject'], 0); $article['summary'] = portalcp_get_summary($blog['message']); $article_content['content'] = dhtmlspecialchars($blog['message']); } break; default: $posttable = getposttablebytid($_GET['from_id']); $query = DB::query("SELECT t.*, p.* FROM ".DB::table('forum_thread')." t LEFT JOIN ".DB::table($posttable)." p ON p.tid=t.tid AND p.first='1' WHERE t.tid='$_GET[from_id]'"); if($thread = DB::fetch($query)) { $article['title'] = $thread['subject']; $language = lang('forum/misc'); $thread['message'] = preg_replace($language['post_edit_regexp'], '', $thread['message']); require_once libfile('function/discuzcode'); $thread['message'] = discuzcode($thread['message'], $thread['smileyoff'], $thread['bbcodeoff'], $thread['htmlon']); $article['summary'] = portalcp_get_summary($thread['message']); $article_content['content'] = dhtmlspecialchars($thread['message']); $query = DB::query("SELECT aid FROM ".DB::table('forum_attachment')." WHERE pid='$thread[pid]'"); while($attach = DB::fetch($query)) { $attachcode = '[attach]'.$attach['aid'].'[/attach]'; if(!strexists($article_content['content'], $attachcode)) { $article_content['content'] .= '

'.$attachcode; } } } break; } } */ //} //include_once template("portal/portalcp_article"); function portalcp_get_summary($message) { $message = preg_replace(array("/\[attach\].*?\[\/attach\]/", "/\&[a-z]+\;/i"), '', $message); $message = preg_replace("/\[.*?\]/", '', $message); $message = getstr(strip_tags($message), 200); return $message; } //替换source/include/portalcp/portal_article.php结束 //替换source/module/portal/portal_portalcp.php结束 ?>