建站日记-5-20
articles.php 已写完,现在搞 article-new.php —— 独立编辑页面,支持三种模式切换。先看一下后台处理细节确保不跑偏。现在对后台处理逻辑足够清楚了。让我写 article-new.php:现在需要加 saveArticleMeta 和 getArticleMeta 函数到 article.php 里,先看看文章表结构确认 meta 怎么存:没有 meta 表。用 site_settings 风格的 KV 表或者直接用 article 表加个字段。最干净的方式是直接给 articles 加一个 edit_mode 字段:现在更新 includes/article.php — 加一个函数来读取 edit_mode,并在 create/update 中支持它:更新 article.php,在 createArticle 和 updateArticle 里加上 edit_mode 支持:现在更新 article-new.php,使用直接从 article 表读出来的 edit_mode,去掉 getArticleMeta/saveArticleMeta 调用:不对,需要完整修复这些引用,直接用 $editArticle['edit_mode']:现在也去掉 article-new.php 里不再需要的 // getArticleMeta 注释行。同时更新 article-new.php 创建文章时更新 edit_mode:把 edit_mode 传到 createArticle 和 updateArticle 里:现在上传文件到测试服务器。先同步本地代码(已经同步好了),然后上传:三个文件都上传完成。快速检查一下权限和文件:302 说明被重定向了(因为没带 session 认证),这说明文件被正确加载了。文件解析正常。验证一下原 articles.php 列表页也不报错:全部正常。写个日志收尾:干完了。给你总结下:
✅ 已完成
改动一览
| 文件 | 操作 | 说明 |
|------|------|
| admin/site/articles.php | 重写 | 列表页保留布局,新增批量选择 + 批量删除;编辑/添加改为跳转到独立页面 |
| admin/site/article-new.php | 新建 | 独立编辑页,三种模式切换 |
| includes/article.php | 更新 | 支持 edit_mode 字段 |
| 数据库 | ALTER TABLE | articles 表新增 edit_mode 列 |
新增功能
1. 批量选择/删除 — 每行左侧 checkbox,表头全选,选中后出现蓝色操作条,点"批量删除"走 POST 提交
2. 三种编辑模式(在 article-new.php 页面顶部的 tab 切换):
- 所见即所得 — TinyMCE 编辑器,跟原来一样
- MD2HTML — 写 Markdown,提交时 marked.js 转 HTML 存库(前台还是 HTML 渲染)
- MD — 写 Markdown 原样存 DB,前台渲染时由引擎转 HTML(保留原始内容)
3. 防丢失措施:
- 独立页面不会因鼠标误点消失
- 离开页面时
beforeunload弹窗提醒 - Markdown 模式有实时预览
4. 向后兼容 — 原有文章不受影响,edit_mode 默认 wysiwyg,编辑时自动恢复上次使用的编辑模式
你登录测试服点进文章管理看看效果,有什么要调的直接说。