<?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];
}
*/
?>