同步操作将从 teamosc/phpblog 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
<?php/*** Typecho Blog Platform** @copyright Copyright (c) 2008 Typecho team (http://www.typecho.org)* @license GNU General Public License 2.0* @version $Id$*//** 定义根目录 */define('__TYPECHO_ROOT_DIR__', dirname(__FILE__));/** 定义插件目录(相对路径) */define('__TYPECHO_PLUGIN_DIR__', '/usr/plugins');/** 定义模板目录(相对路径) */define('__TYPECHO_THEME_DIR__', '/usr/themes');/** 后台路径(相对路径) */define('__TYPECHO_ADMIN_DIR__', '/admin/');/** 设置包含路径 */@set_include_path(get_include_path() . PATH_SEPARATOR .__TYPECHO_ROOT_DIR__ . '/var' . PATH_SEPARATOR .__TYPECHO_ROOT_DIR__ . __TYPECHO_PLUGIN_DIR__);/** 载入API支持 */require_once 'Typecho/Common.php';/** 载入Response支持 */require_once 'Typecho/Response.php';/** 载入配置支持 */require_once 'Typecho/Config.php';/** 载入异常支持 */require_once 'Typecho/Exception.php';/** 载入插件支持 */require_once 'Typecho/Plugin.php';/** 载入国际化支持 */require_once 'Typecho/I18n.php';/** 载入数据库支持 */require_once 'Typecho/Db.php';/** 载入路由器支持 */require_once 'Typecho/Router.php';/** 程序初始化 */Typecho_Common::init();ob_start();session_start();//判断是否已经安装if (!isset($_GET['finish']) && file_exists(__TYPECHO_ROOT_DIR__ . '/config.inc.php') && empty($_SESSION['typecho'])) {exit;}/*** 检测是否为应用引擎** @access protected* @return void*/function _engine(){return !empty($_SERVER['HTTP_APPNAME']) // SAE|| !!getenv('HTTP_BAE_ENV_APPID') // BAE|| !!getenv('HTTP_BAE_LOGID') // BAE 3.0|| (isset($_SERVER['SERVER_SOFTWARE']) && strpos($_SERVER['SERVER_SOFTWARE'],'Google App Engine') !== false); // GAE}/*** 获取传递参数** @param string $name 参数名称* @param string $default 默认值* @return string*/function _r($name, $default = NULL){return isset($_REQUEST[$name]) ? $_REQUEST[$name] : $default;}/*** 获取多个传递参数** @return array*/function _rFrom(){$result = array();$params = func_get_args();foreach ($params as $param) {$result[$param] = isset($_REQUEST[$param]) ? $_REQUEST[$param] : NULL;}return $result;}/*** 输出传递参数** @param string $name 参数名称* @param string $default 默认值* @return string*/function _v($name, $default = ''){echo _r($name, $default);}/*** 判断是否兼容某个环境(perform)** @param string $adapter 适配器* @return boolean*/function _p($adapter){switch ($adapter) {case 'Mysql':return Typecho_Db_Adapter_Mysql::isAvailable();case 'Pdo_Mysql':return Typecho_Db_Adapter_Pdo_Mysql::isAvailable();case 'SQLite':return Typecho_Db_Adapter_SQLite::isAvailable();case 'Pdo_SQLite':return Typecho_Db_Adapter_Pdo_SQLite::isAvailable();case 'Pgsql':return Typecho_Db_Adapter_Pgsql::isAvailable();case 'Pdo_Pgsql':return Typecho_Db_Adapter_Pdo_Pgsql::isAvailable();default:return false;}}/*** 获取url地址** @return string*/function _u(){$url = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];if (isset($_SERVER["QUERY_STRING"])) {$url = str_replace("?" . $_SERVER["QUERY_STRING"], "", $url);}return dirname($url);}$options = new stdClass();$options->generator = 'Typecho ' . Typecho_Common::VERSION;list($soft, $currentVersion) = explode(' ', $options->generator);$options->software = $soft;$options->version = $currentVersion;list($prefixVersion, $suffixVersion) = explode('/', $currentVersion);?><!DOCTYPE HTML><html xmlns="http://www.w3.org/1999/xhtml"><head lang="zh-CN"><meta charset="<?php _e('UTF-8'); ?>" /><title><?php _e('Typecho 安装程序'); ?></title><link rel="stylesheet" type="text/css" href="admin/css/normalize.css" /><link rel="stylesheet" type="text/css" href="admin/css/grid.css" /><link rel="stylesheet" type="text/css" href="admin/css/style.css" /></head><body><div class="typecho-install-patch"><h1>Typecho</h1><ol class="path"><li<?php if (!isset($_GET['finish']) && !isset($_GET['config'])) : ?> class="current"<?php endif; ?>><span>1</span><?php _e('欢迎使用'); ?></li><li<?php if (isset($_GET['config'])) : ?> class="current"<?php endif; ?>><span>2</span><?php _e('初始化配置'); ?></li><li<?php if (isset($_GET['start'])) : ?> class="current"<?php endif; ?>><span>3</span><?php _e('开始安装'); ?></li><li<?php if (isset($_GET['finish'])) : ?> class="current"<?php endif; ?>><span>4</span><?php _e('安装成功'); ?></li></ol></div><div class="container"><div class="colgroup"><div class="col-mb-12 col-tb-8 col-tb-offset-2"><div class="column-14 start-06 typecho-install"><?php if (isset($_GET['finish'])) : ?><?php if (!@file_exists(__TYPECHO_ROOT_DIR__ . '/config.inc.php')) : ?><h1 class="typecho-install-title"><?php _e('安装失败!'); ?></h1><div class="typecho-install-body"><form method="post" action="?config" name="config"><p class="message error"><?php _e('您没有上传 config.inc.php 文件,请您重新安装!'); ?> <button type="submit"><?php _e('重新安装 »'); ?></button></p></form></div><?php else : ?><h1 class="typecho-install-title"><?php _e('安装成功!'); ?></h1><div class="typecho-install-body"><div class="message success"><?php if(isset($_GET['use_old']) ) : ?><?php _e('您选择了使用原有的数据, 您的用户名和密码和原来的一致'); ?><?php else : ?><?php if (isset($_REQUEST['user']) && isset($_REQUEST['password'])): ?><?php _e('您的用户名是'); ?>: <strong class="mono"><?php echo htmlspecialchars(_r('user')); ?></strong><br><?php _e('您的密码是'); ?>: <strong class="mono"><?php echo htmlspecialchars(_r('password')); ?></strong><?php endif;?><?php endif;?></div><div class="p message notice"><a target="_blank" href="http://spreadsheets.google.com/viewform?key=pd1Gl4Ur_pbniqgebs5JRIg&hl=en">参与用户调查, 帮助我们完善产品</a></div><div class="session"><p><?php _e('您可以将下面两个链接保存到您的收藏夹'); ?>:</p><ul><?phpif (isset($_REQUEST['user']) && isset($_REQUEST['password'])) {$loginUrl = _u() . '/index.php/action/login?name=' . urlencode(_r('user')) . '&password='. urlencode(_r('password')) . '&referer=' . _u() . '/admin/index.php';} else {$loginUrl = _u() . '/admin/index.php';}?><li><a href="<?php echo $loginUrl; ?>"><?php _e('点击这里访问您的控制面板'); ?></a></li><li><a href="<?php echo _u(); ?>/index.php"><?php _e('点击这里查看您的 Blog'); ?></a></li></ul></div><p><?php _e('希望您能尽情享用 Typecho 带来的乐趣!'); ?></p></div><?php endif;?><?php elseif (isset($_GET['start'])): ?><?php if (!@file_exists(__TYPECHO_ROOT_DIR__ . '/config.inc.php')) : ?><h1 class="typecho-install-title"><?php _e('安装失败!'); ?></h1><div class="typecho-install-body"><form method="post" action="?config" name="config"><p class="message error"><?php _e('您没有上传 config.inc.php 文件,请您重新安装!'); ?> <button type="submit"><?php _e('重新安装 »'); ?></button></p></form></div><?php else : ?><?php$config = unserialize(base64_decode(Typecho_Cookie::get('__typecho_config')));$type = explode('_', $config['adapter']);$type = array_pop($type);try {$installDb = new Typecho_Db($config['adapter'], $config['prefix']);$installDb->addServer($config, Typecho_Db::READ | Typecho_Db::WRITE);/** 初始化数据库结构 */$scripts = file_get_contents ('./install/' . $type . '.sql');$scripts = str_replace('typecho_', $config['prefix'], $scripts);if (isset($config['charset'])) {$scripts = str_replace('%charset%', $config['charset'], $scripts);}$scripts = explode(';', $scripts);foreach ($scripts as $script) {$script = trim($script);if ($script) {$installDb->query($script, Typecho_Db::WRITE);}}/** 全局变量 */$installDb->query($installDb->insert('table.options')->rows(array('name' => 'theme', 'user' => 0, 'value' => 'default')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'theme:default', 'user' => 0, 'value' => 'a:2:{s:7:"logoUrl";N;s:12:"sidebarBlock";a:5:{i:0;s:15:"ShowRecentPosts";i:1;s:18:"ShowRecentComments";i:2;s:12:"ShowCategory";i:3;s:11:"ShowArchive";i:4;s:9:"ShowOther";}}')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'timezone', 'user' => 0, 'value' => _t('28800'))));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'charset', 'user' => 0, 'value' => 'UTF-8')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'contentType', 'user' => 0, 'value' => 'text/html')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'gzip', 'user' => 0, 'value' => 0)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'generator', 'user' => 0, 'value' => $options->generator)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'title', 'user' => 0, 'value' => 'Hello World')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'description', 'user' => 0, 'value' => 'Just So So ...')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'keywords', 'user' => 0, 'value' => 'typecho,php,blog')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'rewrite', 'user' => 0, 'value' => 0)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'frontPage', 'user' => 0, 'value' => 'recent')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'frontArchive', 'user' => 0, 'value' => 0)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsRequireMail', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsWhitelist', 'user' => 0, 'value' => 0)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsRequireURL', 'user' => 0, 'value' => 0)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsRequireModeration', 'user' => 0, 'value' => 0)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'plugins', 'user' => 0, 'value' => 'a:0:{}')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentDateFormat', 'user' => 0, 'value' => 'F jS, Y \a\t h:i a')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'siteUrl', 'user' => 0, 'value' => $config['siteUrl'])));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'defaultCategory', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'allowRegister', 'user' => 0, 'value' => 0)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'defaultAllowComment', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'defaultAllowPing', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'defaultAllowFeed', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'pageSize', 'user' => 0, 'value' => 5)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'postsListSize', 'user' => 0, 'value' => 10)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsListSize', 'user' => 0, 'value' => 10)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsHTMLTagAllowed', 'user' => 0, 'value' => NULL)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'postDateFormat', 'user' => 0, 'value' => 'Y-m-d')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'feedFullText', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'editorSize', 'user' => 0, 'value' => 350)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'autoSave', 'user' => 0, 'value' => 0)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'markdown', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsMaxNestingLevels', 'user' => 0, 'value' => 5)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsPostTimeout', 'user' => 0, 'value' => 24 * 3600 * 30)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsUrlNofollow', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsShowUrl', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsMarkdown', 'user' => 0, 'value' => 0)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsPageBreak', 'user' => 0, 'value' => 0)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsThreaded', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsPageSize', 'user' => 0, 'value' => 20)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsPageDisplay', 'user' => 0, 'value' => 'last')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsOrder', 'user' => 0, 'value' => 'ASC')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsCheckReferer', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsAutoClose', 'user' => 0, 'value' => 0)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsPostIntervalEnable', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsPostInterval', 'user' => 0, 'value' => 60)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsShowCommentOnly', 'user' => 0, 'value' => 0)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsAvatar', 'user' => 0, 'value' => 1)));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'commentsAvatarRating', 'user' => 0, 'value' => 'G')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'routingTable', 'user' => 0, 'value' => 'a:25:{s:5:"index";a:3:{s:3:"url";s:1:"/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:7:"archive";a:3:{s:3:"url";s:6:"/blog/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:2:"do";a:3:{s:3:"url";s:22:"/action/[action:alpha]";s:6:"widget";s:9:"Widget_Do";s:6:"action";s:6:"action";}s:4:"post";a:3:{s:3:"url";s:24:"/archives/[cid:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:10:"attachment";a:3:{s:3:"url";s:26:"/attachment/[cid:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:8:"category";a:3:{s:3:"url";s:17:"/category/[slug]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:3:"tag";a:3:{s:3:"url";s:12:"/tag/[slug]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:6:"author";a:3:{s:3:"url";s:22:"/author/[uid:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:6:"search";a:3:{s:3:"url";s:19:"/search/[keywords]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:10:"index_page";a:3:{s:3:"url";s:21:"/page/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:12:"archive_page";a:3:{s:3:"url";s:26:"/blog/page/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:13:"category_page";a:3:{s:3:"url";s:32:"/category/[slug]/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:8:"tag_page";a:3:{s:3:"url";s:27:"/tag/[slug]/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:11:"author_page";a:3:{s:3:"url";s:37:"/author/[uid:digital]/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:11:"search_page";a:3:{s:3:"url";s:34:"/search/[keywords]/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:12:"archive_year";a:3:{s:3:"url";s:18:"/[year:digital:4]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:13:"archive_month";a:3:{s:3:"url";s:36:"/[year:digital:4]/[month:digital:2]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:11:"archive_day";a:3:{s:3:"url";s:52:"/[year:digital:4]/[month:digital:2]/[day:digital:2]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:17:"archive_year_page";a:3:{s:3:"url";s:38:"/[year:digital:4]/page/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:18:"archive_month_page";a:3:{s:3:"url";s:56:"/[year:digital:4]/[month:digital:2]/page/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:16:"archive_day_page";a:3:{s:3:"url";s:72:"/[year:digital:4]/[month:digital:2]/[day:digital:2]/page/[page:digital]/";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:12:"comment_page";a:3:{s:3:"url";s:53:"[permalink:string]/comment-page-[commentPage:digital]";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}s:4:"feed";a:3:{s:3:"url";s:20:"/feed[feed:string:0]";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:4:"feed";}s:8:"feedback";a:3:{s:3:"url";s:31:"[permalink:string]/[type:alpha]";s:6:"widget";s:15:"Widget_Feedback";s:6:"action";s:6:"action";}s:4:"page";a:3:{s:3:"url";s:12:"/[slug].html";s:6:"widget";s:14:"Widget_Archive";s:6:"action";s:6:"render";}}')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'actionTable', 'user' => 0, 'value' => 'a:0:{}')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'panelTable', 'user' => 0, 'value' => 'a:0:{}')));$installDb->query($installDb->insert('table.options')->rows(array('name' => 'attachmentTypes', 'user' => 0, 'value' => '@image@')));/** 初始分类 */$installDb->query($installDb->insert('table.metas')->rows(array('name' => _t('默认分类'), 'slug' => 'default', 'type' => 'category', 'description' => _t('只是一个默认分类'),'count' => 1, 'order' => 1)));/** 初始关系 */$installDb->query($installDb->insert('table.relationships')->rows(array('cid' => 1, 'mid' => 1)));/** 初始内容 */$installDb->query($installDb->insert('table.contents')->rows(array('title' => _t('欢迎使用 Typecho'), 'slug' => 'start', 'created' => Typecho_Date::gmtTime(), 'modified' => Typecho_Date::gmtTime(),'text' => _t('<!--markdown-->如果您看到这篇文章,表示您的 blog 已经安装成功.'), 'authorId' => 1, 'type' => 'post', 'status' => 'publish', 'commentsNum' => 1, 'allowComment' => 1,'allowPing' => 1, 'allowFeed' => 1, 'parent' => 0)));$installDb->query($installDb->insert('table.contents')->rows(array('title' => _t('关于'), 'slug' => 'start-page', 'created' => Typecho_Date::gmtTime(), 'modified' => Typecho_Date::gmtTime(),'text' => _t('<!--markdown-->本页面由 Typecho 创建, 这只是个测试页面.'), 'authorId' => 1, 'order' => 0, 'type' => 'page', 'status' => 'publish', 'commentsNum' => 0, 'allowComment' => 1,'allowPing' => 1, 'allowFeed' => 1, 'parent' => 0)));/** 初始评论 */$installDb->query($installDb->insert('table.comments')->rows(array('cid' => 1, 'created' => Typecho_Date::gmtTime(), 'author' => 'Typecho', 'ownerId' => 1, 'url' => 'http://typecho.org','ip' => '127.0.0.1', 'agent' => $options->generator, 'text' => '欢迎加入 Typecho 大家族', 'type' => 'comment', 'status' => 'approved', 'parent' => 0)));/** 初始用户 */$password = empty($config['userPassword']) ? substr(uniqid(), 7) : $config['userPassword'];$installDb->query($installDb->insert('table.users')->rows(array('name' => $config['userName'], 'password' => Typecho_Common::hash($password), 'mail' => $config['userMail'],'url' => 'http://www.typecho.org', 'screenName' => $config['userName'], 'group' => 'administrator', 'created' => Typecho_Date::gmtTime())));unset($_SESSION['typecho']);Typecho_Cookie::delete('__typecho_config');header('Location: ./install.php?finish&user=' . urlencode($config['userName']). '&password=' . $password);} catch (Typecho_Db_Exception $e) {$success = false;$code = $e->getCode();?><h1 class="typecho-install-title"><?php _e('安装失败!'); ?></h1><div class="typecho-install-body"><form method="post" action="?start" name="check"><?phpif(('Mysql' == $type && (1050 == $code || '42S01' == $code)) ||('SQLite' == $type && ('HY000' == $code || 1 == $code)) ||('Pgsql' == $type && '42P07' == $code)) {if(_r('delete')) {//删除原有数据$dbPrefix = $config['prefix'];$tableArray = array($dbPrefix . 'comments', $dbPrefix . 'contents', $dbPrefix . 'fields', $dbPrefix . 'metas', $dbPrefix . 'options', $dbPrefix . 'relationships', $dbPrefix . 'users',);foreach($tableArray as $table) {if($type == 'Mysql') {$installDb->query("DROP TABLE IF EXISTS `{$table}`");} elseif($type == 'Pgsql') {$installDb->query("DROP TABLE {$table}");} elseif($type == 'SQLite') {$installDb->query("DROP TABLE {$table}");}}echo '<p class="message success">' . _t('已经删除完原有数据') . '<br /><br /><button type="submit" class="primary">'. _t('继续安装 »') . '</button></p>';} elseif (_r('goahead')) {//使用原有数据//但是要更新用户网站$installDb->query($installDb->update('table.options')->rows(array('value' => $config['siteUrl']))->where('name = ?', 'siteUrl'));unset($_SESSION['typecho']);Typecho_Cookie::delete('__typecho_config');header('Location: ./install.php?finish&use_old');exit;} else {echo '<p class="message error">' . _t('安装程序检查到原有数据表已经存在.'). '<br /><br />' . '<button type="submit" name="delete" value="1" class="btn-warn">' . _t('删除原有数据') . '</button> '. _t('或者') . ' <button type="submit" name="goahead" value="1" class="primary">' . _t('使用原有数据') . '</button></p>';}} else {echo '<p class="message error">' . _t('安装程序捕捉到以下错误: "%s". 程序被终止, 请检查您的配置信息.',$e->getMessage()) . '</p>';}?></form></div><?php}?><?php endif;?><?php elseif (isset($_GET['config'])): ?><?php$adapters = array('Mysql', 'Pdo_Mysql', 'SQLite', 'Pdo_SQLite', 'Pgsql', 'Pdo_Pgsql');foreach ($adapters as $firstAdapter) {if (_p($firstAdapter)) {break;}}$adapter = _r('dbAdapter', $firstAdapter);$type = explode('_', $adapter);$type = array_pop($type);?><form method="post" action="?config" name="config"><h1 class="typecho-install-title"><?php _e('确认您的配置'); ?></h1><div class="typecho-install-body"><h2><?php _e('数据库配置'); ?></h2><?phpif ('config' == _r('action')) {$success = true;if (_r('created') && !file_exists('./config.inc.php')) {echo '<p class="message error">' . _t('没有检测到您手动创建的配置文件, 请检查后再次创建') . '</p>';$success = false;} else {if (NULL == _r('userUrl')) {$success = false;echo '<p class="message error">' . _t('请填写您的网站地址') . '</p>';} else if (NULL == _r('userName')) {$success = false;echo '<p class="message error">' . _t('请填写您的用户名') . '</p>';} else if (NULL == _r('userMail')) {$success = false;echo '<p class="message error">' . _t('请填写您的邮箱地址') . '</p>';} else if (32 < strlen(_r('userName'))) {$success = false;echo '<p class="message error">' . _t('用户名长度超过限制, 请不要超过 32 个字符') . '</p>';} else if (200 < strlen(_r('userMail'))) {$success = false;echo '<p class="message error">' . _t('邮箱长度超过限制, 请不要超过 200 个字符') . '</p>';}}$_dbConfig = _rFrom('dbHost', 'dbUser', 'dbPassword', 'dbCharset', 'dbPort', 'dbDatabase', 'dbFile', 'dbDsn');$_dbConfig = array_filter($_dbConfig);$dbConfig = array();foreach ($_dbConfig as $key => $val) {$dbConfig[strtolower (substr($key, 2))] = $val;}// 在特殊服务器上的特殊安装过程处理if (_r('config')) {$replace = array_keys($dbConfig);foreach ($replace as &$key) {$key = '{' . $key . '}';}$config = str_replace($replace, array_values($dbConfig), _r('config'));}if (!isset($config) && $success && !_r('created')) {$installDb = new Typecho_Db ($adapter, _r('dbPrefix'));$installDb->addServer($dbConfig, Typecho_Db::READ | Typecho_Db::WRITE);/** 检测数据库配置 */try {$installDb->query('SELECT 1=1');} catch (Typecho_Db_Adapter_Exception $e) {$success = false;echo '<p class="message error">'. _t('对不起,无法连接数据库,请先检查数据库配置再继续进行安装') . '</p>';} catch (Typecho_Db_Exception $e) {$success = false;echo '<p class="message error">'. _t('安装程序捕捉到以下错误: " %s ". 程序被终止, 请检查您的配置信息.',$e->getMessage()) . '</p>';}}if($success) {Typecho_Cookie::set('__typecho_config', base64_encode(serialize(array_merge(array('prefix' => _r('dbPrefix'),'userName' => _r('userName'),'userPassword' => _r('userPassword'),'userMail' => _r('userMail'),'adapter' => $adapter,'siteUrl' => _r('userUrl')), $dbConfig))));if (_r('created')) {header('Location: ./install.php?start');exit;}/** 初始化配置文件 */$lines = array_slice(file(__FILE__), 0, 52);$lines[] = "/** 定义数据库参数 */\$db = new Typecho_Db('{$adapter}', '" . _r('dbPrefix') . "');\$db->addServer(" . (!isset($config) ? var_export($dbConfig, true) : $config) . ", Typecho_Db::READ | Typecho_Db::WRITE);Typecho_Db::set(\$db);";$contents = implode('', $lines);if (!_engine()) {@file_put_contents('./config.inc.php', $contents);}// 创建一个用于标识的临时文件$_SESSION['typecho'] = 1;if (!file_exists('./config.inc.php')) {?><div class="message notice"><p><?php _e('安装程序无法自动创建 <strong>config.inc.php</strong> 文件'); ?><br /><?php _e('您可以在网站根目录下手动创建 <strong>config.inc.php</strong> 文件, 并复制如下代码至其中'); ?></p><p><textarea rows="5" onmouseover="this.select();" class="w-100" readonly><?php echo htmlspecialchars($contents); ?></textarea></p><p><button name="created" value="1" type="submit" class="primary">创建完毕, 继续安装 »</button></p></div><?php} else {header('Location: ./install.php?start');exit;}}// 安装不成功删除配置文件if($success != true && file_exists(__TYPECHO_ROOT_DIR__ . '/config.inc.php')) {unlink(__TYPECHO_ROOT_DIR__ . '/config.inc.php');}}?><ul class="typecho-option"><li><label for="dbAdapter" class="typecho-label"><?php _e('数据库适配器'); ?></label><select name="dbAdapter" id="dbAdapter"><?php if (_p('Mysql')): ?><option value="Mysql"<?php if('Mysql' == $adapter): ?> selected=true<?php endif; ?>><?php _e('Mysql 原生函数适配器') ?></option><?php endif; ?><?php if (_p('SQLite')): ?><option value="SQLite"<?php if('SQLite' == $adapter): ?> selected=true<?php endif; ?>><?php _e('SQLite 原生函数适配器 (SQLite 2.x)') ?></option><?php endif; ?><?php if (_p('Pgsql')): ?><option value="Pgsql"<?php if('Pgsql' == $adapter): ?> selected=true<?php endif; ?>><?php _e('Pgsql 原生函数适配器') ?></option><?php endif; ?><?php if (_p('Pdo_Mysql')): ?><option value="Pdo_Mysql"<?php if('Pdo_Mysql' == $adapter): ?> selected=true<?php endif; ?>><?php _e('Pdo 驱动 Mysql 适配器') ?></option><?php endif; ?><?php if (_p('Pdo_SQLite')): ?><option value="Pdo_SQLite"<?php if('Pdo_SQLite' == $adapter): ?> selected=true<?php endif; ?>><?php _e('Pdo 驱动 SQLite 适配器 (SQLite 3.x)') ?></option><?php endif; ?><?php if (_p('Pdo_Pgsql')): ?><option value="Pdo_Pgsql"<?php if('Pdo_Pgsql' == $adapter): ?> selected=true<?php endif; ?>><?php _e('Pdo 驱动 PostgreSql 适配器') ?></option><?php endif; ?></select><p class="description"><?php _e('请根据您的数据库类型选择合适的适配器'); ?></p></li><?php require_once './install/' . $type . '.php'; ?><li><label class="typecho-label" for="dbPrefix"><?php _e('数据库前缀'); ?></label><input type="text" class="text" name="dbPrefix" id="dbPrefix" value="<?php _v('dbPrefix', 'typecho_'); ?>" /><p class="description"><?php _e('默认前缀是 "typecho_"'); ?></p></li></ul><script>var _select = document.config.dbAdapter;_select.onchange = function() {setTimeout("window.location.href = 'install.php?config&dbAdapter=" + this.value + "'; ",0);}</script><h2><?php _e('创建您的管理员帐号'); ?></h2><ul class="typecho-option"><li><label class="typecho-label" for="userUrl"><?php _e('网站地址'); ?></label><input type="text" name="userUrl" id="userUrl" class="text" value="<?php _v('userUrl', _u()); ?>" /><p class="description"><?php _e('这是程序自动匹配的网站路径, 如果不正确请修改它'); ?></p></li><li><label class="typecho-label" for="userName"><?php _e('用户名'); ?></label><input type="text" name="userName" id="userName" class="text" value="<?php _v('userName', 'admin'); ?>" /><p class="description"><?php _e('请填写您的用户名'); ?></p></li><li><label class="typecho-label" for="userPassword"><?php _e('登录密码'); ?></label><input type="password" name="userPassword" id="userPassword" class="text" value="<?php _v('userPassword'); ?>" /><p class="description"><?php _e('请填写您的登录密码, 如果留空系统将为您随机生成一个'); ?></p></li><li><label class="typecho-label" for="userMail"><?php _e('邮件地址'); ?></label><input type="text" name="userMail" id="userMail" class="text" value="<?php _v('userMail', 'webmaster@yourdomain.com'); ?>" /><p class="description"><?php _e('请填写一个您的常用邮箱'); ?></p></li></ul></div><input type="hidden" name="action" value="config" /><p class="submit"><button type="submit" class="primary"><?php _e('确认, 开始安装 »'); ?></button></p></form><?php else: ?><form method="post" action="?config"><h1 class="typecho-install-title"><?php _e('欢迎使用 Typecho'); ?></h1><div class="typecho-install-body"><h2><?php _e('安装说明'); ?></h2><p><strong><?php _e('本安装程序将自动检测服务器环境是否符合最低配置需求. 如果不符合, 将在上方出现提示信息, 请按照提示信息检查您的主机配置. 如果服务器环境符合要求, 将在下方出现 "开始下一步" 的按钮, 点击此按钮即可一步完成安装.'); ?></strong></p><h2><?php _e('许可及协议'); ?></h2><p><?php _e('Typecho 基于 <a href="http://www.gnu.org/copyleft/gpl.html">GPL</a> 协议发布,我们允许用户在 GPL 协议许可的范围内使用,拷贝,修改和分发此程序.您可以自由地将其用于商业以及非商业用途.'); ?></p><p><?php _e('Typecho 软件由其社区提供支持,核心开发团队负责维护程序日常开发工作以及新特性的制定.如果您遇到使用上的问题,程序中的 BUG,以及期许的新功能,欢迎您在社区中交流或者直接向我们贡献代码.对于贡献突出者,他的名字将出现在贡献者名单中.'); ?></p><h3><?php _e('此版本贡献者(排名不分先后)'); ?></h3><ol></ol><p><a href="http://typecho.org"><?php _e('查看所有贡献者'); ?></a></p></div><p class="submit"><button type="submit" class="primary"><?php _e('我准备好了, 开始下一步 »'); ?></button></p></form><?php endif; ?></div></div></div></div><?phpinclude 'admin/copyright.php';include 'admin/footer.php';?>
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。