jzkf/yii2-summernote
Composer 安装命令:
composer require jzkf/yii2-summernote
包简介
Yii2 widget for Summernote WYSIWYG editor with Bootstrap 5 support and image upload functionality
README 文档
README
Yii2 widget for Summernote - A Super Simple WYSIWYG Editor on Bootstrap.
安装
通过 Composer 安装:
composer require jzkf/yii2-summernote
功能特性
- ✅ 支持 Bootstrap 5
- ✅ 中文语言包(默认)
- ✅ 图片上传功能(支持多图上传)
- ✅ 表单验证前自动保存内容
- ✅ 完全可配置的工具栏和选项
- ✅ 支持 ActiveForm 集成
使用方法
在 ActiveForm 中使用
use jzkf\summernote\widgets\Summernote; <?= $form->field($model, 'content')->widget(Summernote::class, [ 'clientOptions' => [ 'height' => 300, 'toolbar' => [ ['style', ['style']], ['font', ['bold', 'italic', 'underline', 'clear']], ['fontname', ['fontname']], ['fontsize', ['fontsize']], ['color', ['color']], ['para', ['ul', 'ol', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture', 'video']], ['view', ['fullscreen', 'codeview', 'help']], ], ], ]) ?>
独立使用
use jzkf\summernote\widgets\Summernote; <?= Summernote::widget([ 'name' => 'content', 'value' => $content, 'options' => ['id' => 'content-editor'], 'clientOptions' => [ 'height' => 400, ], ]) ?>
配置图片上传
<?= Summernote::widget([ 'model' => $model, 'attribute' => 'content', 'uploadUrl' => '/filemanager/editor/summernote-upload', // 图片上传地址 'clientOptions' => [ 'height' => 300, ], ]) ?>
设置语言
<?= Summernote::widget([ 'model' => $model, 'attribute' => 'content', 'language' => 'zh-CN', // 默认中文,支持所有 Summernote 支持的语言 'clientOptions' => [ 'height' => 300, ], ]) ?>
配置选项
Widget 选项
| 选项 | 类型 | 默认值 | 说明 |
|---|---|---|---|
model |
\yii\base\Model | null | 模型对象(用于 ActiveForm) |
attribute |
string | null | 属性名称(用于 ActiveForm) |
name |
string | null | 输入框 name 属性 |
value |
string | null | 输入框当前值 |
options |
array | [] | HTML 输入框选项 |
clientOptions |
array | [] | Summernote 客户端配置选项 |
uploadUrl |
string | '/filemanager/editor/summernote-upload' | 图片上传地址 |
language |
string | 'zh-CN' | 语言代码 |
triggerSaveOnBeforeValidateForm |
bool | true | 是否在表单验证前自动保存内容 |
Summernote 客户端选项
常用的 clientOptions 配置:
'clientOptions' => [ 'height' => 300, // 编辑器高度 'lang' => 'zh-CN', // 语言 'toolbar' => [ // 工具栏配置 ['style', ['style']], ['font', ['bold', 'italic', 'underline', 'clear']], ['fontname', ['fontname']], ['fontsize', ['fontsize']], ['color', ['color']], ['para', ['ul', 'ol', 'paragraph']], ['table', ['table']], ['insert', ['link', 'picture', 'video']], ['view', ['fullscreen', 'codeview', 'help']], ], 'placeholder' => '请输入内容...', // 占位符 'focus' => true, // 自动聚焦 'dialogsInBody' => true, // 对话框在 body 中 'disableDragAndDrop' => false, // 禁用拖拽 ]
更多选项请参考 Summernote 官方文档。
图片上传
Widget 默认支持图片上传功能,支持以下特性:
- ✅ 多图批量上传
- ✅ 拖拽上传
- ✅ 上传进度显示
- ✅ 错误提示
上传接口要求
上传接口需要返回以下格式之一:
成功时返回图片 URL(字符串):
"https://example.com/uploads/image.jpg"
成功时返回 JSON 对象:
{
"url": "https://example.com/uploads/image.jpg"
}
失败时返回错误对象:
{
"error": "上传失败:文件过大"
}
自定义上传回调
如果需要自定义上传逻辑,可以在 clientOptions 中设置 callbacks.onImageUpload:
'clientOptions' => [ 'callbacks' => [ 'onImageUpload' => new \yii\web\JsExpression("function(files) { // 自定义上传逻辑 }"), ], ],
支持的语言
Widget 包含所有 Summernote 支持的语言包,包括:
- 中文(zh-CN, zh-TW)
- 英文(en-US)
- 日文(ja-JP)
- 韩文(ko-KR)
- 法文(fr-FR)
- 德文(de-DE)
- 西班牙文(es-ES)
- 俄文(ru-RU)
- 等等...
默认使用中文(zh-CN),可以通过 language 选项切换。
系统要求
- PHP >= 8.1.0
- Yii2 >= 2.0.45
- Bootstrap 5
- jQuery
许可证
BSD-3-Clause
相关链接
更新日志
v1.0.0 (2025-01-XX)
- ✅ 初始版本发布
- ✅ 支持 Bootstrap 5
- ✅ 支持图片上传(多图)
- ✅ 中文语言包(默认)
- ✅ 表单验证前自动保存
jzkf/yii2-summernote 适用场景与选型建议
jzkf/yii2-summernote 是一款 基于 JavaScript 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 12 月 22 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「wysiwyg」 「editor」 「yii2」 「summernote」 「bootstrap5」 「rich-text」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 jzkf/yii2-summernote 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 jzkf/yii2-summernote 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 jzkf/yii2-summernote 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
A custom URL rule class for Yii 2 which allows to create translated URL rules
Adds more BBCode
WYSIWYG editor for Yii2 based on Bootstrap 3
UEditor 是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用 UEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。
SCEditor, a lightweight WYSIWYG BBCode & HTML editor extension for Yii 2.0 Framework
Simple WYSIWYG editor plugin for Bootstrap 3
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 31
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2025-12-22