connect(DB_HOST, DB_USER, DB_PW, DB_NAME, DB_PCONNECT, DB_CHARSET); require 'session_'.SESSION_STORAGE.'.class.php'; $session = new session(); session_set_cookie_params(0, COOKIE_PATH, COOKIE_DOMAIN); if($_REQUEST) { if(MAGIC_QUOTES_GPC) { $_REQUEST = new_stripslashes($_REQUEST); if($_COOKIE) $_COOKIE = new_stripslashes($_COOKIE); } else { $_POST = new_addslashes($_POST); $_GET = new_addslashes($_GET); $_COOKIE = new_addslashes($_COOKIE); @extract($_POST); @extract($_GET); @extract($_COOKIE); } if(!defined('IN_ADMIN')) $_REQUEST = filter_xss($_REQUEST, ALLOWED_HTMLTAGS); extract($db->escape($_REQUEST), EXTR_SKIP); if($_COOKIE) $db->escape($_COOKIE); } if(QUERY_STRING && strpos(QUERY_STRING, '=') === false && preg_match("/^(.*)\.(htm|html|shtm|shtml)$/", QUERY_STRING, $urlvar)) { parse_str(str_replace(array('/', '-', ' '), array('&', '=', ''), $urlvar[1])); } $CACHE = cache_read('common.php'); if(!$CACHE) { require_once 'cache.func.php'; cache_all(); $CACHE = cache_read('common.php'); } extract($CACHE); unset($CACHE); if($PHPCMS['enable_ipbanned'] && ip_banned(IP)) showmessage($LANG['administrator_banned_this_IP']); if(!defined('IN_ADMIN')) { if(FILTER_ENABLE && filter_word()) showmessage('The content including illegal information: '.ILLEGAL_WORD.' .'); if($PHPCMS['minrefreshtime']) { $cc = new times(); $cc->set('cc', $PHPCMS['minrefreshtime'], 1); if($cc->check()) showmessage('Do not refresh the page in '.$PHPCMS['minrefreshtime'].' seconds!'); $cc->add(); unset($cc); } if(!isset($forward)) $forward = HTTP_REFERER; } $M = $TEMP = array(); if(!isset($mod)) $mod = 'phpcms'; if($mod != 'phpcms') { isset($MODULE[$mod]) or exit($LANG['module_not_exists']); $langfile = defined('IN_ADMIN') ? $mod.'_admin' : $mod; @include PHPCMS_ROOT.'languages/'.LANG.'/'.$langfile.'.lang.php'; $M = cache_read('module_'.$mod.'.php'); } $_userid = 0; $_username = ''; $_groupid = 3; //$phpcms_auth = get_cookie('auth'); $action='add'; $dosubmit=true; //ET增加登录验证 require PHPCMS_ROOT.'languages/'.LANG.'/member.lang.php'; require PHPCMS_ROOT.'member/include/member.class.php'; $member = new member(); $result = $member->login($username, $password); if(!$result) { exit("[err]invalid username or password[/err]"); } @extract($result, EXTR_PREFIX_ALL, ''); if($_groupid > 1) { exit("[err]you are not admin[/err]"); } $_SESSION['is_admin'] = 1; /* if($phpcms_auth) { $auth_key = md5(AUTH_KEY.$_SERVER['HTTP_USER_AGENT']); list($_userid, $_password) = explode("\t", phpcms_auth($phpcms_auth, 'DECODE', $auth_key)); $_userid = intval($_userid); $sql_member = "SELECT * FROM `".DB_PRE."member_cache` WHERE `userid`=$_userid"; $r = $db->get_one($sql_member); if(!$r && cache_member()) { $r = $db->get_one($sql_member); } if($r && $r['password'] === $_password) { if($r['groupid'] == 2) { set_cookie('auth', ''); showmessage($LANG['userid_banned_by_administrator']); } @extract($r, EXTR_PREFIX_ALL, ''); } else { $_userid = 0; $_username = ''; $_groupid = 3; set_cookie('auth', ''); } unset($r, $phpcms_auth, $phpcms_auth_key, $_password, $sql_member); }*/ $G = cache_read('member_group_'.$_groupid.'.php'); $priv_group = new priv_group(); define('SKIN_PATH', 'templates/'.TPL_NAME.'/skins/'.TPL_CSS.'/'); define('PASSPORT_ENABLE', ($PHPCMS['uc'] || $PHPCMS['enablepassport'] || $PHPCMS['enableserverpassport']) ? 1 : 0); //include/common.inc.php结束 require 'log.class.php'; require 'form.class.php'; require 'priv_role.class.php'; require_once 'cache.func.php'; require_once 'version.inc.php'; require PHPCMS_ROOT.'languages/'.LANG.'/phpcms_admin.lang.php'; if(!isset($file)) $file = 'index'; preg_match("/^[0-9A-Za-z_-]+$/", $file) or showmessage('Invalid Request.'); $action = isset($action) ? $action : ''; $catid = isset($catid) ? intval($catid) : 0; $specialid = isset($specialid) ? intval($specialid) : 0; if(!isset($forward) && str_exists(HTTP_REFERER, '?')) $forward = HTTP_REFERER; session_start(); if($_userid && $_groupid == 1 && $_SESSION['is_admin'] == 1) { $ROLE = cache_read('role.php'); $GROUP = cache_read('member_group.php'); $POS = cache_read('position.php'); $STATUS = cache_read('status.php'); // $_roleid = cache_read('admin_role_'.$_userid.'.php'); // if(!$_roleid) showmessage('您没有任何角色权限!'); // $priv_role = new priv_role(); // if(!$priv_role->module()) showmessage('您没有操作权限!'); } /*elseif($file != 'login') { showmessage('请登录!', '?mod=phpcms&file=login&forward='.urlencode(URL),1,1); } */ $log = new log(); if(ADMIN_LOG && $file != 'database' && !in_array($action, array('get_menu_list', 'menu_pos'))) { $log->set('admin', 0); $log->add(); } //if($mod != 'phpcms' && !@include PHPCMS_ROOT.$M['path'].'admin/admin.inc.php') showmessage('The file ./'.$M['path'].'admin.inc.php is not exists!'); if($mod != 'phpcms' && !@include PHPCMS_ROOT.$M['path'].'admin/admin.inc.php') exit('[err]The file ./'.$M['path'].'admin.inc.php is not exists! [/err]'); //if(!@include PHPCMS_ROOT.(isset($M['path']) ? $M['path'] : '').'admin/'.$file.'.inc.php') exit("[err]The file ./{$M['path']}admin/{$file}.inc.php is not exists![/err]"); defined('IN_PHPCMS') or exit("Access Denied"); require_once 'admin/process.class.php'; require_once 'admin/content.class.php'; //替换require_once 'attachment.class.php';开始 class attachment { var $db; var $table; var $contentid; var $module; var $catid; var $attachments; var $field; var $imageexts = array('gif', 'jpg', 'jpeg', 'png', 'bmp'); var $uploadedfiles = array(); var $downloadedfiles = array(); var $error; function attachment($module = 'phpcms', $catid = 0) { global $db; $this->db = &$db; $this->table = DB_PRE.'attachment'; $this->module = $module; $this->catid = intval($catid); } function get($aid, $fields = '*') { $aid = intval($aid); return $this->db->get_one("SELECT $fields FROM `$this->table` WHERE `aid`=$aid"); } function upload($field, $alowexts = 'jpg|jpeg|gif|bmp|png|doc|docx|xls|ppt|pdf|txt|rar|zip', $maxsize = 0, $overwrite = 0) { global $_groupid; if((!UPLOAD_FRONT && $_groupid != 1) || !isset($_FILES[$field])) return false; $this->field = $field; $this->savepath = UPLOAD_ROOT.date('Y/md/'); /*判断上传附件方式是否为ftp方式*/ if(UPLOAD_FTP_ENABLE && extension_loaded('ftp')) { if(!is_object($upload_ftp)) { require_once 'ftp.class.php'; $upload_ftp = new ftp(UPLOAD_FTP_HOST, UPLOAD_FTP_PORT, UPLOAD_FTP_USER, UPLOAD_FTP_PW, UPLOAD_FTP_PATH); if($upload_ftp->error) showmessage($upload_ftp->error); } $upload_ftp_enable = 1; $this->savepath = UPLOAD_FTP_ROOT.date('Y/md/'); } $this->alowexts = $alowexts; $this->maxsize = $maxsize; $this->overwrite = $overwrite; $uploadfiles = array(); $description = isset($GLOBALS[$field.'_description']) ? $GLOBALS[$field.'_description'] : array(); if(is_array($_FILES[$field]['error'])) { $this->uploads = count($_FILES[$field]['error']); foreach($_FILES[$field]['error'] as $key => $error) { if($error === UPLOAD_ERR_NO_FILE) continue; if($error !== UPLOAD_ERR_OK) { $this->error = $error; return false; } $uploadfiles[$key] = array('tmp_name' => $_FILES[$field]['tmp_name'][$key], 'name' => $_FILES[$field]['name'][$key], 'type' => $_FILES[$field]['type'][$key], 'size' => $_FILES[$field]['size'][$key], 'error' => $_FILES[$field]['error'][$key], 'description'=>$description[$key]); } } else { $this->uploads = 1; if(!$description) $description = ''; $uploadfiles[0] = array('tmp_name' => $_FILES[$field]['tmp_name'], 'name' => $_FILES[$field]['name'], 'type' => $_FILES[$field]['type'], 'size' => $_FILES[$field]['size'], 'error' => $_FILES[$field]['error'], 'description'=>$description); } if($upload_ftp_enable) { if(!ftp_dir_create($this->savepath)) { echo '1243'; $this->error = '8'; return false; } if(!$upload_ftp->chdir($this->savepath)) { $this->error = '8'; return false; } @$upload_ftp->chmod(0777, $this->savepath); if(!$this->is_allow_upload()) { $this->error = '13'; return false; } } else { if(!dir_create($this->savepath)) { $this->error = '8'; return false; } if(!is_dir($this->savepath)) { $this->error = '8'; return false; } @chmod($this->savepath, 0777); if(!is_writeable($this->savepath)) { $this->error = '9'; return false; } if(!$this->is_allow_upload()) { $this->error = '13'; return false; } } $aids = array(); foreach($uploadfiles as $k=>$file) { $fileext = fileext($file['name']); if(!preg_match("/^(".$this->alowexts.")$/", $fileext)) { $this->error = '10'; return false; } if($this->maxsize && $file['size'] > $this->maxsize) { $this->error = '11'; return false; } if(!$this->isuploadedfile($file['tmp_name'])) { $this->error = '12'; return false; } $temp_filename = $this->getname($fileext); $savefile = $this->savepath.$temp_filename; $savefile = preg_replace("/(php|phtml|php3|php4|jsp|exe|dll|asp|cer|asa|shtml|shtm|aspx|asax|cgi|fcgi|pl)(\.|$)/i", "_\\1\\2", $savefile); $filepath = preg_replace("|^".UPLOAD_ROOT."|", "", $savefile); if($upload_ftp_enable) { if(!$this->overwrite && ($upload_ftp->size($savefile)>0)) continue; if($upload_ftp->put($temp_filename, $file['tmp_name'])) { $this->uploadeds++; @$upload_ftp->chmod($savefile, 0644); @unlink($file['tmp_name']); $uploadedfile = array('filename'=>$file['name'], 'filepath'=>UPLOAD_FTP_DOMAIN.$filepath, 'filetype'=>$file['type'], 'filesize'=>$file['size'], 'fileext'=>$fileext, 'description'=>$file['description']); $aids[] = $this->add($uploadedfile); } } else { if(!$this->overwrite && file_exists($savefile)) continue; $upload_func = UPLOAD_FUNC; if(@$upload_func($file['tmp_name'], $savefile)) { $this->uploadeds++; @chmod($savefile, 0644); @unlink($file['tmp_name']); $uploadedfile = array('filename'=>$file['name'], 'filepath'=>$filepath, 'filetype'=>$file['type'], 'filesize'=>$file['size'], 'fileext'=>$fileext, 'description'=>$file['description']); $aids[] = $this->add($uploadedfile); } } } return $aids; } function update_intr($contentid, $value = '', $length = 200) { $length = min(intval($length), 255); $value = trim($value); if($value) { $des = $this->db->get_one("SELECT `description` FROM ".DB_PRE."content WHERE `contentid`='$contentid'"); if(trim($des['description'])) return TRUE; if(strpos($value, '

