IndexAction.class.php 11.9 KB
<?php
class IndexAction extends CommonAction {
	public $tab_sys='';
	
	public function __construct() {
		parent::__construct();

		$this->tab_sys='System';
	}
	public function index(){
		$this->display();
	}
	public function main(){
		//获取服务器信息
		$sysdata['sysos'] = $_SERVER["SERVER_SOFTWARE"]; //获取服务器标识的字串
		$sysdata['sysversion'] = PHP_VERSION; //获取PHP服务器版本
		//以下两条代码连接MySQL数据库并获取MySQL数据库版本信息
		mysql_connect("localhost", "mysql_user", "mysql_pass");
		$sysdata['mysqlinfo'] = mysql_get_server_info();
		//从服务器中获取GD库的信息
		if(function_exists("gd_info")){ 
			$gd = gd_info();
			$sysdata['gdinfo'] = $gd['GD Version'];
		}else {
			$sysdata['gdinfo'] = "未知";
		}

		if(IS_WIN){//是否属于Windows 环境
			$sysdata['system']='Liunx';
		}else{
			$sysdata['system']='WINNT';
		}

		//从GD库中查看是否支持FreeType字体
		$sysdata['freetype'] = $gd["FreeType Support"] ? "支持" : "不支持";
		//从PHP配置文件中获得是否可以远程文件获取
		$sysdata['allowurl']= ini_get("allow_url_fopen") ? "支持" : "不支持";
		//从PHP配置文件中获得最大上传限制
		$sysdata['max_upload'] = ini_get("file_uploads") ? ini_get("upload_max_filesize") : "Disabled";
		//从PHP配置文件中获得脚本的最大执行时间
		$sysdata['max_ex_time']= ini_get("max_execution_time")."秒";
		//以下两条获取服务器时间,中国大陆采用的是东八区的时间,设置时区写成Etc/GMT-8
		date_default_timezone_set("Etc/GMT-8");
		$sysdata['systemtime'] = date("Y-m-d H:i:s",time()); 

		
		
		$Links=D('Links');
		$orderby['sort']='desc';
		$orderby['id']='desc';
		$list = $Links->order($orderby)->limit(20)->select();
		$this->assign('list',$list);

		$this->assign('role',$this->getRole());

		$this->assign('system',$sysdata);
		$this->display('main2');
	}
	private function getRole(){
		$m=M('Authgroupaccess');
		$where['uid']=array('eq',cookie('ADMIN_KEY'));
		$info=$m->where($where)->order($order)->getField('group_id');
		$info=explode(',',$info);
		// 所有用户组
		$groups=R('Authc/getRules',array('Authgroup','title,id'));
		if($groups)
		{
			foreach($groups as $k2 => $v2)
			{
				if(in_array($v2['id'],$info)) $newgroups[$v2['id']]=$v2['title'];
			}
		}
		return implode(',', $newgroups);
	}
/**
 * 获取分类下的所有子分类
 * @param $id 分类id
 * @param $add 本分类是否可以添加内容
 *
   1:内容列表 本类及子类都可添加文章
   2:内容单页 本类及子类都可填写文章内容
   3:栏目主页 本类可添加内容,内容由子类(单面,列表)内容提供或者本分类的单页内容
   4:列表主页 本类不可添加文章,前台自动调取所有子类的文章
   5:单页主页 本类没有内容,前台自动调用第一个子类内容
   0:外部链接
**/
	public function allChildArray($id,$add=false)
	{
		$Category=M('Category');
		// $order['path']='asc';
		$order['sort']='asc';
		$order['id']='asc';
		$field='id,upid,topid,path,catname,type,sort,isshow,module_name,action_name';
		$where['upid']=array('eq',$id);
		$arrid=$Category->field($field)->where($where)->order($order)->select();	//分类下所有子分类
		$arr=array();
		if($add)	//本类可以添加内容
		{
			$where2['id']=array('eq',$id);
			$data=$Category->field($field)->where($where2)->order($order)->select();
			foreach($data as $k=>$v)
			{
				$arr[$k]=$v;
				switch($v['type'])
				{
					case '1':	//内容列表
						$arr[$k]['name']=$v['catname'];
						$arr[$k]['url']=U('Article/index?tid='.$v['id']);
						$arr[$k]['add']=U('Article/add?tid='.$v['id']);
						$arr[$k]['show']=true;
						break;
					case '2':	//内容单页
						$arr[$k]['name']=$v['catname'];
						$arr[$k]['url']=U('Article/page?tid='.$v['id']);
						$arr[$k]['show']=true;
						break;
					case '3':	//栏目主页
						$arr[$k]['name']=$v['catname'];
						$arr[$k]['url']=U('Article/page?tid='.$v['id']);
						$arr[$k]['show']=true;
						break;
					case '4':	//列表主页
						$arr[$k]['name']=$v['catname'];
						// $arr[$k]['url']=U('Article/index?tid='.$v['id']);
						// $arr[$k]['add']=U('Article/add?tid='.$v['id']);
						$arr[$k]['url']='javascript:void(0);';
						// $arr[$k]['add']='javascript:void(0);';
						$arr[$k]['show']=true;
						break;
					case '5':	//单页主页
						$arr[$k]['name']=$v['catname'];
						// $arr[$k]['url']=U('Article/index?tid='.$v['id']);
						// $arr[$k]['add']=U('Article/add?tid='.$v['id']);
						$arr[$k]['url']='javascript:void(0);';
						// $arr[$k]['add']='javascript:void(0);';
						$arr[$k]['show']=true;
						break;
					case '0':	//外部链接
						$arr[$k]['name']=$v['catname'];
						$arr[$k]['url']=U('Article/link?tid='.$v['id']);
						$arr[$k]['show']=true;
						break;
				}
			}
		}
		if($arrid)
		{
			foreach($arrid as $k=>$v)
			{
				if($add) ++$k;
				$arr[$k]=$v;
				switch($v['type'])
				{
					case '1':
						$arr[$k]['name']=$v['catname'];
						$arr[$k]['url']=U('Article/index?tid='.$v['id']);
						$arr[$k]['add']=U('Article/add?tid='.$v['id']);
						$arr[$k]['show']=true;
						break;
					case '2':
						$arr[$k]['name']=$v['catname'];
						$arr[$k]['url']=U('Article/page?tid='.$v['id']);
						$arr[$k]['show']=true;
						break;
					case '3':
						$arr[$k]['name']=$v['catname'];
						$arr[$k]['url']=U('Article/page?tid='.$v['id']);
						$arr[$k]['show']=true;
						break;
					case '4':
						$arr[$k]['name']=$v['catname'];
						// $arr[$k]['url']=U('Article/index?tid='.$v['id']);
						// $arr[$k]['add']=U('Article/add?tid='.$v['id']);
						$arr[$k]['url']='javascript:void(0);';
						// $arr[$k]['add']='javascript:void(0);';
						$arr[$k]['show']=true;
						break;
					case '5':
						$arr[$k]['name']=$v['catname'];
						// $arr[$k]['url']=U('Article/index?tid='.$v['id']);
						// $arr[$k]['add']=U('Article/add?tid='.$v['id']);
						$arr[$k]['url']='javascript:void(0);';
						// $arr[$k]['add']='javascript:void(0);';
						$arr[$k]['show']=true;
						break;
					case '0':
						$arr[$k]['name']=$v['catname'];
						$arr[$k]['url']=U('Article/link?tid='.$v['id']);
						$arr[$k]['show']=true;
						break;

				}
				

				
				${arrid.$k}=$Category->where('upid='.$v['id'])->select();
				if(${arrid.$k})
				{
					$arr[$k]['cmenulist']=$this->allChildArray($v['id']);
				}
			
			}
		}
		return $arr;
	}
/**
 * 左侧导航
**/
	public function menu2(){
		$Category=M('Category');
		$catlist=$Category->where('upid=0')->order('sort asc,id asc')->select();
		foreach($catlist as $k=>$v){
			
			$list[$k]=$catlist[$k];
			$list[$k]['kid']=$k+5;
			$catl=$Category->where('upid='.$v['id'])->order('sort asc,id asc')->select();
			$cdata=array();
			if(count($catl)<1){
				$cdata[]=$v;
			}else{
				$cdata=$catl;
			}
			$cmenulist=array();
			foreach($cdata as $kk=>$vv){
			// type  : 0列表页 1栏目页 2单页 4主页 3外部链接
			// 1、内容列表、2	内容单页、3	栏目主页、4	列表主页、5	单页主页、0	外部链接
				
				
				if($vv['type']==1){
					$cmenulist[$kk]['name']=$vv['catname'];
					$cmenulist[$kk]['url']=U('Article/index?tid='.$vv['id']);
					$cmenulist[$kk]['add']=U('Article/add?tid='.$vv['id']);
					$cmenulist[$kk]['show']=true;
					
				}elseif($vv['type']==2){
					$cmenulist[$kk]['name']=$vv['catname'];
					$cmenulist[$kk]['url']=U('Article/page?tid='.$vv['id']);
					$cmenulist[$kk]['show']=true;							
				}elseif($vv['type']==3){
					$cmenulist[$kk]['name']=$vv['catname'];
					$cmenulist[$kk]['url']=U('Article/page?tid='.$vv['id']);
					$cmenulist[$kk]['show']=true;
			
				}elseif($vv['type']==4){
					$cmenulist[$kk]['name']=$vv['catname'];
					$cmenulist[$kk]['url']=U('Article/index?tid='.$vv['id']);
					$cmenulist[$kk]['add']=U('Article/add?tid='.$vv['id']);
					$cmenulist[$kk]['show']=true;
					
							
				}elseif($vv['type']==5){
					$cmenulist[$kk]['name']=$vv['catname'];
					$cmenulist[$kk]['url']=U('Article/index?tid='.$vv['id']);
					$cmenulist[$kk]['add']=U('Article/add?tid='.$vv['id']);
					$cmenulist[$kk]['show']=true;
					
							
				}elseif($vv['type']==0){
					$cmenulist[$kk]['name']=$vv['catname'];
					$cmenulist[$kk]['url']=U('Article/link?tid='.$vv['id']);
					$cmenulist[$kk]['show']=true;
							
				}else{
				
				}
				
			}
			$list[$k]['cmenulist']=$cmenulist;
			
		}
		//dump($list);
		$this->assign('catlist',$catlist);
		$this->assign('list',$list);
		$this->display();	
	}
/**
 * 左侧导航
 * pp new
**/
	public function menu(){
		/*$Category=M('Category');
		// $order['path']='asc';
		$order['sort']='asc';
		$order['id']='asc';
		// $field='id,upid,topid,path,catname,catename,thumb,banner,title,keywords,description,content,type,sort,picnum,linkurl,isshow,module_name,action_name,addtime,updatetime';
		$field='id,upid,topid,path,catname,type,sort,isshow,module_name,action_name';
		$where['upid']=array('eq',0);
		$catlist=$Category->field($field)->where($where)->order($order)->select();
		foreach($catlist as $k=>$v)
		{
			if(in_array($v['type'],array(1,2,3)))	//1:内容列表 2:内容单页 3:栏目主页
				$add=true;
			else
				$add=false;
			$list[$k]=$catlist[$k];
			$list[$k]['cmenulist']=$this->allChildArray($v['id'],$add);
		}
		$this->assign('catlist',$catlist);
		$this->assign('list',$list);*/
		$this->assign('authlist',$this->getPower());
		$this->display();	
	}
	public function system()
	{
		
		
		$System=D($this->tab_sys);
		if($this->isPost()){
			$_POST['cfg']=array2single($_POST['cfg'],true);
			foreach($_POST['cfg'] as $k=>$v){
				$arr_id=explode('_',$k);
				
				$lastid=$System->where('id='.$arr_id['1'])->setField('content',$v);
				$lastid=$System->where('id='.$arr_id['1'])->setField('sort',I('sort_'.$arr_id['1']));
				
			}
			$this->ReWriteConfig();
			$this->success('系统基本设置更改成功',U('Index/system'));
		}else{
			$list=$System->where('isshow=1')->order('sort asc,id asc')->select();
			$this->assign('lists',$list);
			$this->display();	
		}

	}	
	
