功能简介

为 Typecho 后台提供插件和主题的上传安装与卸载管理功能。

核心功能

  • 插件上传安装:通过 ZIP 文件上传安装插件到 usr/plugins/ 目录
  • 主题上传安装:通过 ZIP 文件上传安装主题到 usr/themes/ 目录
  • 插件卸载:在后台一键卸载插件(自动先禁用再删除文件)
  • 主题卸载:在后台一键卸载主题(当前使用中的主题不可卸载)

系统要求

  • Typecho 1.2+
  • PHP 7.4+
  • PHP ZipArchive 扩展(用于 ZIP 文件处理)
  • 管理员权限

安装方法

  1. ThemePluginManager 目录上传到 usr/plugins/ 目录下
  2. 登录 Typecho 后台,进入「控制台 → 插件」
  3. 找到「ThemePluginManager」插件,点击「启用」
  4. 启用后,在后台左侧菜单会出现「扩展管理」菜单项
  5. 点击「插件与主题管理」进入管理面板

使用说明

上传安装插件

  1. 进入「扩展管理 → 插件与主题管理」
  2. 在「插件管理」选项卡下,点击「选择文件」选择插件的 ZIP 压缩包
  3. 点击「上传安装」按钮
  4. 安装成功后,前往「控制台 → 插件」页面启用新插件

上传安装主题

  1. 进入「扩展管理 → 插件与主题管理」
  2. 切换到「主题管理」选项卡
  3. 点击「选择文件」选择主题的 ZIP 压缩包
  4. 点击「上传安装」按钮
  5. 安装成功后,前往「控制台 → 外观」页面启用新主题

卸载插件

  1. 在「插件管理」选项卡下,找到要卸载的插件
  2. 点击「卸载」按钮
  3. 确认卸载操作
  4. 如果插件已启用,系统会自动先禁用再删除文件

卸载主题

  1. 在「主题管理」选项卡下,找到要卸载的主题
  2. 点击「卸载」按钮(当前正在使用的主题不可卸载)
  3. 确认卸载操作

ZIP 包结构要求

插件 ZIP 包

ZIP 文件必须包含以插件名命名的子目录,子目录中包含 Plugin.php:

PluginName.zip
└── PluginName/
    ├── Plugin.php
    └── ...

⚠️ 注意

不支持将 Plugin.php 直接放在 ZIP 根目录的扁平打包方式。
上传扁平结构的 ZIP 时会提示:请将插件文件放入以插件名命名的文件夹后再打包。

主题 ZIP 包

ZIP 文件必须包含以主题名命名的子目录,子目录中包含 index.php:

ThemeName.zip
└── ThemeName/
    ├── index.php
    └── ...

⚠️ 注意

不支持将 index.php 直接放在 ZIP 根目录的扁平打包方式。
上传扁平结构的 ZIP 时会提示:请将主题文件放入以主题名命名的文件夹后再打包。

安全说明

  • 所有操作需要管理员权限
  • 所有表单操作包含 CSRF Token 保护
  • ZIP 文件验证文件魔数(防止伪装文件)
  • 目录名仅允许字母、数字、下划线和连字符
  • 不允许卸载当前正在使用的插件(ThemePluginManager 自身)
  • 不允许卸载当前正在使用的主题

文件结构

ThemePluginManager/
├── Plugin.php    # 主插件文件(激活/停用/菜单注册)
├── Action.php    # 处理上传/卸载请求的 Action 类
├── panel.php     # 管理面板视图
└── README.md     # 说明文档

ThemePluginManager.zip