begin(); Typecho_Widget::widget('Widget_Options')->to($options); Typecho_Widget::widget('Widget_User')->to($user); Typecho_Widget::widget('Widget_Security')->to($security); Typecho_Widget::widget('Widget_Menu')->to($menu); /** 初始化上下文 */ $request = $options->request; $response = $options->response; /** 检测是否是第一次登录 */ $currentMenu = $menu->getCurrentMenu(); list($prefixVersion, $suffixVersion) = explode('/', $options->version); $params = parse_url($currentMenu[2]); $adminFile = basename($params['path']); if (!$user->logged && !Typecho_Cookie::get('__typecho_first_run') && !empty($currentMenu)) { if ('welcome.php' != $adminFile) { $response->redirect(Typecho_Common::url('welcome.php', $options->adminUrl)); } else { Typecho_Cookie::set('__typecho_first_run', 1); } } else { /** 检测版本是否升级 */ if ($user->pass('administrator', true) && !empty($currentMenu)) { $mustUpgrade = (!defined('Typecho_Common::VERSION') || version_compare(str_replace('/', '.', Typecho_Common::VERSION), str_replace('/', '.', $options->version), '>')); if ($mustUpgrade && 'upgrade.php' != $adminFile) { $response->redirect(Typecho_Common::url('upgrade.php', $options->adminUrl)); } else if (!$mustUpgrade && 'upgrade.php' == $adminFile) { $response->redirect($options->adminUrl); } else if (!$mustUpgrade && 'welcome.php' == $adminFile && $user->logged) { $response->redirect($options->adminUrl); } } }