')!==false) { $sen_occ = strpos($value, '

'); $value = substr($value, 0, $sen_occ+3); } elseif(strpos($value, 'db->query("UPDATE ".DB_PRE."content SET `description`='$description' WHERE `contentid`='$contentid'"); } return TRUE; } function update_thumb($contentid, $aid = 1) { $aid = max(intval($aid), 1); $id = $this->db->get_one("SELECT `thumb` FROM ".DB_PRE."content WHERE `contentid`=$contentid"); if($id['thumb']) return true; $aid--; $info = $this->db->get_one("SELECT `filepath` FROM `$this->table` WHERE `contentid`='$contentid' ORDER BY `aid` ASC LIMIT $aid, 1"); if($info['filepath']) { if(strpos($info['filepath'], '://') === false) $path = UPLOAD_URL.$info['filepath']; $this->db->query("UPDATE ".DB_PRE."content SET `thumb`='$path' WHERE `contentid`='$contentid'"); } return true; } function download($field, $value, $ext = 'gif|jpg|jpeg|bmp|png', $absurl = '', $basehref = '') { global $contentid; $this->field = $field; $dir = date('Y/md/', TIME); $uploadpath = PHPCMS_PATH.UPLOAD_URL.$dir; $uploaddir = UPLOAD_ROOT.$dir; dir_create($uploaddir); $string = stripslashes($value); if(!preg_match_all("/(href|src)=([\"|']?)([^ \"'>]+\.($ext))\\2/i", $string, $matches)) return $value; $remotefileurls = array(); foreach($matches[3] as $matche) { if(strpos($matche, '://') === false) continue; $remotefileurls[$matche] = $this->fillurl($matche, $absurl, $basehref); } unset($matches, $string); $attachments = get_cookie('attachments'); $attachments = $attachments==false ? array() : $attachments; //zzcity add $remotefileurls = array_unique($remotefileurls); $oldpath = $newpath = array(); $attachments = array_map('basename', $attachments); foreach($remotefileurls as $k=>$file) { if(strpos($file, '://') === false) continue; $filename = fileext($file); $file_name = basename($file); if($contentid) { $r = $this->db->get_one("SELECT `aid` FROM `".DB_PRE."attachment` WHERE `contentid`=$contentid AND `filename`='$file_name'"); if($r['aid']) continue; } if(in_array($file_name, $attachments)) { $aid = array_search($file_name, $attachments); $this->attachments[$this->field][$aid] = $file; continue; } $filename = $this->getname($filename); $newfile = $uploaddir.$filename; $upload_func = UPLOAD_FUNC; if(@$upload_func($file, $newfile)) { $oldpath[] = $k; $newpath[] = $uploadpath.$filename; @chmod($newfile, 0777); $fileext = fileext($filename); $filetype = ''; $image_type = 'IMAGETYPE_'.strtoupper($fileext); if(defined($image_type) && function_exists('image_type_to_mime_type')) { $filetype = image_type_to_mime_type(constant($image_type)); } $filepath = $dir.$filename; $downloadedfile = array('filename'=>$filename, 'filepath'=>$filepath, 'filetype'=>$filetype, 'filesize'=>filesize($newfile), 'fileext'=>$fileext); $aid = $this->add($downloadedfile); $this->downloadedfiles[$aid] = $filepath; } } return str_replace($oldpath, $newpath, $value); } function listinfo($where, $fields = '*', $order = 'listorder,aid', $page = 0, $pagesize = 20) { if($where) $where = " WHERE $where"; if($order) $order = " ORDER BY $order"; $limit = ''; if($page !== 0) { $page = max(intval($page), 1); $offset = $pagesize*($page-1); $limit = " LIMIT $offset, $pagesize"; $r = $this->db->get_one("SELECT count(*) as number FROM $this->table $where"); $number = $r['number']; $this->pages = pages($number, $page, $pagesize); } $i = 1; $array = array(); $result = $this->db->query("SELECT $fields FROM `$this->table` $where $order $limit"); while($r = $this->db->fetch_array($result)) { if(strstr($r['filepath'], 'http://')) { unset($r['isthumb']); } else { $r['filepath'] = UPLOAD_URL.$r['filepath']; $r['thumb'] = $this->get_thumb($r['filepath']); } $array[$i] = $r; $i++; } $this->number = $this->db->num_rows($result); $this->db->free_result($result); return $array; } function add($uploadedfile) { global $_userid; $uploadedfile['field'] = $this->field; $uploadedfile['module'] = $this->module; $uploadedfile['catid'] = $this->catid; $uploadedfile['userid'] = $_userid; $uploadedfile['uploadtime'] = TIME; $uploadedfile['uploadip'] = IP; $uploadedfile['isimage'] = in_array($uploadedfile['fileext'], $this->imageexts) ? 1 : 0; $uploadedfile = new_addslashes($uploadedfile); $this->db->insert($this->table, $uploadedfile); $aid = $this->db->insert_id(); $uploadedfile['aid'] = $aid; $this->uploadedfiles[] = $uploadedfile; $this->attachments[$this->field][$aid] = $uploadedfile['filepath']; $attachments = get_cookie('attachments'); $attachments[$aid] = $uploadedfile['filepath']; set_cookie('attachments', $attachments); return $aid; } function delete($where) { $result = $this->db->query("SELECT `filepath`,`isthumb` FROM `$this->table` WHERE $where ORDER BY `aid`"); while($r = $this->db->fetch_array($result)) { $image = UPLOAD_ROOT.$r['filepath']; @unlink($image); $thumbs = glob(dirname($image).'/*'.basename($image)); if($thumbs) foreach($thumbs as $thumb) @unlink($thumb); if($r['isthumb']) { $thumb = $this->get_thumb($image); @unlink($thumb); } } $this->db->free_result($result); return $this->db->query("DELETE FROM `$this->table` WHERE $where"); } function listorder($aid, $listorder) { $aid = intval($aid); $listorder = min(intval($listorder), 255); return $this->db->query("UPDATE `$this->table` SET `listorder`=$listorder WHERE `aid`=$aid"); } function description($aid, $description) { $aid = intval($aid); return $this->db->query("UPDATE `$this->table` SET `description`='$description' WHERE `aid`=$aid"); } function get_thumb($image) { return str_replace('.', '_thumb.', $image); } function set_thumb($aid) { $aid = intval($aid); return $this->db->query("UPDATE `$this->table` SET `isthumb`=1 WHERE `aid`=$aid"); } function is_allow_upload() { global $_groupid; if($_groupid == 1) return true; $starttime = TIME-86400; $uploads = cache_count("SELECT COUNT(*) AS `count` FROM `$this->table` WHERE `uploadip`='".IP."' AND `uploadtime`>$starttime"); return ($uploads < UPLOAD_MAXUPLOADS); } function update($contentid, $field, $html = '') { if(!isset($this->attachments[$field]) && $html == '') return 0; $contentid = intval($contentid); $aids = ''; $attachments = get_cookie('attachments'); if($html && !empty($attachments) && empty($_SESSION['downfiles']) && empty($_SESSION['field_images']) && empty($_SESSION['field_image'])) { $aids_del = array(); foreach($attachments as $aid => $url) { if(!isset($this->downloadedfiles[$aid]) && strpos($html, $url) === false) { $aids_del[] = $aid; } else { $aids[] = $aid; } } } else { if(is_array($this->attachments[$field])) $aids = array_keys($this->attachments[$field]); } $aids = implodeids($aids); if($aids) $this->db->query("UPDATE `$this->table` SET `catid`='$this->catid',`contentid`=$contentid,`field`='$field' WHERE `aid` IN($aids)"); if(is_array($attachments) && !empty($attachments)) { foreach($attachments as $k=>$v) { $attachments[$k] = ''; } } set_cookie('attachments', $attachments); unset($attachments,$_SESSION['downfiles'],$_SESSION['field_images']); return $aids ? 1 : 0; } function getname($fileext) { return date('Ymdhis').rand(100, 999).'.'.$fileext; } function size($filesize) { if($filesize >= 1073741824) { $filesize = round($filesize / 1073741824 * 100) / 100 . ' GB'; } elseif($filesize >= 1048576) { $filesize = round($filesize / 1048576 * 100) / 100 . ' MB'; } elseif($filesize >= 1024) { $filesize = round($filesize / 1024 * 100) / 100 . ' KB'; } else { $filesize = $filesize . ' Bytes'; } return $filesize; } function isuploadedfile($file) { return is_uploaded_file($file) || is_uploaded_file(str_replace('\\\\', '\\', $file)); } function fillurl($surl, $absurl, $basehref = '') { if($basehref != '') { $preurl = strtolower(substr($surl,0,6)); if($preurl=='http://' || $preurl=='ftp://' ||$preurl=='mms://' || $preurl=='rtsp://' || $preurl=='thunde' || $preurl=='emule://'|| $preurl=='ed2k://') return $surl; else return $basehref.'/'.$surl; } $i = 0; $dstr = ''; $pstr = ''; $okurl = ''; $pathStep = 0; $surl = trim($surl); if($surl=='') return ''; //判断文档相对于当前的路径 $urls = @parse_url(SITE_URL); $HomeUrl = $urls['host']; $BaseUrlPath = $HomeUrl.$urls['path']; $BaseUrlPath = preg_replace("/\/([^\/]*)\.(.*)$/",'/',$BaseUrlPath); $BaseUrlPath = preg_replace("/\/$/",'',$BaseUrlPath); $pos = strpos($surl,'#'); if($pos>0) $surl = substr($surl,0,$pos); if($surl[0]=='/') { $okurl = 'http://'.$HomeUrl.'/'.$surl; } elseif($surl[0] == '.') { if(strlen($surl)<=2) return ''; elseif($surl[0]=='/') { $okurl = 'http://'.$BaseUrlPath.'/'.substr($surl,2,strlen($surl)-2); } else { $urls = explode('/',$surl); foreach($urls as $u) { if($u=="..") $pathStep++; else if($i '文件上传成功', 1 => '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值', 2 => '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值', 3 => '文件只有部分被上传', 4 => '没有文件被上传', 5 => '', 6 => '找不到临时文件夹。', 7 => '文件写入临时文件夹失败', 8 => '附件目录创建不成功', 9 => '附件目录没有写入权限', 10 => '不允许上传该类型文件', 11 => '文件超过了管理员限定的大小', 12 => '非法上传文件', 13 => '24小时内上传附件个数超出了系统限制', ); return $UPLOAD_ERROR[$this->error]; } } //替换结束 $c = new content(); if(is_numeric($contentid) && $contentid>0) { $data = $c->get($contentid); $catid = $data['catid']; $modelid = $CATEGORY[$catid]['modelid']; } $catid=$info['catid']; //ET增加 $info['islink']=(empty($info['islink']))?99:$info['islink'];//ET增加 if(!isset($catid) || !isset($CATEGORY[$catid])) showmessage('缺少 catid 参数!'); extract(cache_read('category_'.$catid.'.php')); if($type == 2) { if($action == 'manage') $action = 'link'; } elseif($type == 1) { if($action == 'manage') $action = 'block'; } else { /* $allow_manage = $priv_role->check('catid', $catid, 'manage'); $allow_add = $allow_manage ? true : $priv_role->check('catid', $catid, 'add'); $allow_check = $allow_manage ? true : $priv_role->check('catid', $catid, 'check'); $allow_view = $allow_manage ? true : $priv_role->check('catid', $catid, 'view'); */ $allow_manage = true; $allow_add = true ; $allow_check =false; $allow_view = false; $attachment = new attachment($mod, $catid); $p = new process($workflowid); $PROCESS = cache_read('process_'.$workflowid.'.php'); /* $submenu = $allowprocessids = array(); if($allow_add) { $submenu[] = array('发布信息', '?mod='.$mod.'&file='.$file.'&action=add&catid='.$catid); $submenu[] = array('我发布的信息', '?mod='.$mod.'&file='.$file.'&action=my&catid='.$catid); } if($allow_check) { foreach($PROCESS as $pid=>$processname) { if($priv_role->check('processid', $pid)) { $allow_processids[] = $pid; if($pid==1) $add_status = '&status=3'; $submenu[] = array($processname, '?mod='.$mod.'&file='.$file.'&action=check&catid='.$catid.'&processid='.$pid.$add_status); } } } if($allow_manage) { $submenu[] = array('管理', '?mod='.$mod.'&file='.$file.'&action=manage&catid='.$catid); $submenu[] = array('回收站', '?mod='.$mod.'&file='.$file.'&action=recycle&catid='.$catid); $submenu[] = array('碎片', '?mod='.$mod.'&file='.$file.'&action=block&catid='.$catid); } elseif($allow_view) { $submenu[] = array('浏览', '?mod='.$mod.'&file='.$file.'&action=browse&catid='.$catid); } $submenu[] = array('搜索', '?mod='.$mod.'&file='.$file.'&action=search&catid='.$catid); $menu = admin_menu($CATEGORY[$catid]['catname'].' 栏目管理', $submenu); */ if(!isset($processid) || !in_array($processid, $allow_processids)) $processid = $allow_processids[0]; } switch($action) { case 'add': //if(!$priv_role->check('catid', $catid, 'add') && !$allow_manage) showmessage('无发布权限!'); if($dosubmit) { $info['status'] = ($status == 2 || $status == 3) ? $status : ($allow_manage ? 99 : 3); if(isset($info['inputtime'])) $info['updatetime'] = $info['inputtime']; $contentid = $c->add($info,$cat_selected); //if($contentid) showmessage('发布成功!', '?mod=phpcms&file=content&action=add&catid='.$catid); if($contentid){ exit("[ok]");} else{ exit("[err]post failed[/err]"); } } else { $data['catid'] = $catid; $data['template'] = isset($template_show) ? $template_show :$MODEL[$modelid]['template_show']; require CACHE_MODEL_PATH.'content_form.class.php'; $content_form = new content_form($modelid); $forminfos = $content_form->get($data); require_once 'tree.class.php'; foreach($CATEGORY as $cid=>$c) { if($c['module'] != $mod || $c['type'] > 0) continue; $checkbox = $c['child'] ? '' : ''; $cats[$cid] = array('id'=>$cid, 'parentid'=>$c['parentid'], 'name'=>$c['catname'], 'checkbox'=>$checkbox); } $str = "\$spacer\$name\$checkbox"; $tree = new tree($cats); $categorys = $tree->get_tree(0, $str); $pagetitle = $CATEGORY[$catid]['catname'].'-发布'; header("Cache-control: private"); include admin_tpl('content_add'); } break; /* case 'edit': if($dosubmit) { $c->edit($contentid, $info); showmessage('修改成功!', $forward); } else { require CACHE_MODEL_PATH.'content_form.class.php'; $content_form = new content_form($modelid); $forminfos = $content_form->get($data); include admin_tpl('content_edit'); } break; case 'view': if(!$priv_role->check('catid', $catid, 'view') && !$allow_manage) showmessage('无查看权限!'); require_once CACHE_MODEL_PATH.'content_output.class.php'; $coutput = new content_output(); $info = $coutput->get($data); include admin_tpl('content_view'); break; case 'log_list': $ACTION = array('add'=>'发布', 'edit'=>'修改', 'delete'=>'删除'); $content = $c->get($contentid); extract($content); $log->set('contentid', $contentid); $data = $log->listinfo($where, $page, 20); include admin_tpl('content_log'); break; case 'my': if(!$allow_add) showmessage('无发布权限!'); $c->set_userid($_userid); $status = isset($status) ? intval($status) : -1; $where = "`catid`=$catid "; if($status != -1) $where .= " AND `status`='$status'"; $infos = $c->listinfo($where, 'listorder DESC,contentid DESC', $page, 20); $pagetitle = '我的信息-管理'; include admin_tpl('content_my'); break; case 'my_contribute': $c->set_userid($_userid); $contentid = $c->contentid($contentid, array(0, 1, 2)); $c->status($contentid, 3); showmessage('操作成功!', $forward); break; case 'my_cancelcontribute': $c->set_userid($_userid); $contentid = $c->contentid($contentid, array(3)); $c->status($contentid, 2); showmessage('操作成功!', $forward); break; case 'my_edit': $c->set_userid($_userid); $contentid = $c->contentid($contentid, array(0, 1, 2, 3)); if($dosubmit) { $c->edit($contentid, $info); showmessage('修改成功!', $forward); } else { require CACHE_MODEL_PATH.'content_form.class.php'; $content_form = new content_form($modelid); $forminfos = $content_form->get($data); include admin_tpl('content_edit'); } break; case 'my_delete': $c->set_userid($_userid); $contentid = $c->contentid($contentid, array(0, 1, 2, 3)); $c->delete($contentid); showmessage('操作成功!', $forward); break; case 'my_view': $c->set_userid($_userid); $contentid = $c->contentid($contentid, array(0, 1, 2, 3)); require_once CACHE_MODEL_PATH.'content_output.class.php'; $coutput = new content_output(); $info = $coutput->get($data); include admin_tpl('content_view'); break; case 'check': $allow_status = $p->get_process_status($processid); if(!isset($status) || !in_array($status, $allow_status)) $status = -1; $where = "`catid`=$catid "; $where .= $status == -1 ? " AND `status` IN(".implode(',', $allow_status).")" : " AND `status`='$status'"; $infos = $c->listinfo($where, 'listorder DESC,contentid DESC', $page, 20); $process = $p->get($processid, 'passname,passstatus,rejectname,rejectstatus'); extract($process); $pagetitle = $CATEGORY[$catid]['catname'].'-审核'; include admin_tpl('content_check'); break; case 'browse': $where = "`catid`=$catid AND `status`=99"; $infos = $c->listinfo($where, 'listorder DESC,contentid DESC', $page, 20); include admin_tpl('content_browse'); break; case 'search': if($dosubmit) { require CACHE_MODEL_PATH.'content_search.class.php'; $content_search = new content_search(); $infos = $content_search->data($page, 20); include admin_tpl('content_search_list'); } else { require CACHE_MODEL_PATH.'content_search_form.class.php'; $content_search_form = new content_search_form(); $forminfos = $content_search_form->get_where(); $orderfields = $content_search_form->get_order(); $pagetitle = $CATEGORY[$catid]['catname'].'-搜索'; include admin_tpl('content_search'); } break; case 'recycle': if(!$allow_manage) showmessage('无管理权限!'); $infos = $c->listinfo("catid=$catid AND status=0", 'listorder DESC,contentid DESC', $page, 20); $pagetitle = $CATEGORY[$catid]['catname'].'-回收站'; include admin_tpl('content_recycle'); break; case 'pass': if(!$priv_role->check('catid', $catid, 'check') && !$allow_manage) showmessage('无审核权限!'); $allow_status = $p->get_process_status($processid); if($contentid=='') showmessage('请选择要批准的内容'); $contentid = $c->contentid($contentid, 0, $allow_status); $process = $p->get($processid, 'passstatus'); $c->status($contentid, $process['passstatus']); showmessage('操作成功!', $forward); break; case 'reject': if(!$priv_role->check('catid', $catid, 'check') && !$allow_manage) showmessage('无审核权限!'); $allow_status = $p->get_process_status($processid); if($contentid=='') showmessage('请选择要批准的内容'); $contentid = $c->contentid($contentid, 0, $allow_status); $process = $p->get($processid, 'rejectstatus'); $c->status($contentid, $process['rejectstatus']); showmessage('操作成功!', $forward); break; case 'cancel': if(!$allow_manage) showmessage('无管理权限!'); $c->status($contentid, 0); showmessage('操作成功!', $forward); break; case 'delete': if(!$allow_manage) showmessage('无管理权限!'); $c->delete($contentid); showmessage('操作成功!', $forward); break; case 'clear': if(!$allow_manage) showmessage('无管理权限!'); $c->clear(); showmessage('操作成功!', $forward); break; case 'restore': if(!$allow_manage) showmessage('无管理权限!'); $c->restore($contentid); showmessage('操作成功!', $forward); break; case 'restoreall': if(!$allow_manage) showmessage('无管理权限!'); $c->restoreall(); showmessage('操作成功!', $forward); break; case 'listorder': $result = $c->listorder($listorders); if($result) { showmessage('操作成功!', $forward); } else { showmessage('操作失败!'); } break; case 'link': if($dosubmit) { require_once 'admin/category.class.php'; $cat = new category($mod); $cat->link($catid, $category); showmessage('操作成功!', $forward); } else { include admin_tpl('content_link'); } break; case 'block': if($type == 0) { $page = max(intval($page), 1); if($tpl == 'category') { if($child == 1) { $arrchildid = subcat('phpcms', $catid); $template = $template_category; } else { $template = $template_list; } } elseif($tpl == 'show') { $template = $MODEL[$modelid]['template_show']; } else { $template = $template_list; } } elseif($type == 2) { header('location:'.$url); } $catlist = submodelcat($modelid); $arrparentid = explode(',', $arrparentid); $parentid = $arrparentid[1]; $head['title'] = $catname; $head['keywords'] = $meta_keywords; $head['description'] = $meta_description; include admin_template('phpcms', $template); include admin_tpl('block_ajax', 'phpcms'); break; case 'category': $catid = intval($catid); if(!isset($CATEGORY[$catid])) showmessage('访问的栏目不存在!'); $C = cache_read('category_'.$catid.'.php'); extract($C); if($type == 1) { $template = $C['template']; } elseif($type == 2) { header('location:'.$url); } else { $page = max(intval($page), 0); if($page == 0) { $template = $C['template_category']; $categorys = $child ? subcat('phpcms', $catid, 0) : array(); } else { $template = $C['template_list']; } } $head['title'] = $catname; $head['keywords'] = $meta_keywords; $head['description'] = $meta_description; define('BLOCK_EDIT', 1); include template('phpcms', $template); break; default: require_once 'admin/model_field.class.php'; $model_field = new model_field($modelid); $where = "`catid`=$catid AND `status`=99 "; if($typeid) $where .= " AND `typeid`='$typeid' "; if($areaid) $where .= " AND `areaid`='$areaid' "; if($inputdate_start) $where .= " AND `inputtime`>='".strtotime($inputdate_start.' 00:00:00')."'"; else $inputdate_start = date('Y-m-01'); if($inputdate_end) $where .= " AND `inputtime`<='".strtotime($inputdate_end.' 23:59:59')."'"; else $inputdate_end = date('Y-m-d'); if($q) { if($field == 'title') { $where .= " AND `title` LIKE '%$q%'"; } elseif($field == 'userid') { $userid = intval($q); if($userid) $where .= " AND `userid`=$userid"; } elseif($field == 'username') { $userid = userid($q); if($userid) $where .= " AND `userid`=$userid"; } elseif($field == 'contentid') { $contentid = intval($q); if($contentid) $where .= " AND `contentid`=$contentid"; } } $infos = $c->listinfo($where, '`listorder` DESC,`contentid` DESC', $page, 20); $pagetitle = $CATEGORY[$catid]['catname'].'-管理'; $POS[0] = '不限推荐位'; include admin_tpl('content_manage'); */ } ?>