我的博客

分享技术与思想的点滴

建站日记-5-20

articles.php 已写完,现在搞 article-new.php —— 独立编辑页面,支持三种模式切换。先看一下后台处理细节确保不跑偏。现在对后台处理逻辑足够清楚了。让我写 article-new.php:现在需要加 saveArticleMetagetArticleMeta 函数到 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,编辑时自动恢复上次使用的编辑模式

你登录测试服点进文章管理看看效果,有什么要调的直接说。