初始化 页面 init.php

作者:root
<?php
define('SYSPATH',dirname( __file__));
define('ADMIN_TPL',SYSPATH.DIRECTORY_SEPARATOR.'tpl'.DIRECTORY_SEPARATOR);
define('MOD_PATH', SYSPATH.DIRECTORY_SEPARATOR.'mod'.DIRECTORY_SEPARATOR);
define('STYLE_PATH',SYSPATH.DIRECTORY_SEPARATOR.'styles'.DIRECTORY_SEPARATOR);
define('BASE_URL', substr( $_SERVER["SCRIPT_NAME"],0,strrpos($_SERVER["SCRIPT_NAME"],'/')+1));
define('STYLE_URL',BASE_URL.'styles'.'/');
define('CACHE',SYSPATH.DIRECTORY_SEPARATOR.'cache'.DIRECTORY_SEPARATOR);
define('DATA_DIR',SYSPATH.DIRECTORY_SEPARATOR.'data'.DIRECTORY_SEPARATOR);


include"config.php";
$dbInfo = array(
    'dsn'=>$sys['dbms'].':host='.$sys['host'].';dbname='.$sys['dbName'].';charset=utf8', 
    'prefix'=>$sys['prefix'], //数据库前缀
    'table'=>'auth',  //会员表名
    'db_options'=> array($sys['dbuser'],$sys['dbpass'],array(PDO::ATTR_PERSISTENT => true)),//数据库:(帐号,密码,长连接)
    'postUsername'=>'uname', //网页提交的变量名
    'postPassword'=>'upass',
    'perms'=>true,  //是否启用 访问权限列表
    'db_fields'=>array('ID','USERGROUP','VNAME','TOKEN','REGTIME','LOGINTIME') //取回的 fields ,不要用 * TOKEN:访问标记


);
/*
*  类自动加载
 */
spl_autoload_register('oak_autoload');
function oak_autoload($class){
        $path = MOD_PATH.strtr($class,'_',DIRECTORY_SEPARATOR).'.php';
         if(file_exists($path)){
            require_once($path); 
		 }else{
			 echo $path;
			 exit;
		 }
}


/* 共用函数: 把url [m/ac/id/p]转换为数组  */
function path_array(&$s){
	@list($get['m'],$get['ac'],$get['id'],$get['p']) = explode('/',trim($s,'/'));
	return $get;
}
/*
*  路由 url ,配置 $_GET 全局数组
 */
function Router(){
	if (!empty($_SERVER['PATH_INFO']))$_GET =array_merge(path_array($_SERVER['PATH_INFO']),$_GET);	
	empty($_GET['m'])?$_GET['m']='index':'';
	empty($_GET['ac'])?$_GET['ac']='ls':'';
}


Router();
/* 视图类*/
$view=View::getInstance();
/* 配置信息 */
$view->sys  = $sys;
/* 模板 url 地址 */
$view->path = STYLE_URL.$view->sys['style'].'/'.'template'.'/';
/* 模板目录[磁盘] */
$view->dir  =  STYLE_PATH.$view->sys['style'].DIRECTORY_SEPARATOR.'template'.DIRECTORY_SEPARATOR;
/* 模板文件(默认) */
$view->tpl  = $view->dir.$_GET['m'].DIRECTORY_SEPARATOR.$_GET['ac'].'.php';


$view->auth = new Auth_Anonymous($sys['dbtype'],$dbInfo,'show_login_form',true);
/*
 * 登陆后的回掉函数 [匿名登陆后加载权限表]
 * $user 用户名 ,$auth auth类实例引用
 * ahth.php 557 call_user_func_array($this->loginCallback, array($this->username, &$this));
 */
function loginCallback($user,&$auth){ 
	/*初始化权限表*/
    $auth->storage->GetPerms();
}
/* 设置 登陆后的回掉函数 */
$view->auth->setLoginCallback('loginCallback');


/* 如果 密码 不为空 ,清除 session 重新登陆 */
empty($_POST[$view->auth->_postPassword])? '': $view->auth->forceLogin();
/* 清除登陆状态。*/
empty($_POST['logout'])?'':$view->auth->logout();
/* 静态检查是否有有效的授权信息的会话。*/
$view->auth->start();


/* 路由检查 超级管理员 管理员(有权) 免检路由 */
// $filter = libc_Filter::getInstance();
/* 对作品所有人的权限 判断。 isowner(功能开关)如 等于 0,会员无法删除上传的图片(自动删除也无法完成)! */
$filter->isowner = 1;
if($filter->hasAccess()== false){
    /* 作者对作品的权限 判断。*/
    $access = false;
    if($filter->isowner && $filter->perm[$_GET['ac']]==8){
        $class = $_GET['m'].'_Controller';
        $o = $class::getInstance();
        if(method_exists($o,'has')){
            if($o->has()){
                $access = true;
            }
        }
    }
    if($access == false){
        $view->auth->forceLogin();
	    $view->auth->login();
        exit();
    }
}
/* 容量计算
function convert($size)
 {
    $unit=array('b','kb','mb','gb','tb','pb');
    return @round($size/pow(1024,($i=floor(log($size,1024)))),2).' '.$unit[$i];
 }


 */
?>