| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151 | <?phpset_time_limit(300);defined('IN_PHPCMS') or exit('No permission resources.');//模型缓存路径define('CACHE_MODEL_PATH',CACHE_PATH.'caches_model'.DIRECTORY_SEPARATOR.'caches_data'.DIRECTORY_SEPARATOR);//定义在单独操作内容的时候,同时更新相关栏目页面define('RELATION_HTML',true);pc_base::load_app_class('admin','admin',0);pc_base::load_sys_class('form','',0);pc_base::load_app_func('util');pc_base::load_sys_class('format','',0);class content extends admin {	private $db,$priv_db;	public $siteid,$categorys;	public function __construct() {		parent::__construct();		$this->db = pc_base::load_model('content_model');		$this->siteid = $this->get_siteid();		$this->categorys = getcache('category_content_'.$this->siteid,'commons');		//权限判断		if(isset($_GET['catid']) && $_SESSION['roleid'] != 1 && ROUTE_A !='pass' && strpos(ROUTE_A,'public_')===false && $_SESSION['roleid'] != 2) {			$catid = intval($_GET['catid']);			$this->priv_db = pc_base::load_model('category_priv_model');			$action = $this->categorys[$catid]['type']==0 ? ROUTE_A : 'init';			$priv_datas = $this->priv_db->get_one(array('catid'=>$catid,'is_admin'=>1,'action'=>$action));			if(!$priv_datas) showmessage(L('permission_to_operate'),'blank');		}	}		public function init() {		$show_header = $show_dialog  = $show_pc_hash = '';		if(isset($_GET['catid']) && $_GET['catid'] && $this->categorys[$_GET['catid']]['siteid']==$this->siteid) {			$catid = $_GET['catid'] = intval($_GET['catid']);			$category = $this->categorys[$catid];			$modelid = $category['modelid'];			$model_arr = getcache('model', 'commons');			$MODEL = $model_arr[$modelid];			unset($model_arr);			$admin_username = param::get_cookie('admin_username');			//查询当前的工作流			$setting = string2array($category['setting']);			$workflowid = $setting['workflowid'];			$workflows = getcache('workflow_'.$this->siteid,'commons');			$workflows = $workflows[$workflowid];			$workflows_setting = string2array($workflows['setting']);			//将有权限的级别放到新数组中			$admin_privs = array();			foreach($workflows_setting as $_k=>$_v) {				if(empty($_v)) continue;				foreach($_v as $_value) {					if($_value==$admin_username) $admin_privs[$_k] = $_k;				}			}			//工作流审核级别			$workflow_steps = $workflows['steps'];			$workflow_menu = '';			$steps = isset($_GET['steps']) ? intval($_GET['steps']) : 0;			//工作流权限判断			if($_SESSION['roleid']!=1 && $steps && !in_array($steps,$admin_privs)) showmessage(L('permission_to_operate'));			$this->db->set_model($modelid);			if($this->db->table_name==$this->db->db_tablepre) showmessage(L('model_table_not_exists'));;			$status = $steps ? $steps : 99;			if(isset($_GET['reject'])) $status = 0;			$where = 'catid='.$catid.' AND status='.$status;			//搜索						if(isset($_GET['start_time']) && $_GET['start_time']) {				$start_time = strtotime($_GET['start_time']);				$where .= " AND `inputtime` > '$start_time'";			}			if(isset($_GET['end_time']) && $_GET['end_time']) {				$end_time = strtotime($_GET['end_time']);				$where .= " AND `inputtime` < '$end_time'";			}			if($start_time>$end_time) showmessage(L('starttime_than_endtime'));			if(isset($_GET['keyword']) && !empty($_GET['keyword'])) {				$type_array = array('title','description','username');				$searchtype = intval($_GET['searchtype']);				if($searchtype < 3) {					$searchtype = $type_array[$searchtype];					$keyword = strip_tags(trim($_GET['keyword']));					$where .= " AND `$searchtype` like '%$keyword%'";				} elseif($searchtype==3) {					$keyword = intval($_GET['keyword']);					$where .= " AND `id`='$keyword'";				}			}			if(isset($_GET['posids']) && !empty($_GET['posids'])) {				$posids = $_GET['posids']==1 ? intval($_GET['posids']) : 0;				$where .= " AND `posids` = '$posids'";			}						$datas = $this->db->listinfo($where,'id desc',$_GET['page']);			$pages = $this->db->pages;			$pc_hash = $_SESSION['pc_hash'];			for($i=1;$i<=$workflow_steps;$i++) {				if($_SESSION['roleid']!=1 && !in_array($i,$admin_privs)) continue;				$current = $steps==$i ? 'class=on' : '';				$r = $this->db->get_one(array('catid'=>$catid,'status'=>$i));				$newimg = $r ? '<img src="'.IMG_PATH.'icon/new.png" style="padding-bottom:2px" onclick="window.location.href=\'?m=content&c=content&a=&menuid='.$_GET['menuid'].'&catid='.$catid.'&steps='.$i.'&pc_hash='.$pc_hash.'\'">' : '';				$workflow_menu .= '<a href="?m=content&c=content&a=&menuid='.$_GET['menuid'].'&catid='.$catid.'&steps='.$i.'&pc_hash='.$pc_hash.'" '.$current.' ><em>'.L('workflow_'.$i).$newimg.'</em></a><span>|</span>';			}			if($workflow_menu) {				$current = isset($_GET['reject']) ? 'class=on' : '';				$workflow_menu .= '<a href="?m=content&c=content&a=&menuid='.$_GET['menuid'].'&catid='.$catid.'&pc_hash='.$pc_hash.'&reject=1" '.$current.' ><em>'.L('reject').'</em></a><span>|</span>';			}			//$ = 153fc6d28dda8ca94eaa3686c8eed857;获取模型的thumb字段配置信息			$model_fields = getcache('model_field_'.$modelid, 'model');			$setting = string2array($model_fields['thumb']['setting']);			$args = '1,'.$setting['upload_allowext'].','.$setting['isselectimage'].','.$setting['images_width'].','.$setting['images_height'].','.$setting['watermark'];			$authkey = upload_key($args);			$template = $MODEL['admin_list_template'] ? $MODEL['admin_list_template'] : 'content_list';			include $this->admin_tpl($template);		} else {			include $this->admin_tpl('content_quick');		}	}	public function add() {		if(isset($_POST['dosubmit']) || isset($_POST['dosubmit_continue'])) {			define('INDEX_HTML',true);			$catid = $_POST['info']['catid'] = intval($_POST['info']['catid']);			if(trim($_POST['info']['title'])=='') showmessage(L('title_is_empty'));			$category = $this->categorys[$catid];			if($category['type']==0) {				$modelid = $this->categorys[$catid]['modelid'];				$this->db->set_model($modelid);				//如果该栏目设置了工作流,那么必须走工作流设定				$setting = string2array($category['setting']);				$workflowid = $setting['workflowid'];				if($workflowid && $_POST['status']!=99) {					//如果用户是超级管理员,那么则根据自己的设置来发布					$_POST['info']['status'] = $_SESSION['roleid']==1 ? intval($_POST['status']) : 1;				} else {					$_POST['info']['status'] = 99;				}				$this->db->add_content($_POST['info']);				if(isset($_POST['dosubmit'])) {					showmessage(L('add_success').L('2s_close'),'blank','','','function set_time() {$("#secondid").html(1);}setTimeout("set_time()", 500);setTimeout("window.close()", 1200);');				} else {					showmessage(L('add_success'),HTTP_REFERER);				}			} else {				//单网页				$this->page_db = pc_base::load_model('page_model');				$style_font_weight = $_POST['style_font_weight'] ? 'font-weight:'.strip_tags($_POST['style_font_weight']) : '';				$_POST['info']['style'] = strip_tags($_POST['style_color']).';'.$style_font_weight;								if($_POST['edit']) {					$this->page_db->update($_POST['info'],array('catid'=>$catid));				} else {					$catid = $this->page_db->insert($_POST['info'],1);				}				$this->page_db->create_html($catid,$_POST['info']);				$forward = HTTP_REFERER;			}			showmessage(L('add_success'),$forward);		} else {			$show_header = $show_dialog = $show_validator = '';			//设置cookie 在附件添加处调用			param::set_cookie('module', 'content');			if(isset($_GET['catid']) && $_GET['catid']) {				$catid = $_GET['catid'] = intval($_GET['catid']);								param::set_cookie('catid', $catid);				$category = $this->categorys[$catid];				if($category['type']==0) {					$modelid = $category['modelid'];					//取模型ID,依模型ID来生成对应的表单					require CACHE_MODEL_PATH.'content_form.class.php';					$content_form = new content_form($modelid,$catid,$this->categorys);					$forminfos = $content_form->get(); 					$formValidator = $content_form->formValidator;					$setting = string2array($category['setting']);					$workflowid = $setting['workflowid'];					$workflows = getcache('workflow_'.$this->siteid,'commons');					$workflows = $workflows[$workflowid];					$workflows_setting = string2array($workflows['setting']);					$nocheck_users = $workflows_setting['nocheck_users'];					$admin_username = param::get_cookie('admin_username');					if(!empty($nocheck_users) && in_array($admin_username, $nocheck_users)) {						$priv_status = true;					} else {						$priv_status = false;					}					include $this->admin_tpl('content_add');				} else {					//单网页					$this->page_db = pc_base::load_model('page_model');										$r = $this->page_db->get_one(array('catid'=>$catid));										if($r) {						extract($r);						$style_arr = explode(';',$style);						$style_color = $style_arr[0];						$style_font_weight = $style_arr[1] ? substr($style_arr[1],12) : '';					}					include $this->admin_tpl('content_page');				}			} else {				include $this->admin_tpl('content_add');			}			header("Cache-control: private");		}	}		public function edit() {			//设置cookie 在附件添加处调用			param::set_cookie('module', 'content');			if(isset($_POST['dosubmit']) || isset($_POST['dosubmit_continue'])) {				define('INDEX_HTML',true);				$id = $_POST['info']['id'] = intval($_POST['id']);				$catid = $_POST['info']['catid'] = intval($_POST['info']['catid']);				if(trim($_POST['info']['title'])=='') showmessage(L('title_is_empty'));				$modelid = $this->categorys[$catid]['modelid'];				$this->db->set_model($modelid);				$this->db->edit_content($_POST['info'],$id);				if(isset($_POST['dosubmit'])) {					showmessage(L('update_success').L('2s_close'),'blank','','','function set_time() {$("#secondid").html(1);}setTimeout("set_time()", 500);setTimeout("window.close()", 1200);');				} else {					showmessage(L('update_success'),HTTP_REFERER);				}			} else {				$show_header = $show_dialog = $show_validator = '';				//从数据库获取内容				$id = intval($_GET['id']);				if(!isset($_GET['catid']) || !$_GET['catid']) showmessage(L('missing_part_parameters'));				$catid = $_GET['catid'] = intval($_GET['catid']);								$this->model = getcache('model', 'commons');								param::set_cookie('catid', $catid);				$category = $this->categorys[$catid];				$modelid = $category['modelid'];				$this->db->table_name = $this->db->db_tablepre.$this->model[$modelid]['tablename'];				$r = $this->db->get_one(array('id'=>$id));				$this->db->table_name = $this->db->table_name.'_data';				$r2 = $this->db->get_one(array('id'=>$id));				if(!$r2) showmessage(L('subsidiary_table_datalost'),'blank');				$data = array_merge($r,$r2);				$data = array_map('htmlspecialchars_decode',$data);				require CACHE_MODEL_PATH.'content_form.class.php';				$content_form = new content_form($modelid,$catid,$this->categorys);				$forminfos = $content_form->get($data);				$formValidator = $content_form->formValidator;				include $this->admin_tpl('content_edit');			}			header("Cache-control: private");	}	/**	 * 删除	 */	public function delete() {		if(isset($_GET['dosubmit'])) {			$catid = intval($_GET['catid']);			if(!$catid) showmessage(L('missing_part_parameters'));			$modelid = $this->categorys[$catid]['modelid'];			$sethtml = $this->categorys[$catid]['sethtml'];			$siteid = $this->categorys[$catid]['siteid'];						$html_root = pc_base::load_config('system','html_root');			if($sethtml) $html_root = '';						$setting = string2array($this->categorys[$catid]['setting']);			$content_ishtml = $setting['content_ishtml']; 			$this->db->set_model($modelid);			$this->hits_db = pc_base::load_model('hits_model');			$this->queue = pc_base::load_model('queue_model');			if(isset($_GET['ajax_preview'])) {				$ids = intval($_GET['id']);				$_POST['ids'] = array(0=>$ids);			}			if(empty($_POST['ids'])) showmessage(L('you_do_not_check'));			//附件初始化			$attachment = pc_base::load_model('attachment_model');			$this->content_check_db = pc_base::load_model('content_check_model');			$this->position_data_db = pc_base::load_model('position_data_model');			$this->search_db = pc_base::load_model('search_model');			//判断视频模块是否安装 			if (module_exists('video') && file_exists(PC_PATH.'model'.DIRECTORY_SEPARATOR.'video_content_model.class.php')) {				$video_content_db = pc_base::load_model('video_content_model');				$video_install = 1;			}			$this->comment = pc_base::load_app_class('comment', 'comment');			$search_model = getcache('search_model_'.$this->siteid,'search');			$typeid = $search_model[$modelid]['typeid'];			$this->url = pc_base::load_app_class('url', 'content');						foreach($_POST['ids'] as $id) {				$r = $this->db->get_one(array('id'=>$id));				if($content_ishtml && !$r['islink']) {					$urls = $this->url->show($id, 0, $r['catid'], $r['inputtime']);					$fileurl = $urls[1];					if($this->siteid != 1) {						$sitelist = getcache('sitelist','commons');						$fileurl = $html_root.'/'.$sitelist[$this->siteid]['dirname'].$fileurl;					}					//删除静态文件,排除htm/html/shtml外的文件					$lasttext = strrchr($fileurl,'.');					$len = -strlen($lasttext);					$path = substr($fileurl,0,$len);					$path = ltrim($path,'/');					$filelist = glob(PHPCMS_PATH.$path.'{_,-,.}*',GLOB_BRACE);					foreach ($filelist as $delfile) {						$lasttext = strrchr($delfile,'.');						if(!in_array($lasttext, array('.htm','.html','.shtml'))) continue;						@unlink($delfile);						//删除发布点队列数据						$delfile = str_replace(PHPCMS_PATH, '/', $delfile);						$this->queue->add_queue('del',$delfile,$this->siteid);					}				} else {					$fileurl = 0;				}				//删除内容				$this->db->delete_content($id,$fileurl,$catid);				//删除统计表数据				$this->hits_db->delete(array('hitsid'=>'c-'.$modelid.'-'.$id));				//删除附件				$attachment->api_delete('c-'.$catid.'-'.$id);				//删除审核表数据				$this->content_check_db->delete(array('checkid'=>'c-'.$id.'-'.$modelid));				//删除推荐位数据				$this->position_data_db->delete(array('id'=>$id,'catid'=>$catid,'module'=>'content'));				//删除全站搜索中数据				$this->search_db->delete_search($typeid,$id);				//删除视频库与内容对应关系数据				if ($video_install ==1) {					$video_content_db->delete(array('contentid'=>$id, 'modelid'=>$modelid));				}								//删除相关的评论,删除前应该判断是否还存在此模块				if(module_exists('comment')){					$commentid = id_encode('content_'.$catid, $id, $siteid);					$this->comment->del($commentid, $siteid, $id, $catid);				}				 			}			//更新栏目统计			$this->db->cache_items();			showmessage(L('operation_success'),HTTP_REFERER);		} else {			showmessage(L('operation_failure'));		}	}	/**	 * 过审内容	 */	public function pass() {		$admin_username = param::get_cookie('admin_username');		$catid = intval($_GET['catid']);				if(!$catid) showmessage(L('missing_part_parameters'));		$category = $this->categorys[$catid];		$setting = string2array($category['setting']);		$workflowid = $setting['workflowid'];		//只有存在工作流才需要审核		if($workflowid) {			$steps = intval($_GET['steps']);			//检查当前用户有没有当前工作流的操作权限			$workflows = getcache('workflow_'.$this->siteid,'commons');			$workflows = $workflows[$workflowid];			$workflows_setting = string2array($workflows['setting']);			//将有权限的级别放到新数组中			$admin_privs = array();			foreach($workflows_setting as $_k=>$_v) {				if(empty($_v)) continue;				foreach($_v as $_value) {					if($_value==$admin_username) $admin_privs[$_k] = $_k;				}			}			if($_SESSION['roleid']!=1 && $steps && !in_array($steps,$admin_privs)) showmessage(L('permission_to_operate'));			//更改内容状态				if(isset($_GET['reject'])) {				//退稿					$status = 0;				} else {					//工作流审核级别					$workflow_steps = $workflows['steps'];										if($workflow_steps>$steps) {						$status = $steps+1;					} else {						$status = 99;					}				}								$modelid = $this->categorys[$catid]['modelid'];				$this->db->set_model($modelid);				$this->db->search_db = pc_base::load_model('search_model');				//审核通过,检查投稿奖励或扣除积分				if ($status==99) {					$html = pc_base::load_app_class('html', 'content');					$this->url = pc_base::load_app_class('url', 'content');					$member_db = pc_base::load_model('member_model');					if (isset($_POST['ids']) && !empty($_POST['ids'])) {						foreach ($_POST['ids'] as $id) {							$content_info = $this->db->get_content($catid,$id);							$memberinfo = $member_db->get_one(array('username'=>$content_info['username']), 'userid, username');							$flag = $catid.'_'.$id;							if($setting['presentpoint']>0) {								pc_base::load_app_class('receipts','pay',0);								receipts::point($setting['presentpoint'],$memberinfo['userid'], $memberinfo['username'], $flag,'selfincome',L('contribute_add_point'),$memberinfo['username']);							} else {								pc_base::load_app_class('spend','pay',0);								spend::point($setting['presentpoint'], L('contribute_del_point'), $memberinfo['userid'], $memberinfo['username'], '', '', $flag);							}							if($setting['content_ishtml'] == '1'){//栏目有静态配置  								$urls = $this->url->show($id, 0, $content_info['catid'], $content_info['inputtime'], '',$content_info,'add');   								$html->show($urls[1],$urls['data'],0); 							}							//更新到全站搜索							$inputinfo = '';							$inputinfo['system'] = $content_info;							$this->db->search_api($id,$inputinfo);						}					} else if (isset($_GET['id']) && $_GET['id']) {						$id = intval($_GET['id']);						$content_info = $this->db->get_content($catid,$id);						$memberinfo = $member_db->get_one(array('username'=>$content_info['username']), 'userid, username');						$flag = $catid.'_'.$id;						if($setting['presentpoint']>0) {							pc_base::load_app_class('receipts','pay',0);							receipts::point($setting['presentpoint'],$memberinfo['userid'], $memberinfo['username'], $flag,'selfincome',L('contribute_add_point'),$memberinfo['username']);						} else {							pc_base::load_app_class('spend','pay',0);							spend::point($setting['presentpoint'], L('contribute_del_point'), $memberinfo['userid'], $memberinfo['username'], '', '', $flag);						}						//单篇审核,生成静态						if($setting['content_ishtml'] == '1'){//栏目有静态配置						$urls = $this->url->show($id, 0, $content_info['catid'], $content_info['inputtime'], '',$content_info,'add');						$html->show($urls[1],$urls['data'],0);						}						//更新到全站搜索						$inputinfo = '';						$inputinfo['system'] = $content_info;						$this->db->search_api($id,$inputinfo);					}				}				if(isset($_GET['ajax_preview'])) {					$_POST['ids'] = $_GET['id'];				}				$this->db->status($_POST['ids'],$status);		}		showmessage(L('operation_success'),HTTP_REFERER);	}	/**	 * 排序	 */	public function listorder() {		if(isset($_GET['dosubmit'])) {			$catid = intval($_GET['catid']);			if(!$catid) showmessage(L('missing_part_parameters'));			$modelid = $this->categorys[$catid]['modelid'];			$this->db->set_model($modelid);			foreach($_POST['listorders'] as $id => $listorder) {				$this->db->update(array('listorder'=>$listorder),array('id'=>$id));			}			showmessage(L('operation_success'));		} else {			showmessage(L('operation_failure'));		}	}	/**	 * 显示栏目菜单列表	 */	public function public_categorys() {		$show_header = '';		$cfg = getcache('common','commons');		$ajax_show = intval($cfg['category_ajax']);		$from = isset($_GET['from']) && in_array($_GET['from'],array('block')) ? $_GET['from'] : 'content';		$tree = pc_base::load_sys_class('tree');		if($from=='content' && $_SESSION['roleid'] != 1) {				$this->priv_db = pc_base::load_model('category_priv_model');			$priv_result = $this->priv_db->select(array('action'=>'init','roleid'=>$_SESSION['roleid'],'siteid'=>$this->siteid,'is_admin'=>1));			$priv_catids = array();			foreach($priv_result as $_v) {				$priv_catids[] = $_v['catid'];			}			if(empty($priv_catids)) return '';		}		$_GET['menuid'] = intval($_GET['menuid']);		$categorys = array();		if(!empty($this->categorys)) {			foreach($this->categorys as $r) {				if($r['siteid']!=$this->siteid ||  ($r['type']==2 && $r['child']==0)) continue;				if($from=='content' && $_SESSION['roleid'] != 1 && !in_array($r['catid'],$priv_catids)) {					$arrchildid = explode(',',$r['arrchildid']);					$array_intersect = array_intersect($priv_catids,$arrchildid);					if(empty($array_intersect)) continue;				}				if($r['type']==1 || $from=='block') {					if($r['type']==0) {						$r['vs_show'] = "<a href='?m=block&c=block_admin&a=public_visualization&menuid=".$_GET['menuid']."&catid=".$r['catid']."&type=show' target='right'>[".L('content_page')."]</a>";					} else {						$r['vs_show'] ='';					}					$r['icon_type'] = 'file';					$r['add_icon'] = '';					$r['type'] = 'add';				} else {					$r['icon_type'] = $r['vs_show'] = '';					$r['type'] = 'init';					$r['add_icon'] = "<a target='right' href='?m=content&c=content&menuid=".$_GET['menuid']."&catid=".$r['catid']."' onclick=javascript:openwinx('?m=content&c=content&a=add&menuid=".$_GET['menuid']."&catid=".$r['catid']."&hash_page=".$_SESSION['hash_page']."','')><img src='".IMG_PATH."add_content.gif' alt='".L('add')."'></a> ";				}				$categorys[$r['catid']] = $r;			}		}		if(!empty($categorys)) {			$tree->init($categorys);				switch($from) {					case 'block':						$strs = "<span class='\$icon_type'>\$add_icon<a href='?m=block&c=block_admin&a=public_visualization&menuid=".$_GET['menuid']."&catid=\$catid&type=list' target='right'>\$catname</a> \$vs_show</span>";						$strs2 = "<img src='".IMG_PATH."folder.gif'> <a href='?m=block&c=block_admin&a=public_visualization&menuid=".$_GET['menuid']."&catid=\$catid&type=category' target='right'>\$catname</a>";					break;					default:						$strs = "<span class='\$icon_type'>\$add_icon<a href='?m=content&c=content&a=\$type&menuid=".$_GET['menuid']."&catid=\$catid' target='right' onclick='open_list(this)'>\$catname</a></span>";						$strs2 = "<span class='folder'>\$catname</span>";						break;				}			$categorys = $tree->get_treeview(0,'category_tree',$strs,$strs2,$ajax_show);		} else {			$categorys = L('please_add_category');		}        include $this->admin_tpl('category_tree');		exit;	}	/**	 * 检查标题是否存在	 */	public function public_check_title() {		if($_GET['data']=='' || (!$_GET['catid'])) return '';		$catid = intval($_GET['catid']);		$modelid = $this->categorys[$catid]['modelid'];		$this->db->set_model($modelid);		$title = $_GET['data'];		if(CHARSET=='gbk') $title = iconv('utf-8','gbk',$title);		$r = $this->db->get_one(array('title'=>$title));		if($r) {			exit('1');		} else {			exit('0');		}	}	/**	 * 修改某一字段数据	 */	public function update_param() {		$id = intval($_GET['id']);		$field = $_GET['field'];		$modelid = intval($_GET['modelid']);		$value = $_GET['value'];		if (CHARSET!='utf-8') {			$value = iconv('utf-8', 'gbk', $value);		}		//检查字段是否存在		$this->db->set_model($modelid);		if ($this->db->field_exists($field)) {			$this->db->update(array($field=>$value), array('id'=>$id));			exit('200');		} else {			$this->db->table_name = $this->db->table_name.'_data';			if ($this->db->field_exists($field)) {				$this->db->update(array($field=>$value), array('id'=>$id));				exit('200');			} else {				exit('300');			}		}	}		/**	 * 图片裁切	 */	public function public_crop() {		if (isset($_GET['picurl']) && !empty($_GET['picurl'])) {			$picurl = $_GET['picurl'];			$catid = intval($_GET['catid']);			if (isset($_GET['module']) && !empty($_GET['module'])) {				$module = $_GET['module'];			}			$show_header =  '';			include $this->admin_tpl('crop');		}	}	/**	 * 相关文章选择	 */	public function public_relationlist() {		pc_base::load_sys_class('format','',0);		$show_header = '';		$model_cache = getcache('model','commons');		if(!isset($_GET['modelid'])) {			showmessage(L('please_select_modelid'));		} else {			$page = intval($_GET['page']);						$modelid = intval($_GET['modelid']);			$this->db->set_model($modelid);			$where = '';			if($_GET['catid']) {				$catid = intval($_GET['catid']);				$where .= "catid='$catid'";			}			$where .= $where ?  ' AND status=99' : 'status=99';						if(isset($_GET['keywords'])) {				$keywords = trim($_GET['keywords']);				$field = $_GET['field'];				if(in_array($field, array('id','title','keywords','description'))) {					if($field=='id') {						$where .= " AND `id` ='$keywords'";					} else {						$where .= " AND `$field` like '%$keywords%'";					}				}			}			$infos = $this->db->listinfo($where,'',$page,12);			$pages = $this->db->pages;			include $this->admin_tpl('relationlist');		}	}	public function public_getjson_ids() {		$modelid = intval($_GET['modelid']);		$id = intval($_GET['id']);		$this->db->set_model($modelid);		$tablename = $this->db->table_name;		$this->db->table_name = $tablename.'_data';		$r = $this->db->get_one(array('id'=>$id),'relation');		if($r['relation']) {			$relation = str_replace('|', ',', $r['relation']);			$relation = trim($relation,',');			$where = "id IN($relation)";			$infos = array();			$this->db->table_name = $tablename;			$datas = $this->db->select($where,'id,title');			foreach($datas as $_v) {				$_v['sid'] = 'v'.$_v['id'];				if(strtolower(CHARSET)=='gbk') $_v['title'] = iconv('gbk', 'utf-8', $_v['title']);				$infos[] = $_v;			}			echo json_encode($infos);		}	}	//文章预览	public function public_preview() {		$catid = intval($_GET['catid']);		$id = intval($_GET['id']);				if(!$catid || !$id) showmessage(L('missing_part_parameters'),'blank');		$page = intval($_GET['page']);		$page = max($page,1);		$CATEGORYS = getcache('category_content_'.$this->get_siteid(),'commons');				if(!isset($CATEGORYS[$catid]) || $CATEGORYS[$catid]['type']!=0) showmessage(L('missing_part_parameters'),'blank');		define('HTML', true);		$CAT = $CATEGORYS[$catid];				$siteid = $CAT['siteid'];		$MODEL = getcache('model','commons');		$modelid = $CAT['modelid'];		$this->db->table_name = $this->db->db_tablepre.$MODEL[$modelid]['tablename'];		$r = $this->db->get_one(array('id'=>$id));		if(!$r) showmessage(L('information_does_not_exist'));		$this->db->table_name = $this->db->table_name.'_data';		$r2 = $this->db->get_one(array('id'=>$id));		$rs = $r2 ? array_merge($r,$r2) : $r;		//再次重新赋值,以数据库为准		$catid = $CATEGORYS[$r['catid']]['catid'];		$modelid = $CATEGORYS[$catid]['modelid'];				require_once CACHE_MODEL_PATH.'content_output.class.php';		$content_output = new content_output($modelid,$catid,$CATEGORYS);		$data = $content_output->get($rs);		extract($data);		$CAT['setting'] = string2array($CAT['setting']);		$template = $template ? $template : $CAT['setting']['show_template'];		$allow_visitor = 1;		//SEO		$SEO = seo($siteid, $catid, $title, $description);				define('STYLE',$CAT['setting']['template_list']);		if(isset($rs['paginationtype'])) {			$paginationtype = $rs['paginationtype'];			$maxcharperpage = $rs['maxcharperpage'];		}		$pages = $titles = '';		if($rs['paginationtype']==1) {			//自动分页			if($maxcharperpage < 10) $maxcharperpage = 500;			$contentpage = pc_base::load_app_class('contentpage');			$content = $contentpage->get_data($content,$maxcharperpage);		}		if($rs['paginationtype']!=0) {			//手动分页			$CONTENT_POS = strpos($content, '[page]');			if($CONTENT_POS !== false) {				$this->url = pc_base::load_app_class('url', 'content');				$contents = array_filter(explode('[page]', $content));				$pagenumber = count($contents);				if (strpos($content, '[/page]')!==false && ($CONTENT_POS<7)) {					$pagenumber--;				}				for($i=1; $i<=$pagenumber; $i++) {					$pageurls[$i][0] = 'index.php?m=content&c=content&a=public_preview&steps='.intval($_GET['steps']).'&catid='.$catid.'&id='.$id.'&page='.$i;				}				$END_POS = strpos($content, '[/page]');				if($END_POS !== false) {					if($CONTENT_POS>7) {						$content = '[page]'.$title.'[/page]'.$content;					}					if(preg_match_all("|\[page\](.*)\[/page\]|U", $content, $m, PREG_PATTERN_ORDER)) {						foreach($m[1] as $k=>$v) {							$p = $k+1;							$titles[$p]['title'] = strip_tags($v);							$titles[$p]['url'] = $pageurls[$p][0];						}					}				}				//当不存在 [/page]时,则使用下面分页				$pages = content_pages($pagenumber,$page, $pageurls);				//判断[page]出现的位置是否在第一位 				if($CONTENT_POS<7) {					$content = $contents[$page];				} else {					if ($page==1 && !empty($titles)) {						$content = $title.'[/page]'.$contents[$page-1];					} else {						$content = $contents[$page-1];					}				}				if($titles) {					list($title, $content) = explode('[/page]', $content);					$content = trim($content);					if(strpos($content,'</p>')===0) {						$content = '<p>'.$content;					}					if(stripos($content,'<p>')===0) {						$content = $content.'</p>';					}				}			}		}		include template('content',$template);		$pc_hash = $_SESSION['pc_hash'];		$steps = intval($_GET['steps']);		echo "		<link href=\"".CSS_PATH."dialog_simp.css\" rel=\"stylesheet\" type=\"text/css\" />		<script language=\"javascript\" type=\"text/javascript\" src=\"".JS_PATH."dialog.js\"></script>		<script type=\"text/javascript\">art.dialog({lock:false,title:'".L('operations_manage')."',mouse:true, id:'content_m', content:'<span id=cloading ><a href=\'javascript:ajax_manage(1)\'>".L('passed_checked')."</a> | <a href=\'javascript:ajax_manage(2)\'>".L('reject')."</a> | <a href=\'javascript:ajax_manage(3)\'>".L('delete')."</a></span>',left:'100%',top:'100%',width:200,height:50,drag:true, fixed:true});		function ajax_manage(type) {			if(type==1) {				$.get('?m=content&c=content&a=pass&ajax_preview=1&catid=".$catid."&steps=".$steps."&id=".$id."&pc_hash=".$pc_hash."');			} else if(type==2) {				$.get('?m=content&c=content&a=pass&ajax_preview=1&reject=1&catid=".$catid."&steps=".$steps."&id=".$id."&pc_hash=".$pc_hash."');			} else if(type==3) {				$.get('?m=content&c=content&a=delete&ajax_preview=1&dosubmit=1&catid=".$catid."&steps=".$steps."&id=".$id."&pc_hash=".$pc_hash."');			}			$('#cloading').html('<font color=red>".L('operation_success')."<span id=\"secondid\">2</span>".L('after_a_few_seconds_left')."</font>');			setInterval('set_time()', 1000);			setInterval('window.close()', 2000);		}		function set_time() {			$('#secondid').html(1);		}		</script>";	}	/**	 * 审核所有内容	 */	public function public_checkall() {		$page = isset($_GET['page']) && intval($_GET['page']) ? intval($_GET['page']) : 1;				$show_header = '';		$workflows = getcache('workflow_'.$this->siteid,'commons');		$datas = array();		$pagesize = 20;		$sql = '';		if (in_array($_SESSION['roleid'], array('1'))) {			$super_admin = 1;			$status = isset($_GET['status']) ? $_GET['status'] : -1;		} else {			$super_admin = 0;			$status = isset($_GET['status']) ? $_GET['status'] : 1;			if($status==-1) $status = 1;		}		if($status>4) $status = 4;		$this->priv_db = pc_base::load_model('category_priv_model');;		$admin_username = param::get_cookie('admin_username');		if($status==-1) {			$sql = "`status` NOT IN (99,0,-2) AND `siteid`=$this->siteid";		} else {			$sql = "`status` = '$status' AND `siteid`=$this->siteid";		}		if($status!=0 && !$super_admin) {			//以栏目进行循环			foreach ($this->categorys as $catid => $cat) {				if($cat['type']!=0) continue;				//查看管理员是否有这个栏目的查看权限。				if (!$this->priv_db->get_one(array('catid'=>$catid, 'siteid'=>$this->siteid, 'roleid'=>$_SESSION['roleid'], 'is_admin'=>'1'))) {					continue;				}				//如果栏目有设置工作流,进行权限检查。				$workflow = array();				$cat['setting'] = string2array($cat['setting']);				if (isset($cat['setting']['workflowid']) && !empty($cat['setting']['workflowid'])) {					$workflow = $workflows[$cat['setting']['workflowid']];					$workflow['setting'] = string2array($workflow['setting']);					$usernames = $workflow['setting'][$status];					if (empty($usernames) || !in_array($admin_username, $usernames)) {//判断当前管理,在工作流中可以审核几审						continue;					}				}				$priv_catid[] = $catid;			}			if(empty($priv_catid)) {				$sql .= " AND catid = -1";			} else {				$priv_catid = implode(',', $priv_catid);				$sql .= " AND catid IN ($priv_catid)";			}		}		$this->content_check_db = pc_base::load_model('content_check_model');		$datas = $this->content_check_db->listinfo($sql,'inputtime DESC',$page);				$pages = $this->content_check_db->pages;		include $this->admin_tpl('content_checkall');	}		/**	 * 批量移动文章	 */	public function remove() {		if(isset($_POST['dosubmit'])) {			$this->content_check_db = pc_base::load_model('content_check_model');			$this->hits_db = pc_base::load_model('hits_model');			if($_POST['fromtype']==0) {				if($_POST['ids']=='') showmessage(L('please_input_move_source'));				if(!$_POST['tocatid']) showmessage(L('please_select_target_category'));				$tocatid = intval($_POST['tocatid']);				$modelid = $this->categorys[$tocatid]['modelid'];				if(!$modelid) showmessage(L('illegal_operation'));				$ids = array_filter(explode(',', $_POST['ids']),"is_numeric");				foreach ($ids as $id) {					$checkid = 'c-'.$id.'-'.$this->siteid;					$this->content_check_db->update(array('catid'=>$tocatid), array('checkid'=>$checkid));					$hitsid = 'c-'.$modelid.'-'.$id;					$this->hits_db->update(array('catid'=>$tocatid),array('hitsid'=>$hitsid));				}				$ids = implode(',', $ids);				$this->db->set_model($modelid);				$this->db->update(array('catid'=>$tocatid),"id IN($ids)");			} else {				if(!$_POST['fromid']) showmessage(L('please_input_move_source'));				if(!$_POST['tocatid']) showmessage(L('please_select_target_category'));				$tocatid = intval($_POST['tocatid']);				$modelid = $this->categorys[$tocatid]['modelid'];				if(!$modelid) showmessage(L('illegal_operation'));				$fromid = array_filter($_POST['fromid'],"is_numeric");				$fromid = implode(',', $fromid);				$this->db->set_model($modelid);				$this->db->update(array('catid'=>$tocatid),"catid IN($fromid)");				$this->hits_db->update(array('catid'=>$tocatid),"catid IN($fromid)");			}			showmessage(L('operation_success'),HTTP_REFERER);			//ids		} else {			$show_header = '';			$catid = intval($_GET['catid']);			$modelid = $this->categorys[$catid]['modelid'];			$tree = pc_base::load_sys_class('tree');			$tree->icon = array('  │ ','  ├─ ','  └─ ');			$tree->nbsp = '  ';			$categorys = array();			foreach($this->categorys as $cid=>$r) {				if($this->siteid != $r['siteid'] || $r['type']) continue;				if($modelid && $modelid != $r['modelid']) continue;				$r['disabled'] = $r['child'] ? 'disabled' : '';				$r['selected'] = $cid == $catid ? 'selected' : '';				$categorys[$cid] = $r;			}			$str  = "<option value='\$catid' \$selected \$disabled>\$spacer \$catname</option>";			$tree->init($categorys);			$string .= $tree->get_tree(0, $str); 			$str  = "<option value='\$catid'>\$spacer \$catname</option>";			$source_string = '';			$tree->init($categorys);			$source_string .= $tree->get_tree(0, $str);			$ids = empty($_POST['ids']) ? '' : implode(',',$_POST['ids']);			include $this->admin_tpl('content_remove');		}	}		/**	 * 同时发布到其他栏目	 */	public function add_othors() {		$show_header = '';		$sitelist = getcache('sitelist','commons');		$siteid = $_GET['siteid'];		include $this->admin_tpl('add_othors');			}	/**	 * 同时发布到其他栏目 异步加载栏目	 */	public function public_getsite_categorys() {		$siteid = intval($_GET['siteid']);		$this->categorys = getcache('category_content_'.$siteid,'commons');		$models = getcache('model','commons');		$tree = pc_base::load_sys_class('tree');		$tree->icon = array('   │ ','   ├─ ','   └─ ');		$tree->nbsp = '   ';		$categorys = array();		if($_SESSION['roleid'] != 1) {			$this->priv_db = pc_base::load_model('category_priv_model');			$priv_result = $this->priv_db->select(array('action'=>'add','roleid'=>$_SESSION['roleid'],'siteid'=>$siteid,'is_admin'=>1));			$priv_catids = array();			foreach($priv_result as $_v) {				$priv_catids[] = $_v['catid'];			}			if(empty($priv_catids)) return '';		}				foreach($this->categorys as $r) {			if($r['siteid']!=$siteid || $r['type']!=0) continue;			if($_SESSION['roleid'] != 1 && !in_array($r['catid'],$priv_catids)) {				$arrchildid = explode(',',$r['arrchildid']);				$array_intersect = array_intersect($priv_catids,$arrchildid);				if(empty($array_intersect)) continue;			}			$r['modelname'] = $models[$r['modelid']]['name'];			$r['style'] = $r['child'] ? 'color:#8A8A8A;' : '';			$r['click'] = $r['child'] ? '' : "onclick=\"select_list(this,'".safe_replace($r['catname'])."',".$r['catid'].")\" class='cu' title='".L('click_to_select')."'";			$categorys[$r['catid']] = $r;		}		$str  = "<tr \$click >					<td align='center'>\$id</td>					<td style='\$style'>\$spacer\$catname</td>					<td align='center'>\$modelname</td>				</tr>";		$tree->init($categorys);		$categorys = $tree->get_tree(0, $str);		echo $categorys;	}		public function public_sub_categorys() {		$cfg = getcache('common','commons');		$ajax_show = intval(abs($cfg['category_ajax']));			$catid = intval($_POST['root']);		$modelid = intval($_POST['modelid']);		$this->categorys = getcache('category_content_'.$this->siteid,'commons');		$tree = pc_base::load_sys_class('tree');		$_GET['menuid'] = intval($_GET['menuid']);		if(!empty($this->categorys)) {			foreach($this->categorys as $r) {				if($r['siteid']!=$this->siteid ||  ($r['type']==2 && $r['child']==0)) continue;				if($from=='content' && $_SESSION['roleid'] != 1 && !in_array($r['catid'],$priv_catids)) {					$arrchildid = explode(',',$r['arrchildid']);					$array_intersect = array_intersect($priv_catids,$arrchildid);					if(empty($array_intersect)) continue;				}				if($r['type']==1 || $from=='block') {					if($r['type']==0) {						$r['vs_show'] = "<a href='?m=block&c=block_admin&a=public_visualization&menuid=".$_GET['menuid']."&catid=".$r['catid']."&type=show' target='right'>[".L('content_page')."]</a>";					} else {						$r['vs_show'] ='';					}					$r['icon_type'] = 'file';					$r['add_icon'] = '';					$r['type'] = 'add';				} else {					$r['icon_type'] = $r['vs_show'] = '';					$r['type'] = 'init';					$r['add_icon'] = "<a target='right' href='?m=content&c=content&menuid=".$_GET['menuid']."&catid=".$r['catid']."' onclick=javascript:openwinx('?m=content&c=content&a=add&menuid=".$_GET['menuid']."&catid=".$r['catid']."&hash_page=".$_SESSION['hash_page']."','')><img src='".IMG_PATH."add_content.gif' alt='".L('add')."'></a> ";				}				$categorys[$r['catid']] = $r;			}		}		if(!empty($categorys)) {			$tree->init($categorys);				switch($from) {					case 'block':						$strs = "<span class='\$icon_type'>\$add_icon<a href='?m=block&c=block_admin&a=public_visualization&menuid=".$_GET['menuid']."&catid=\$catid&type=list&pc_hash=".$_SESSION['pc_hash']."' target='right'>\$catname</a> \$vs_show</span>";					break;					default:						$strs = "<span class='\$icon_type'>\$add_icon<a href='?m=content&c=content&a=\$type&menuid=".$_GET['menuid']."&catid=\$catid&pc_hash=".$_SESSION['pc_hash']."' target='right' onclick='open_list(this)'>\$catname</a></span>";						break;				}			$data = $tree->creat_sub_json($catid,$strs);		}				echo $data;	}	/**	 * 一键清理演示数据	 */	public function clear_data() {		//清理数据涉及到的数据表				if ($_POST['dosubmit']) {			set_time_limit(0);			$models = array('category', 'content', 'hits', 'search', 'position_data', 'video_content', 'video_store', 'comment');			$tables = $_POST['tables'];			if (is_array($tables)) {				foreach ($tables as $t) {					if (in_array($t, $models)) {						if ($t=='content') {							$model = $_POST['model'];							$db = pc_base::load_model('content_model');							//读取网站的所有模型							$model_arr = getcache('model', 'commons');							foreach ($model as $modelid) {								$db->set_model($modelid);								if ($r = $db->count()) { //判断模型下是否有数据									$sql_file = CACHE_PATH.'bakup'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.$model_arr[$modelid]['tablename'].'.sql';									$result = $data = $db->select();									$this->create_sql_file($result, $db->db_tablepre.$model_arr[$modelid]['tablename'], $sql_file);									$db->query('TRUNCATE TABLE `phpcms_'.$model_arr[$modelid]['tablename'].'`');									//开始清理模型data表数据									$db->table_name = $db->table_name.'_data';									$sql_file = CACHE_PATH.'bakup'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.$model_arr[$modelid]['tablename'].'_data.sql';									$result = $db->select();									$this->create_sql_file($result, $db->db_tablepre.$model_arr[$modelid]['tablename'].'_data', $sql_file);									$db->query('TRUNCATE TABLE `phpcms_'.$model_arr[$modelid]['tablename'].'_data`');									//删除该模型中在hits表的数据									$hits_db = pc_base::load_model('hits_model');									$hitsid = 'c-'.$modelid.'-';									$result = $hits_db->select("`hitsid` LIKE '%$hitsid%'");									if (is_array($result)) {										$sql_file = CACHE_PATH.'bakup'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.'hits-'.$modelid.'.sql';										$this->create_sql_file($result, $hits_db->db_tablepre.'hits', $sql_file);									}									$hits_db->delete("`hitsid` LIKE '%$hitsid%'");									//删除该模型在search中的数据									$search_db = pc_base::load_model('search_model');									$type_model = getcache('type_model_'.$model_arr[$modelid]['siteid'], 'search');									$typeid = $type_model[$modelid];									$result = $search_db->select("`typeid`=".$typeid);									if (is_array($result)) {										$sql_file = CACHE_PATH.'bakup'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.'search-'.$modelid.'.sql';										$this->create_sql_file($result, $search_db->db_tablepre.'search', $sql_file);									}									$search_db->delete("`typeid`=".$typeid);									//Delete the model data in the position table									$position_db = pc_base::load_model('position_data_model');									$result = $position_db->select('`modelid`='.$modelid.' AND `module`=\'content\'');									if (is_array($result)) {										$sql_file = CACHE_PATH.'bakup'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.'position_data-'.$modelid.'.sql';										$this->create_sql_file($result, $position_db->db_tablepre.'position_data', $sql_file);									}									$position_db->delete('`modelid`='.$modelid.' AND `module`=\'content\'');									//清理视频库与内容对应关系表									if (module_exists('video')) {										$video_content_db = pc_base::load_model('video_content_model');										$result = $video_content_db->select('`modelid`=\''.$modelid.'\'');										if (is_array($result)) {											$sql_file = CACHE_PATH.'bakup'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.'video_content-'.$modelid.'.sql';											$this->create_sql_file($result, $video_content_db->db_tablepre.'video_content', $sql_file);										}										$video_content_db->delete('`modelid`=\''.$modelid.'\'');									}									//清理评论表及附件表,附件的清理为不可逆操作。									//附件初始化									//$attachment = pc_base::load_model('attachment_model');									//$comment = pc_base::load_app_class('comment', 'comment');									//if(module_exists('comment')){										//$comment_exists = 1;									//}									//foreach ($data as $d) {										//$attachment->api_delete('c-'.$d['catid'].'-'.$d['id']);										//if ($comment_exists) {											//$commentid = id_encode('content_'.$d['catid'], $d['id'], $model_arr[$modelid]['siteid']);											//$comment->del($commentid, $model_arr[$modelid]['siteid'], $d['id'], $d['catid']);										//}									//}								}							}													} elseif ($t=='comment') {							$comment_db = pc_base::load_model('comment_data_model');							for($i=1;;$i++) {								$comment_db->table_name($i);								if ($comment_db->table_exists(str_replace($comment_db->db_tablepre, '', $comment_db->table_name))) {									if ($r = $comment_db->count()) {										$sql_file = CACHE_PATH.'bakup'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.'comment_data_'.$i.'.sql';										$result = $comment_db->select();										$this->create_sql_file($result, $comment_db->db_tablepre.'comment_data_'.$i, $sql_file);										$comment_db->query('TRUNCATE TABLE `phpcms_comment_data_'.$i.'`');									}								} else {									break;								}							}						} else {							$db = pc_base::load_model($t.'_model');							if ($r = $db->count()) {								$result = $db->select();								$sql_file = CACHE_PATH.'bakup'.DIRECTORY_SEPARATOR.'default'.DIRECTORY_SEPARATOR.$t.'.sql';								$this->create_sql_file($result, $db->db_tablepre.$t, $sql_file);								$db->query('TRUNCATE TABLE `phpcms_'.$t.'`');							}						}					}				}			}			showmessage(L('clear_data_message'));		} else {			//读取网站的所有模型			$model_arr = getcache('model', 'commons');			include $this->admin_tpl('clear_data');		}	}	/**	 * 备份数据到文件	 * @param $data array 备份的数据数组	 * @param $tablename 数据所属数据表	 * @param $file 备份到的文件	 */	private function create_sql_file($data, $db, $file) {		if (is_array($data)) {			$sql = '';			foreach ($data as $d) {				$tag = '';				$sql .= "INSERT INTO `".$db.'` VALUES(';				foreach ($d as $_f => $_v) {					$sql .= $tag.'\''.addslashes($_v).'\'';					$tag = ',';				}				$sql .= ');'."\r\n";			}			file_put_contents($file, $sql);		}		return true;	}}?>
 |