You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.6 KiB
90 lines
2.6 KiB
5 years ago
|
<?php
|
||
|
if (!defined('__TYPECHO_ROOT_DIR__')) exit;
|
||
|
/**
|
||
|
* Typecho Blog Platform
|
||
|
*
|
||
|
* @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)
|
||
|
* @license GNU General Public License 2.0
|
||
|
* @version $Id$
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* 初始化模块
|
||
|
*
|
||
|
* @package Widget
|
||
|
*/
|
||
|
class Widget_Init extends Typecho_Widget
|
||
|
{
|
||
|
/**
|
||
|
* 入口函数,初始化路由器
|
||
|
*
|
||
|
* @access public
|
||
|
* @return void
|
||
|
*/
|
||
|
public function execute()
|
||
|
{
|
||
|
/** 对变量赋值 */
|
||
|
$options = $this->widget('Widget_Options');
|
||
|
|
||
|
/** 检查安装状态 */
|
||
|
if (!$options->installed) {
|
||
|
$options->update(array('value' => 1), Typecho_Db::get()->sql()->where('name = ?', 'installed'));
|
||
|
}
|
||
|
|
||
|
/** 语言包初始化 */
|
||
|
if ($options->lang && $options->lang != 'zh_CN') {
|
||
|
$dir = defined('__TYPECHO_LANG_DIR__') ? __TYPECHO_LANG_DIR__ : __TYPECHO_ROOT_DIR__ . '/usr/langs';
|
||
|
Typecho_I18n::setLang($dir . '/' . $options->lang . '.mo');
|
||
|
}
|
||
|
|
||
|
/** 备份文件目录初始化 */
|
||
|
if (!defined('__TYPECHO_BACKUP_DIR__')) {
|
||
|
define('__TYPECHO_BACKUP_DIR__', __TYPECHO_ROOT_DIR__ . '/usr/backups');
|
||
|
}
|
||
|
|
||
|
/** cookie初始化 */
|
||
|
Typecho_Cookie::setPrefix($options->rootUrl);
|
||
|
|
||
|
/** 初始化charset */
|
||
|
Typecho_Common::$charset = $options->charset;
|
||
|
|
||
|
/** 初始化exception */
|
||
|
Typecho_Common::$exceptionHandle = 'Widget_ExceptionHandle';
|
||
|
|
||
|
/** 设置路径 */
|
||
|
if (defined('__TYPECHO_PATHINFO_ENCODING__')) {
|
||
|
$pathInfo = $this->request->getPathInfo(__TYPECHO_PATHINFO_ENCODING__, $options->charset);
|
||
|
} else {
|
||
|
$pathInfo = $this->request->getPathInfo();
|
||
|
}
|
||
|
|
||
|
Typecho_Router::setPathInfo($pathInfo);
|
||
|
|
||
|
/** 初始化路由器 */
|
||
|
Typecho_Router::setRoutes($options->routingTable);
|
||
|
|
||
|
/** 初始化插件 */
|
||
|
Typecho_Plugin::init($options->plugins);
|
||
|
|
||
|
/** 初始化回执 */
|
||
|
$this->response->setCharset($options->charset);
|
||
|
$this->response->setContentType($options->contentType);
|
||
|
|
||
|
/** 默认时区 */
|
||
|
if (function_exists("ini_get") && !ini_get("date.timezone") && function_exists("date_default_timezone_set")) {
|
||
|
@date_default_timezone_set('UTC');
|
||
|
}
|
||
|
|
||
|
/** 初始化时区 */
|
||
|
Typecho_Date::setTimezoneOffset($options->timezone);
|
||
|
|
||
|
/** 开始会话, 减小负载只针对后台打开session支持 */
|
||
|
if ($this->widget('Widget_User')->hasLogin()) {
|
||
|
@session_start();
|
||
|
}
|
||
|
|
||
|
/** 监听缓冲区 */
|
||
|
ob_start();
|
||
|
}
|
||
|
}
|