基于BadouCMS的批量导入文章插件
支持通过Excel/CSV批量导入文章到CMS系统,包括主表和扩展表数据
1. 导入功能实现
1.1 文件上传与解析


- 位置:
controller/Index.php:upload() - 支持格式:
.xlsx,.xls,.csv - 文件大小限制: 10MB
- 行数限制: 可配置(默认5000行)
1.2 字段映射机制
- 别名映射: 通过配置文件定义Excel表头与数据库字段的映射关系
- 扩展字段支持: 自动识别以
ext_开头的扩展字段 - 智能识别: 支持从表头提取字段描述信息,格式如:
ext_field(类型)[描述]
1.3 数据验证
- 必填字段验证: 栏目(scode)和标题(title)为必填项
- 栏目存在性验证: 支持栏目ID或栏目代码
- 日期格式验证: 按配置的日期格式进行验证
- 扩展字段验证: 根据字段类型进行相应验证(单选、多选、日期、文件等)
1.4 数据规范化
- 布尔字段处理: 将各种格式的布尔值(1/0, true/false, yes/no等)统一转换为1/0
- 日期格式化: 统一转换为
Y-m-d H:i:s格式 - 扩展字段格式化: 根据字段类型进行相应格式化处理
2. 导出功能实现
2.1 模板生成

- 位置:
controller/Index.php:template() - 动态模板: 根据选定栏目和模型动态生成Excel模板
- 字段提示: 为不同类型字段添加相应的使用提示
- 示例数据: 提供符合字段规范的示例数据
- 说明工作表: 生成详细的字段填写说明
2.2 模板特点
- 智能表头: 根据字段类型添加提示信息
- 扩展字段支持: 自动包含相关模型的扩展字段
- 多工作表: 包含数据表和说明表
3. 数据库操作
3.1 数据存储
- 主表:
cms_content- 存储文章基本信息 - 扩展表:
cms_content_ext- 存储扩展字段数据 - 事务处理: 使用数据库事务确保数据一致性
3.2 扩展字段处理
- 动态获取: 根据模型代码动态获取扩展字段定义
- 类型映射: 将数据库字段类型映射到前端组件类型
- 选项解析: 解析字段的可选值配置
4. 配置管理
4.1 可配置项
- 默认语言代码:
importdoc_default_acode - 默认发布状态:
importdoc_default_status - 默认作者:
importdoc_default_author - 日期格式:
importdoc_date_format - 允许的文件扩展名:
importdoc_allowed_exts - 最大导入行数:
importdoc_max_rows - 扩展字段列表:
importdoc_ext_fields - 字段别名映射:
importdoc_alias_map
4.2 配置特点
- JSON格式: 字段别名映射使用JSON格式存储
- 灵活配置: 支持根据需求调整各种参数
- 验证规则: 配置项包含相应的验证规则
