[
'name' => 'videoFiles',
'title' => 'Видео: mp4, mov, avi',
- 'type' => 'raw',
- 'value' => function ($data, $index) {
+ 'type' => FileInput::className(),
+ 'options' => function ($data) {
$videoUrl = null;
if (!empty($data['id'])) {
->scalar();
}
- $input = \kartik\file\FileInput::widget([
- 'name' => "MultiModel[$index][videoFiles]",
+ $videoPreviewHtml = '';
+ if ($videoUrl) {
+ $videoPreviewHtml = '<div class="video-preview" style="margin-left: 20px;">
+ <video controls width="200">
+ <source src="' . Html::encode($videoUrl) . '" type="video/mp4">
+ Ваш браузер не поддерживает видео.
+ </video>
+ </div>';
+ }
+
+ return [
'options' => [
+ 'multiple' => false,
'accept' => 'video/*',
- 'class' => 'videos',
+ 'name' => 'video_name',
+ 'capture' => '',
+ 'class' => 'videos'
],
'pluginOptions' => [
'showPreview' => false,
'allowedFileExtensions' => ['mp4', 'mov', 'avi'],
'initialPreview' => $videoUrl ? [$videoUrl] : [],
'initialPreviewAsData' => true,
+ 'initialCaption' => $videoUrl ? basename($videoUrl) : '',
'initialPreviewConfig' => $videoUrl ? [[
'type' => 'video',
'caption' => basename($videoUrl),
- 'url' => \yii\helpers\Url::to(['delete-video', 'id' => $data['id']]),
+ 'url' => Url::to(['delete-video', 'id' => $data['id']]),
]] : [],
- 'initialCaption' => $videoUrl ? basename($videoUrl) : '',
- ]
- ]);
-
- $videoTag = '';
- if ($videoUrl) {
- $videoTag = '<div style="margin-left: 20px;">
- <video controls width="200">
- <source src="' . \yii\helpers\Html::encode($videoUrl) . '" type="video/mp4">
- Ваш браузер не поддерживает видео.
- </video>
- </div>';
- }
-
- return '<div style="display: flex; align-items: center;">' . $input . $videoTag . '</div>';
+ ],
+ 'groupOptions' => [
+ 'class' => 'd-flex align-items-center',
+ 'template' => '{input}' . $videoPreviewHtml,
+ ],
+ ];
}
],
[