	public function delcache(){
		header("Content-type: text/html; charset=utf-8");
		//清文件缓存
		$dirs = array('./Runtime/');
		@mkdir('Runtime',0777,true);
		//清理缓存
		foreach($dirs as $value) {
			$this->rmdirr($value);
		}
		echo '<script>alert("系统缓存清除成功");window.location="'.U('Index/main').'";</script>';
		// $this->success('系统缓存清除成功!',U('Index/main'));  
	} 
	private function rmdirr($dirname) {
		if (!file_exists($dirname)){
			return false;
		}
		if (is_file($dirname) || is_link($dirname)){
			return unlink($dirname);
		}
		$dir = dir($dirname);
		if($dir){
			while (false !== $entry = $dir->read()){
				if ($entry == '.' || $entry == '..') {
					continue;
				}
				//递归
				$this->rmdirr($dirname . DIRECTORY_SEPARATOR . $entry);
			}
		}
		$dir->close();
		return rmdir($dirname);
	}
	//更新配置文件webconfig文件的内容
	private function ReWriteConfig(){
		$Config=D($this->tab_sys);
		$configpath = C('CFG_CONf');
		if(!is_writeable($configpath.'config.inc.php')){
			$this->error("配置文件'{$configpath}config.inc.php'不支持写入,无法修改系统配置参数!",'__ACTION__');
		}
		$datalists=$Config->order('id asc')->select();
		foreach($datalists as $datalist){
			$data[$datalist['cfg']]=$datalist['content'];
		}
		F('config.inc',$data,$configpath);
	}
	
	public function do_config()
	{
		$Config=D('System');
		if($Config->create())
		{
			$lastid=$Config->add();
			if($lastid)
			{
				$this->ReWriteConfig();
				$this->success('变量添加成功',U('Index/system'));
			}
			else
				$this->error('变量添加失败');
		}
		else
		{
			$this->error($Config->getError());
		}

	}
 
}
?>