common.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. if (!defined('__DIR__')) {
  3. define('__DIR__', dirname(__FILE__));
  4. }
  5. define('__TYPECHO_ADMIN__', true);
  6. /** 载入配置文件 */
  7. if (!defined('__TYPECHO_ROOT_DIR__') && !@include_once __DIR__ . '/../config.inc.php') {
  8. file_exists(__DIR__ . '/../install.php') ? header('Location: ../install.php') : print('Missing Config File');
  9. exit;
  10. }
  11. /** 初始化组件 */
  12. \Widget\Init::alloc();
  13. /** 注册一个初始化插件 */
  14. \Typecho\Plugin::factory('admin/common.php')->begin();
  15. \Widget\Options::alloc()->to($options);
  16. \Widget\User::alloc()->to($user);
  17. \Widget\Security::alloc()->to($security);
  18. \Widget\Menu::alloc()->to($menu);
  19. /** 初始化上下文 */
  20. $request = $options->request;
  21. $response = $options->response;
  22. /** 检测是否是第一次登录 */
  23. $currentMenu = $menu->getCurrentMenu();
  24. if (!empty($currentMenu)) {
  25. $params = parse_url($currentMenu[2]);
  26. $adminFile = basename($params['path']);
  27. if (!$user->logged && !\Typecho\Cookie::get('__typecho_first_run')) {
  28. if ('welcome.php' != $adminFile) {
  29. $response->redirect(\Typecho\Common::url('welcome.php', $options->adminUrl));
  30. } else {
  31. \Typecho\Cookie::set('__typecho_first_run', 1);
  32. }
  33. } elseif ($user->pass('administrator', true)) {
  34. /** 检测版本是否升级 */
  35. $mustUpgrade = version_compare(\Typecho\Common::VERSION, $options->version, '>');
  36. if ($mustUpgrade && 'upgrade.php' != $adminFile && 'backup.php' != $adminFile) {
  37. $response->redirect(\Typecho\Common::url('upgrade.php', $options->adminUrl));
  38. } elseif (!$mustUpgrade && 'upgrade.php' == $adminFile) {
  39. $response->redirect($options->adminUrl);
  40. } elseif (!$mustUpgrade && 'welcome.php' == $adminFile && $user->logged) {
  41. $response->redirect($options->adminUrl);
  42. }
  43. }
  44. }