besnovatyj/yii2-cms-file-manager
Composer 安装命令:
composer require besnovatyj/yii2-cms-file-manager
包简介
Standalone-виджет файлового менеджера для Yii2 (ядро filemanager-core + AssetBundle + PHP-виджет). Без CKEditor.
关键字:
README 文档
README
Standalone-виджет файлового менеджера для Yii2 — без CKEditor. Тонкая обёртка над ядром
@besnovatyj/filemanager-core: здесь только сборка ядра в собственный
dist/ + PHP-виджет и AssetBundle. Вся доменная логика ФМ — в ядре.
Это «брат» виджета редактора besnovatyj/yii2-cms-ckeditor5: тот монтирует
CKEditor, этот — чистый файловый менеджер. Для интеграции ФМ внутрь редактора используется отдельный
CKEditor-плагин besnovatyj/ckeditor5-filemanager.
Что внутри
assets/index.ts # реэкспорт публичного API ядра (createApp, …) → dist/file-manager.js
esbuild.js # сборка: ядро filemanager-core бандлится внутрь, CSS уже вшит в JS
src/FileManagerWidget.php # PHP-виджет: кнопка-триггер + init-модуль (createApp().open())
src/FileManagerCoreAsset.php # AssetBundle: публикует dist/file-manager.js (JS грузится import()-ом)
dist/ # собранный file-manager.js (КОММИТИТСЯ — потребляется без Node)
ckeditor5 нигде не участвует. dist/file-manager.js — ESM-модуль с именованным экспортом
createApp, который виджет грузит динамическим import().
Сборка TS (нужен Node/Docker)
# 1) сначала собрать ядро (виджет бандлит его dist): ( cd ../../npm/filemanager-core && npm install && npm run build ) # 2) затем виджет: npm install # подтянет @besnovatyj/filemanager-core по file:../../npm/filemanager-core npm run build # → dist/file-manager.js (ядро вбандлено, CSS вшит)
dist/ коммитится в git. Потребляющий проект Node не использует.
Использование
Picker в форме (ActiveForm)
Поле + кнопка; двойной клик по файлу кладёт его URL (или иной атрибут) в поле:
use Besnovatyj\FileManager\FileManagerWidget; echo $form->field($model, 'image')->widget(FileManagerWidget::class, [ 'fmDefaultPath' => '/blog', // 'returnAttribute' => 'path', // что класть в поле: url (по умолчанию) | path | key | name ]);
Или напрямую:
echo FileManagerWidget::widget([ 'model' => $model, 'attribute' => 'image', ]);
Просто открыть менеджер (browser-режим)
Без модели и name поле не выводится — только кнопка, открывающая ФМ:
echo FileManagerWidget::widget(['triggerLabel' => 'Файлы']);
Настройки виджета
| Свойство | По умолчанию | Назначение |
|---|---|---|
model/attribute |
— | picker через ActiveForm |
name/value |
— | picker без модели |
showInput |
true |
выводить ли поле (авто-false, если нет ни модели, ни name) |
returnAttribute |
'url' |
свойство выбранного файла, кладущееся в поле (url/path/key/name) |
triggerLabel |
'Файловый менеджер' |
подпись кнопки |
triggerOptions |
[] |
HTML-опции кнопки |
fmConnector |
'/file/backend/file-manager' |
URL коннектора бэкенда ФМ (серверная часть — в yii2-cms-file) |
fmDefaultPath |
'/' |
стартовая директория и путь загрузки по умолчанию |
fmHeaders |
[] |
доп. HTTP-заголовки (мёржатся поверх CSRF/Ajax-заголовков) |
Бэкенд-коннектор (file-manager) живёт в файловом модуле besnovatyj/yii2-cms-file — это серверная
часть, к которой обращается ФМ; URL настраивается свойством fmConnector.
统计信息
- 总下载量: 1
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-07-06