mirror of
https://github.com/zhang-pu/tblog.git
synced 2026-10-02 23:59:29 +08:00
Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a82fe4ac21 |
16 changed files with 192 additions and 98 deletions
50
CHANGELOG.md
50
CHANGELOG.md
|
|
@ -4,7 +4,31 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## [v1.2.0] - 2024-05-31
|
## [v1.2.1] - 2026-06-03
|
||||||
|
|
||||||
|
### 🐛 Bug 修复
|
||||||
|
|
||||||
|
- ✅ 修复发布/编辑文章时 `mysqli_stmt::bind_param(): Argument #3 cannot be passed by reference` 致命错误
|
||||||
|
- 原因:`bind_param()` 第三个参数传入了表达式 `$existing['id'] ?? 0`,PHP 7.4+ 不允许以引用方式传递表达式
|
||||||
|
- 修复:先赋值到变量 `$exclude_id`,再传给 `bind_param()`
|
||||||
|
- ✅ 修复 `get_post_by_id()` 在 ID 不存在时返回 `null`,后续 `$post['xxx']` 触发 PHP 8 warning
|
||||||
|
- 修复:找不到记录时返回空数组 `[]`
|
||||||
|
- ✅ 修复 `get_category_by_id()` 同上问题
|
||||||
|
- ✅ 修复 `admin/post.php` 编辑文章时 `$edit_post` 未做 null 防御
|
||||||
|
- ✅ 修复 `admin/category.php` 编辑分类时 `$edit_category` 未做 null 防御
|
||||||
|
|
||||||
|
### ✨ 新增
|
||||||
|
|
||||||
|
- ✅ 新增 `TBLOG_VERSION` 常量(`include/db.php`),统一版本号管理
|
||||||
|
- ✅ 管理后台「系统信息」页面新增 TBlog 版本显示
|
||||||
|
|
||||||
|
### 🔧 改进
|
||||||
|
|
||||||
|
- 防御性编程:`fetch_assoc()` 返回 null 时统一改为返回 `[]`,避免上层调用链产生 warning
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## [v1.2.0] - 2026-05-31
|
||||||
|
|
||||||
### 定时任务 + 远程备份
|
### 定时任务 + 远程备份
|
||||||
|
|
||||||
|
|
@ -34,13 +58,25 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 待办
|
## 升级说明
|
||||||
|
|
||||||
- [ ] 多 PHP 版本切换
|
### 从 v1.2.0 升级到 v1.2.1
|
||||||
- [ ] Node.js 支持
|
|
||||||
- [ ] nginx 日志查看器
|
无破坏性改动,直接覆盖 PHP 文件即可:
|
||||||
- [ ] 插件系统
|
|
||||||
|
```bash
|
||||||
|
# 备份
|
||||||
|
cp -r /www/wwwroot/your-blog /path/to/backup/your-blog.v1.2.0
|
||||||
|
|
||||||
|
# 上传新文件覆盖(保留 config.php)
|
||||||
|
unzip -o TBlog_v1.2.1.zip -d /www/wwwroot/your-blog/
|
||||||
|
|
||||||
|
# 修复权限
|
||||||
|
chown -R www:www /www/wwwroot/your-blog
|
||||||
|
```
|
||||||
|
|
||||||
|
无需执行 SQL 迁移。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
> 关注 GitHub 仓库获取最新更新:https://github.com/tblog-cn/tblog
|
> 关注 GitHub 仓库获取最新更新:https://github.com/zhang-pu/tblog
|
||||||
|
|
|
||||||
4
LICENSE
4
LICENSE
|
|
@ -1,6 +1,6 @@
|
||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2024 TBlog
|
Copyright (c) 2024-2026 Zhang Pu
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|
@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
SOFTWARE.
|
SOFTWARE.
|
||||||
|
|
|
||||||
108
README.md
108
README.md
|
|
@ -2,11 +2,14 @@
|
||||||
|
|
||||||
一个简洁、优雅的开源博客系统,基于 PHP + MySQL 开发。
|
一个简洁、优雅的开源博客系统,基于 PHP + MySQL 开发。
|
||||||
|
|
||||||
🌐 网址:https://tblog.cn
|
🌐 官网:https://tblog.cn
|
||||||
|
💻 源码:https://github.com/zhang-pu/tblog
|
||||||
|
📦 Releases:https://github.com/zhang-pu/tblog/releases
|
||||||
|
📝 更新日志:[CHANGELOG.md](./CHANGELOG.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 特性
|
## ✨ 特性
|
||||||
|
|
||||||
- ✏️ 富文本编辑器,写作体验流畅
|
- ✏️ 富文本编辑器,写作体验流畅
|
||||||
- 🎨 两套主题可选(Flow 浅色 / Magine 深色)
|
- 🎨 两套主题可选(Flow 浅色 / Magine 深色)
|
||||||
|
|
@ -18,18 +21,18 @@
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 环境要求
|
## 📋 环境要求
|
||||||
|
|
||||||
- PHP >= 7.0
|
- PHP >= 7.0(推荐 7.4 / 8.0+)
|
||||||
- MySQL >= 5.6
|
- MySQL >= 5.6(推荐 5.7 / 8.0)
|
||||||
- mysqli 扩展
|
- mysqli 扩展
|
||||||
- PDO 扩展(可选)
|
- PDO 扩展(可选)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 安装
|
## 🚀 快速安装
|
||||||
|
|
||||||
### 方式一:向导安装
|
### 方式一:向导安装(推荐)
|
||||||
|
|
||||||
1. 解压源码,上传至网站目录
|
1. 解压源码,上传至网站目录
|
||||||
2. 访问 `http://你的域名/install.php`
|
2. 访问 `http://你的域名/install.php`
|
||||||
|
|
@ -52,7 +55,7 @@ INSERT INTO settings (`key`, value) VALUES ('admin_hash', '$2y$10$YOUR_HASH_HERE
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 目录结构
|
## 📁 目录结构
|
||||||
|
|
||||||
```
|
```
|
||||||
tblog/
|
tblog/
|
||||||
|
|
@ -66,7 +69,7 @@ tblog/
|
||||||
│ ├── post.php 文章管理
|
│ ├── post.php 文章管理
|
||||||
│ └── settings.php 系统设置
|
│ └── settings.php 系统设置
|
||||||
├── include/ 核心类库
|
├── include/ 核心类库
|
||||||
│ ├── db.php 数据库连接
|
│ ├── db.php 数据库连接 + 版本常量
|
||||||
│ ├── router.php URL 路由
|
│ ├── router.php URL 路由
|
||||||
│ ├── function.common.php
|
│ ├── function.common.php
|
||||||
│ ├── function.post.php
|
│ ├── function.post.php
|
||||||
|
|
@ -80,39 +83,106 @@ tblog/
|
||||||
├── index.php 入口文件
|
├── index.php 入口文件
|
||||||
├── config.php.new 配置文件模板
|
├── config.php.new 配置文件模板
|
||||||
├── install.php 安装向导
|
├── install.php 安装向导
|
||||||
└── install.sql 数据库建表脚本
|
├── install.sql 数据库建表脚本
|
||||||
|
├── CHANGELOG.md 更新日志
|
||||||
|
├── README.md 本文件
|
||||||
|
└── LICENSE MIT 协议
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 管理后台
|
## 🔐 管理后台
|
||||||
|
|
||||||
访问 `http://你的域名/admin/`,使用安装时设置的管理员账号登录。
|
访问 `http://你的域名/admin/`,使用安装时设置的管理员账号登录。
|
||||||
|
|
||||||
|
> 忘记密码?使用 [reset.zip](https://tblog.cn/reset.zip) 工具一键重置。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 主题切换
|
## 🎨 主题切换
|
||||||
|
|
||||||
文章可独立选择模板(Flow / Magine),全站默认模板可在后台「设置」中修改。
|
文章可独立选择模板(Flow / Magine),全站默认模板可在后台「设置」中修改。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 开源协议
|
## 🔧 系统设置
|
||||||
|
|
||||||
MIT License
|
登录后台 → 「设置」可配置:
|
||||||
|
|
||||||
|
- 站点名称 / 站点描述
|
||||||
|
- 默认主题(flow / magine)
|
||||||
|
- 每页文章数
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 更新日志
|
## 🐛 常见问题
|
||||||
|
|
||||||
详见 [CHANGELOG.md](./CHANGELOG.md)
|
### 500 Internal Server Error
|
||||||
|
- 检查 `config.php` 数据库配置
|
||||||
|
- 确认 `config.php` 可写(安装时)
|
||||||
|
- 查看 PHP 错误日志:`/var/log/php*-fpm.log`
|
||||||
|
|
||||||
|
### 主题不生效
|
||||||
|
- 硬刷新浏览器:`Ctrl+Shift+R` / `Cmd+Shift+R`
|
||||||
|
- 清除 CDN/浏览器缓存
|
||||||
|
|
||||||
|
### 性能优化
|
||||||
|
- 启用 PHP OPcache
|
||||||
|
- 用 CDN 缓存静态资源
|
||||||
|
- 文章数 > 1000 时考虑分页
|
||||||
|
|
||||||
|
详见 [FAQ 文档](https://tblog.cn/docs/faq.html)。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 问题反馈
|
## 📦 升级
|
||||||
|
|
||||||
如有 Bug 或建议,欢迎提交 Issue。
|
```bash
|
||||||
|
# 1. 备份
|
||||||
|
cp -r /www/wwwroot/your-blog /path/to/backup/
|
||||||
|
|
||||||
|
# 2. 覆盖新文件(保留 config.php 和 uploads/)
|
||||||
|
rsync -av --exclude='config.php' --exclude='uploads/' \
|
||||||
|
TBlog_v1.2.1/ /www/wwwroot/your-blog/
|
||||||
|
|
||||||
|
# 3. 修复权限
|
||||||
|
chown -R www:www /www/wwwroot/your-blog
|
||||||
|
```
|
||||||
|
|
||||||
|
完整更新日志:[CHANGELOG.md](./CHANGELOG.md)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**TBlog** — 简洁而不简单。
|
## 🛡 安全建议
|
||||||
|
|
||||||
|
- 安装后立即删除 `install.php` 和 `install.sql`
|
||||||
|
- 修改默认管理员密码为强密码(12 位以上)
|
||||||
|
- 不要将 `config.php` 设为 777 权限(推荐 644)
|
||||||
|
- 定期升级到最新版本
|
||||||
|
- 启用 HTTPS(Let's Encrypt 免费)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🤝 贡献
|
||||||
|
|
||||||
|
欢迎提交 Issue 和 Pull Request!
|
||||||
|
|
||||||
|
- Bug 报告:https://github.com/zhang-pu/tblog/issues
|
||||||
|
- 功能建议:https://github.com/zhang-pu/tblog/issues
|
||||||
|
- 代码贡献:Fork → 修改 → Pull Request
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📄 开源协议
|
||||||
|
|
||||||
|
MIT License - 详见 [LICENSE](./LICENSE)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 👨💻 作者
|
||||||
|
|
||||||
|
**Zhang Pu** - [https://zhangpu.dev](https://zhangpu.dev)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**TBlog** — 简洁而不简单。
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
|
|
||||||
// Load category for editing
|
// Load category for editing
|
||||||
if (!empty($_GET['edit'])) {
|
if (!empty($_GET['edit'])) {
|
||||||
$edit_category = get_category_by_id(intval($_GET['edit']));
|
$edit_category = get_category_by_id(intval($_GET['edit'])) ?? [];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Handle delete
|
// Handle delete
|
||||||
|
|
|
||||||
|
|
@ -39,14 +39,15 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
$message = '<div class="error">标题和内容不能为空</div>';
|
$message = '<div class="error">标题和内容不能为空</div>';
|
||||||
} else {
|
} else {
|
||||||
// Check slug uniqueness (only if slug changed or new post)
|
// Check slug uniqueness (only if slug changed or new post)
|
||||||
$existing = null;
|
$existing = [];
|
||||||
if (!empty($_POST['id'])) {
|
if (!empty($_POST['id'])) {
|
||||||
$existing = get_post_by_id(intval($_POST['id']));
|
$existing = get_post_by_id(intval($_POST['id'])) ?? [];
|
||||||
}
|
}
|
||||||
$slug_check = $data['slug'];
|
$slug_check = $data['slug'];
|
||||||
$db = get_db();
|
$db = get_db();
|
||||||
|
$exclude_id = $existing['id'] ?? 0;
|
||||||
$stmt = $db->prepare("SELECT id FROM posts WHERE slug = ? AND deleted_at IS NULL AND id != ?");
|
$stmt = $db->prepare("SELECT id FROM posts WHERE slug = ? AND deleted_at IS NULL AND id != ?");
|
||||||
$stmt->bind_param('si', $slug_check, $existing['id'] ?? 0);
|
$stmt->bind_param('si', $slug_check, $exclude_id);
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
$res = $stmt->get_result();
|
$res = $stmt->get_result();
|
||||||
if ($res->num_rows > 0) {
|
if ($res->num_rows > 0) {
|
||||||
|
|
@ -64,7 +65,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($_GET['edit'])) {
|
if (!empty($_GET['edit'])) {
|
||||||
$edit_post = get_post_by_id(intval($_GET['edit']));
|
$edit_post = get_post_by_id(intval($_GET['edit'])) ?? [];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!empty($_GET['delete'])) {
|
if (!empty($_GET['delete'])) {
|
||||||
|
|
|
||||||
|
|
@ -130,6 +130,10 @@ $admin_user = get_admin_user();
|
||||||
|
|
||||||
<h2 style="margin-top: 40px;">系统信息</h2>
|
<h2 style="margin-top: 40px;">系统信息</h2>
|
||||||
<table class="table">
|
<table class="table">
|
||||||
|
<tr>
|
||||||
|
<td>TBlog 版本</td>
|
||||||
|
<td><?php echo TBLOG_VERSION; ?></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>PHP 版本</td>
|
<td>PHP 版本</td>
|
||||||
<td><?php echo PHP_VERSION; ?></td>
|
<td><?php echo PHP_VERSION; ?></td>
|
||||||
|
|
|
||||||
22
config.php
Normal file
22
config.php
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* ZhangPu Blog - Configuration
|
||||||
|
*/
|
||||||
|
define('DB_HOST', 'localhost');
|
||||||
|
define('DB_PORT', 3306);
|
||||||
|
define('DB_USER', 'zhangpu_blog');
|
||||||
|
define('DB_PASS', 'rHzj9EWStT6xCcMD');
|
||||||
|
define('DB_NAME', 'zhangpu_blog');
|
||||||
|
define('DB_PREFIX', '');
|
||||||
|
|
||||||
|
// Site settings
|
||||||
|
define('SITE_NAME', 'ZhangPu Blog');
|
||||||
|
|
||||||
|
// Path constants
|
||||||
|
define('ROOT_PATH', __DIR__ . '/');
|
||||||
|
define('INCLUDE_PATH', ROOT_PATH . 'include/');
|
||||||
|
define('TEMPLATE_PATH', ROOT_PATH . 'templates/');
|
||||||
|
|
||||||
|
// Admin credentials stored hashed in DB; fall back to env/local config if needed
|
||||||
|
// To set initial password: go to /admin/settings and change it there
|
||||||
|
session_start();
|
||||||
|
|
@ -1,18 +0,0 @@
|
||||||
<?php
|
|
||||||
/**
|
|
||||||
* TBlog - Configuration Template
|
|
||||||
* 复制此文件为 config.php 并填写数据库信息
|
|
||||||
*/
|
|
||||||
define('DB_HOST', 'localhost');
|
|
||||||
define('DB_PORT', 3306);
|
|
||||||
define('DB_USER', 'your_db_user');
|
|
||||||
define('DB_PASS', 'your_db_password');
|
|
||||||
define('DB_NAME', 'tblog');
|
|
||||||
define('DB_PREFIX', '');
|
|
||||||
|
|
||||||
// Path constants
|
|
||||||
define('ROOT_PATH', __DIR__ . '/');
|
|
||||||
define('INCLUDE_PATH', ROOT_PATH . 'include/');
|
|
||||||
define('TEMPLATE_PATH', ROOT_PATH . 'templates/');
|
|
||||||
|
|
||||||
session_start();
|
|
||||||
|
|
@ -3,6 +3,9 @@
|
||||||
* Database Connection
|
* Database Connection
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// TBlog 版本常量
|
||||||
|
define('TBLOG_VERSION', '1.2.1');
|
||||||
|
|
||||||
function get_db() {
|
function get_db() {
|
||||||
static $db = null;
|
static $db = null;
|
||||||
if ($db === null) {
|
if ($db === null) {
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,8 @@ function get_category_by_id($id) {
|
||||||
$stmt = $db->prepare("SELECT * FROM categories WHERE id = ?");
|
$stmt = $db->prepare("SELECT * FROM categories WHERE id = ?");
|
||||||
$stmt->bind_param('i', $id);
|
$stmt->bind_param('i', $id);
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
return $stmt->get_result()->fetch_assoc();
|
$row = $stmt->get_result()->fetch_assoc();
|
||||||
|
return $row ?? [];
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_category($data) {
|
function create_category($data) {
|
||||||
|
|
|
||||||
|
|
@ -81,7 +81,8 @@ function get_post_by_id($id) {
|
||||||
$stmt = $db->prepare("SELECT * FROM posts WHERE id = ?");
|
$stmt = $db->prepare("SELECT * FROM posts WHERE id = ?");
|
||||||
$stmt->bind_param('i', $id);
|
$stmt->bind_param('i', $id);
|
||||||
$stmt->execute();
|
$stmt->execute();
|
||||||
return $stmt->get_result()->fetch_assoc();
|
$row = $stmt->get_result()->fetch_assoc();
|
||||||
|
return $row ?? [];
|
||||||
}
|
}
|
||||||
|
|
||||||
function create_post($data) {
|
function create_post($data) {
|
||||||
|
|
|
||||||
14
install.php
14
install.php
|
|
@ -1,6 +1,6 @@
|
||||||
<?php
|
<?php
|
||||||
/**
|
/**
|
||||||
* TBlog - Installation Wizard
|
* ZhangPu Blog - Installation Wizard
|
||||||
*/
|
*/
|
||||||
session_start();
|
session_start();
|
||||||
|
|
||||||
|
|
@ -54,7 +54,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && $step === 2) {
|
||||||
if ($step === 3) {
|
if ($step === 3) {
|
||||||
$config_content = "<?php
|
$config_content = "<?php
|
||||||
/**
|
/**
|
||||||
* TBlog - Configuration
|
* ZhangPu Blog - Configuration
|
||||||
*/
|
*/
|
||||||
define('DB_HOST', '{$_SESSION['db_host']}');
|
define('DB_HOST', '{$_SESSION['db_host']}');
|
||||||
define('DB_PORT', {$_SESSION['db_port']});
|
define('DB_PORT', {$_SESSION['db_port']});
|
||||||
|
|
@ -100,7 +100,7 @@ if ($step === 5) {
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
<title>安装向导 - TBlog</title>
|
<title>安装向导 - ZhangPu Blog</title>
|
||||||
<style>
|
<style>
|
||||||
* { margin: 0; padding: 0; box-sizing: border-box; }
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
||||||
body {
|
body {
|
||||||
|
|
@ -293,7 +293,7 @@ if ($step === 5) {
|
||||||
<body>
|
<body>
|
||||||
<div class="installer">
|
<div class="installer">
|
||||||
<div class="installer-header">
|
<div class="installer-header">
|
||||||
<h1>🌿 TBlog 安装向导</h1>
|
<h1>🌿 ZhangPu Blog 安装向导</h1>
|
||||||
<p>一个简洁优雅的博客系统</p>
|
<p>一个简洁优雅的博客系统</p>
|
||||||
<div class="progress-bar">
|
<div class="progress-bar">
|
||||||
<div class="progress-step <?php echo $step >= 1 ? 'completed' : ''; ?>" data-step="1"></div>
|
<div class="progress-step <?php echo $step >= 1 ? 'completed' : ''; ?>" data-step="1"></div>
|
||||||
|
|
@ -370,7 +370,7 @@ if ($step === 5) {
|
||||||
|
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="db_name">数据库名称</label>
|
<label for="db_name">数据库名称</label>
|
||||||
<input type="text" name="db_name" id="db_name" value="<?php echo e($_SESSION['db_name'] ?? 'tblog'); ?>" required>
|
<input type="text" name="db_name" id="db_name" value="<?php echo e($_SESSION['db_name'] ?? 'zhangpu_blog'); ?>" required>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="buttons">
|
<div class="buttons">
|
||||||
|
|
@ -396,7 +396,7 @@ if ($step === 5) {
|
||||||
<?php elseif ($step === 4): ?>
|
<?php elseif ($step === 4): ?>
|
||||||
<h2>第四步:安装完成</h2>
|
<h2>第四步:安装完成</h2>
|
||||||
|
|
||||||
<div class="success">🎉 恭喜!TBlog 已安装成功!</div>
|
<div class="success">🎉 恭喜!ZhangPu Blog 已安装成功!</div>
|
||||||
|
|
||||||
<div class="features">
|
<div class="features">
|
||||||
<strong>默认管理员信息:</strong>
|
<strong>默认管理员信息:</strong>
|
||||||
|
|
@ -418,7 +418,7 @@ if ($step === 5) {
|
||||||
<?php elseif ($step === 5): ?>
|
<?php elseif ($step === 5): ?>
|
||||||
<div class="text-center">
|
<div class="text-center">
|
||||||
<h2>🎉 安装完成!</h2>
|
<h2>🎉 安装完成!</h2>
|
||||||
<p class="mt-4">感谢使用 TBlog</p>
|
<p class="mt-4">感谢使用 ZhangPu Blog</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="buttons" style="justify-content: center; margin-top: 30px;">
|
<div class="buttons" style="justify-content: center; margin-top: 30px;">
|
||||||
|
|
|
||||||
|
|
@ -2,27 +2,14 @@
|
||||||
/**
|
/**
|
||||||
* Flow Template - Footer
|
* Flow Template - Footer
|
||||||
*/
|
*/
|
||||||
$site_name = get_setting('site_name', 'TBlog');
|
$site_name = get_setting('site_name', '张璞博客');
|
||||||
$github_url = 'https://github.com/tblog-cn/tblog';
|
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<footer class="site-footer">
|
<footer class="site-footer">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="footer-links">
|
<p>© <?php echo date('Y'); ?> <?php echo e($site_name); ?> · Apache 2.0</p>
|
||||||
<a href="https://tblog.cn" target="_blank">TBlog</a>
|
|
||||||
<span class="sep">·</span>
|
|
||||||
<a href="<?php echo $github_url; ?>" target="_blank" title="GitHub">
|
|
||||||
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" style="vertical-align:middle">
|
|
||||||
<path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/>
|
|
||||||
</svg>
|
|
||||||
开源
|
|
||||||
</a>
|
|
||||||
<span class="sep">·</span>
|
|
||||||
<a href="https://github.com/tblog-cn/tblog/releases" target="_blank">更新日志</a>
|
|
||||||
</div>
|
|
||||||
<p>© <?php echo date('Y'); ?> <?php echo e($site_name); ?> · MIT License</p>
|
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script>
|
<script>
|
||||||
|
|
@ -32,4 +19,4 @@ $github_url = 'https://github.com/tblog-cn/tblog';
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -7,8 +7,8 @@ require_once __DIR__ . '/../../config.php';
|
||||||
require_once INCLUDE_PATH . 'function.common.php';
|
require_once INCLUDE_PATH . 'function.common.php';
|
||||||
require_once INCLUDE_PATH . 'function.category.php';
|
require_once INCLUDE_PATH . 'function.category.php';
|
||||||
|
|
||||||
$site_name = get_setting('site_name', 'TBlog');
|
$site_name = get_setting('site_name', '张璞博客');
|
||||||
$site_description = get_setting('site_description', '一个简洁优雅的开源博客系统');
|
$site_description = get_setting('site_description', '一个简洁优雅的博客');
|
||||||
$categories = get_categories();
|
$categories = get_categories();
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|
@ -39,4 +39,4 @@ $categories = get_categories();
|
||||||
</header>
|
</header>
|
||||||
<main class="main-content">
|
<main class="main-content">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="content-wrapper">
|
<div class="content-wrapper">
|
||||||
|
|
|
||||||
|
|
@ -2,27 +2,14 @@
|
||||||
/**
|
/**
|
||||||
* Magine Template - Footer (Dark Theme)
|
* Magine Template - Footer (Dark Theme)
|
||||||
*/
|
*/
|
||||||
$site_name = get_setting('site_name', 'TBlog');
|
$site_name = get_setting('site_name', '张璞博客');
|
||||||
$github_url = 'https://github.com/tblog-cn/tblog';
|
|
||||||
?>
|
?>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
<footer class="site-footer">
|
<footer class="site-footer">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="footer-links">
|
<p>© <?php echo date('Y'); ?> <?php echo e($site_name); ?> · Apache 2.0</p>
|
||||||
<a href="https://tblog.cn" target="_blank">TBlog</a>
|
|
||||||
<span class="sep">·</span>
|
|
||||||
<a href="<?php echo $github_url; ?>" target="_blank" title="GitHub">
|
|
||||||
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" style="vertical-align:middle">
|
|
||||||
<path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/>
|
|
||||||
</svg>
|
|
||||||
开源
|
|
||||||
</a>
|
|
||||||
<span class="sep">·</span>
|
|
||||||
<a href="https://github.com/tblog-cn/tblog/releases" target="_blank">更新日志</a>
|
|
||||||
</div>
|
|
||||||
<p>© <?php echo date('Y'); ?> <?php echo e($site_name); ?> · MIT License</p>
|
|
||||||
</div>
|
</div>
|
||||||
</footer>
|
</footer>
|
||||||
<script>
|
<script>
|
||||||
|
|
@ -32,4 +19,4 @@ $github_url = 'https://github.com/tblog-cn/tblog';
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -6,8 +6,8 @@ require_once __DIR__ . '/../../config.php';
|
||||||
require_once INCLUDE_PATH . 'function.common.php';
|
require_once INCLUDE_PATH . 'function.common.php';
|
||||||
require_once INCLUDE_PATH . 'function.category.php';
|
require_once INCLUDE_PATH . 'function.category.php';
|
||||||
|
|
||||||
$site_name = get_setting('site_name', 'TBlog');
|
$site_name = get_setting('site_name', '张璞博客');
|
||||||
$site_description = get_setting('site_description', '一个简洁优雅的开源博客系统');
|
$site_description = get_setting('site_description', '一个简洁优雅的博客');
|
||||||
$categories = get_categories();
|
$categories = get_categories();
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|
@ -37,4 +37,4 @@ $categories = get_categories();
|
||||||
</header>
|
</header>
|
||||||
<main class="main-content">
|
<main class="main-content">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="content-wrapper">
|
<div class="content-wrapper">
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue