一个相册管理插件:给 Typecho 1.3 做个顺手的相册后台

起因

博客的相册页一直靠一段纯文本格式维护:

[相册名]
标题,日期,缩略图地址,大图地址

每次加照片都要先传图、复制两个地址、再按逗号拼一行……麻烦,还容易把页面格式写坏。更早之前删了一次相册页,照片记录也全丢了。

所以给博客写了一个 Typecho 插件:PhotoAlbum。

它是什么

一个 Typecho 1.3 的相册管理插件,在后台完成相册和照片管理,自动维护相册页内容:

  • 新建 / 删除相册;
  • 多选上传,自动生成 800px 缩略图;
  • 单张改名 / 批量改名;
  • 拖拽排序(也保留上移、下移按钮);
  • 设为相册封面;
  • 删除照片 / 相册时可选「同时删除图片文件」;
  • 后台顶部「相册」快捷入口。

插件后台:相册管理

相册页效果

相册页

兼容性:

部分要求
后台管理任意 Typecho 1.3(PHP 8+),不依赖主题
前台相册页需要主题提供兼容的 page-photo.php 模板

安装与使用

  1. 把 PhotoAlbum/ 上传到 usr/plugins/;
  2. 后台 → 插件 → 启用「相册管理」;
  3. 点后台顶部的「相册」;
  4. 新建相册 → 多选上传照片;
  5. 前台访问 /photo.html(相册页 slug 用 photo)。

如果相册页不存在,插件后台会显示 「创建相册页」 按钮,一键创建(标题「相册」、slug photo、模板 page-photo.php),并把已有照片数据写回去。

几个实现细节

  • 不改核心、不改主题:插件只有 Plugin.php、admin.php、README,后台页面自带样式;
  • 数据独立存储:相册数据存在 usr/uploads/photoalbum.json,页面正文只是生成结果;删页重建、正文清空都能恢复;
  • 页面自动修复:删页重建后 slug 变成数字或 photo-html,插件会自动改回 photo、补模板、写回内容;
  • 安全:管理员登录校验 + 表单 token;上传时校验图片类型和大小;
  • 缩略图:GD 生成 800px 缩略图,GD 不可用时退回原图;
  • 删文件:只删 uploads 目录内、且没有被其他相册引用的图片,默认不勾选。

已知限制

  • 主题需要有兼容的 page-photo.php 模板;
  • 受主机上传限制(我这里是单文件 10M、整包 10M);
  • 「封面」目前是标记 + 移到第一张,ComBox 的相册标签页不显示封面缩略图(那需要改主题,暂未做);
  • 删除文件只处理插件上传目录内的图片。

下载

如果你也在用 Typecho,欢迎拿去用或继续改。

发表评论

评论 暂无评论

文章目录