code diary for poscms

index.php
// 显示错误提示
error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING ^ E_STRICT);
function_exists(‘ini_set’) && ini_set(‘display_errors’, TRUE);
function_exists(‘ini_set’) && ini_set(‘memory_limit’, ‘1024M’);

// 查询执行超时时间
function_exists(‘set_time_limit’) && set_time_limit(60);

// 系统核心程序目录,支持自定义路径和改名
define(‘FCPATH’, dirname(FILE).’/diy/’);

// web网站目录,表示index.php文件的目录
define(‘WEBPATH’, dirname(FILE).’/’);

// 是否开启dr_image函数功能,1表示开启
define(‘IS_FUNC_IMAGE’, 0);

// 是否允许编辑后台模板
define(‘IS_EDIT_TPL’, 0);

// web网站目录,表示index.php文件的目录
define(‘CACHEPATH’, WEBPATH.’cache/’);

// 该文件的名称
!defined(‘SELF’) && define(‘SELF’, pathinfo(FILE, PATHINFO_BASENAME));

// 后台管理标识
!defined(‘IS_ADMIN’) && define(‘IS_ADMIN’, FALSE);

if (PHP_SAPI === ‘cli’ || defined(‘STDIN’)) {
unset($_GET);
$_GET[‘c’] = ‘cron’;
$_GET[‘m’] = ‘index’;
chdir(dirname(FILE));
}

// 执行主程序
require FCPATH.’Init.php’;

Init.php

// 自定义个性目录,变更时请在index.php中定义
!defined(‘BASEPATH’) && define(‘BASEPATH’, FCPATH . ‘system/’); // CI框架目录
!defined(‘COREPATH’) && define(‘COREPATH’, FCPATH.’dayrui/’); // poscms控制器目录
!defined(‘CMSPATH’) && define(‘CMSPATH’, FCPATH . ‘poscms/’); // poscms程序目录
!defined(‘MYPATH’) && define(‘MYPATH’, FCPATH . ‘my/’); // 自定义程序目录
!defined(‘APPSPATH’) && define(‘APPSPATH’, FCPATH . ‘app/’); // 插件和模块目录
!defined(‘CACHEPATH’) && define(‘CACHEPATH’, WEBPATH.’cache/’); // 缓存目录

// 固定变量
define(‘EXT’, ‘.php’);
define(‘SYSDIR’, ‘system’);

require CMSPATH.’config/user_agents.php’;

// 兼容性判断
if (!function_exists(‘dr_is_app_dir’)) {
function dr_is_app_dir($dir) {
return is_dir(APPSPATH.$dir);
}
}
if (!function_exists(‘dr_get_app_dir’)) {
function dr_get_app_dir($dir) {
return APPSPATH.$dir.’/’;
}
}

// 客户端判定
$host = strtolower($_SERVER[‘HTTP_HOST’]);
$is_mobile = 0;
if ($mobiles) {
foreach ($mobiles as $key => $val) {
if (FALSE !== (strpos(strtolower($_SERVER[‘HTTP_USER_AGENT’]), $key))) {
// 表示移动端
$is_mobile = 1;
break;
}
}
}

define(‘DOMAIN_NAME’, $host); // 当前域名

if (defined(‘APP_DIR’)) {
// 来自模块
$GET[‘s’] = APP_DIR;
} else {
// 解析自定义域名
if (is_file(CACHEPATH . ‘config/module_domain.php’)){
$domain = require CACHEPATH . ‘config/module_domain.php’;
if ($domain) {
$dir = isset($domain[$host]) && $domain[$host] ? $domain[$host] : ”;
if (strpos($dir, ‘m
‘) !== false) {
$dir = substr($dir, 2);
!defined(‘IS_MOBILE_SELF’) && define(‘IS_MOBILE_SELF’, 1);
}
if ($dir && (dr_is_app_dir($dir) || $dir == ‘member’)) {
!$_GET[‘s’] && $_GET[‘s’] = $dir; // 强制定义为模块
}
}
unset($domain);
}
}

// 伪静态字符串
$uu = isset($_SERVER[‘HTTP_X_REWRITE_URL’]) || trim($_SERVER[‘REQUEST_URI’], ‘/’) == SELF ? trim($_SERVER[‘HTTP_X_REWRITE_URL’], ‘/’) : ($_SERVER[‘REQUEST_URI’] ? trim($_SERVER[‘REQUEST_URI’], ‘/’) : NULL);
$uri = strpos($uu, SELF) === 0 || strpos($uu, ‘?’) === 0 ? ” : $uu; // 以index.php或者?开头的uri不做处理

if (!defined(‘IS_MEMBER’)) {
// 分析url
require CMSPATH.’core/Rewrite.php’;
} else {
// 通过百度编辑器/api接口定义的会员模块
define(‘APPPATH’, COREPATH);
define(‘APP_DIR’, ‘member’);
$_GET[‘d’] = ‘member’; // 将项目标识作为directory
}

// 请求URI字符串
!defined(‘DR_URI’) && define(‘DR_URI’, ”);

require CMSPATH.’core/Service.php’;
require CMSPATH.’core/Autoloader.php’;
$loader = new Poscms\Autoloader\Autoloader();
$loader->register();

// CI框架核心文件
require BASEPATH . ‘core/CodeIgniter.php’;

code diary for poscms

发表评论

电子邮件地址不会被公开。 必填项已用*标注

滚动到顶部