EMLOG博客代码解读(7)、 admin目录article_save.php文件解读
星沙 • 2024-02-05 23:40 • 16 次点击 •
这段PHP代码是EMLOG博客管理系统中处理文章保存和更新的部分。它允许用户创建新文章或编辑现有文章,并提供了草稿保存、自动摘要生成、文章发布等功能。以下是对代码的详细解读:
-
全局配置和模型初始化:
require_once 'globals.php';
:包含全局配置文件。- 初始化日志(Log_Model)和标签(Tag_Model)模型。
-
获取POST请求参数:
- 获取文章标题、发布日期、分类、标签、内容、摘要、别名、置顶状态、排序操作、允许评论、密码保护、模板、封面、链接、作者、是否隐藏、博客ID、是否直接发布、自动摘要等参数。
-
自动生成摘要:
- 如果启用了自动摘要功能,使用Parsedown库解析文章内容并提取摘要。
-
处理发布状态:
- 如果用户选择了直接发布文章,将
ishide
设置为不隐藏('n')。
- 如果用户选择了直接发布文章,将
-
检查别名冲突:
- 如果提供了别名,检查是否与现有文章冲突。
-
构建文章数据数组:
- 将所有文章信息组装成一个数组,包括标题、内容、摘要等。
-
用户权限检查:
- 如果用户是普通用户,且系统设置了文章审核开关,将文章设置为待审核状态('n')。
-
文章发布限制:
- 如果用户是作家,检查当天发布文章的数量是否超过限制。
-
更新或创建文章:
- 如果提供了博客ID,更新现有文章;否则,创建新文章。
- 更新或添加标签。
-
更新缓存:
- 更新文章缓存。
-
执行动作钩子:
- 执行
save_log
动作钩子,可能用于记录日志或执行其他操作。
- 执行
-
异步保存:
- 如果操作是
autosave
,直接退出并返回文章ID。
- 如果操作是
-
保存草稿:
- 如果文章被设置为隐藏(草稿),重定向到草稿列表页面。
-
文章发布:
- 如果用户选择了直接发布,并且用户有编辑权限,重定向到文章列表页面。
- 如果用户没有编辑权限,发送新文章邮件通知。
-
编辑文章:
- 如果操作是编辑文章,重定向回文章编辑页面,并显示保存成功的提示。
这段代码提供了一个完整的文章编辑和发布流程,包括数据验证、权限控制、缓存更新等。通过这些功能,用户可以方便地管理自己的博客文章。
扫描二维码,在手机上阅读