userwebdevelop/media-handler 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

userwebdevelop/media-handler

最新稳定版本:1.3.2

Composer 安装命令:

composer require userwebdevelop/media-handler

包简介

Trait для работы с изображениями и видео в Yii2-моделях

README 文档

README

Что делает пакет

Трейт автоматически создаёт методы afterSave и beforeSave. В случае, если нужно написать кастомные методы в модели, важно вызывать внутри них методы работы с медиа:

public function beforeSave($insert)
{
    $this->handleSingleMedia(); // необходимо для работы с одиночными изображениями
    return parent::beforeSave($insert);
}

public function afterSave($insert, $changedAttributes)
{
    parent::afterSave($insert, $changedAttributes);
    $this->handleImages(); // необходимо для работы с галереей
}

Установка и настройка

выполнить команду composer require userwebdevelop/media-handler

После установки пакета необходимо выполнить следующие шаги (порядок не важен):

В файле console/config/main.php добавить:

'controllerMap' => [
    // остальной код
    'uwb-media' => 'userwebdevelop\mediahandler\DB',
];

В файле backend\views\layouts\main.php добавить:

\userwebdevelop\mediahandler\assets\MediaHandlerAsset::register($this);

Примеры использования в админке

Базовое скрытое поле (обязательно всегда):

<?= $form->field($model, 'images_to_delete')->hiddenInput(['id' => 'images-to-delete'])->label(false) ?>

Одиночное изображение

<?= $form->field($model, 'image')->fileInput() ?>
<?= MediaHandlerRenderer::getImageHTML($model->image) ?>

Несколько изображений (галерея)

<?= $form->field($model, 'images[]')->fileInput(['multiple' => true, 'accept' => 'image/*']) ?>
<?= $form->field($model, 'image_order')->hiddenInput(['id' => 'image-order'])->label(false) ?>
<?= MediaHandlerRenderer::getGalleryHTML($model->image) ?>

Звуки

<?= $form->field($model, 'sound')->fileInput(['accept' => 'audio/*']) ?>
<?= MediaHandlerRenderer::getSoundHTML($model->sound) ?>

Видео

<?= $form->field($model, 'video')->fileInput(['accept' => 'video/*']) ?>
<?= MediaHandlerRenderer::getVideoHtml($model->video) ?>

Консольные команды

  • php yii uwb-media/create-table — создаёт таблицу images для хранения и сортировки медиафайлов
  • php yii uwb-media/drop-table — удаляет таблицу images

统计信息

  • 总下载量: 40
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-04-10