Yii2. Dropzone. Как установить несколько виджетов на одной странице?


В статье речь пойдет о расширении kato/DropZone (https://github.com/perminder-klair/yii2-dropzone) — точнее о том, как разместить несколько виджетов на одной странице.

Если взглянуть на исходный код — ответ кажется достаточно очевидным, но, все же считаю нужным показать рабочий пример размещения нескольких виджетов на одной странице.

Итак, вне зависимости от Вашей разметки — будь-то разные табы или просто инлайново несколько DropZone — суть сводится к указанию уникальных id, dropzoneContainer, previewsContainer при инициализации виджета.

Пример вышесказанного ниже:

'dzImage', // <-- уникальные id 'uploadUrl' => Url::toRoute([ 'upload-image', 'id' => $model->id ]), 'dropzoneContainer' => 'dz-container-images', // <-- уникальные dropzoneContainer 'previewsContainer' => 'preview-images', // <-- уникальные previewsContainer 'options' => [ 'maxFilesize' => '2', ], 'clientEvents' => [ 'complete' => "function(file){console.log(file)}", 'removedfile' => "function(file){alert(file.name + ' is removed')}" ], ]);?>
'dzFile', // <-- уникальные id 'uploadUrl' => Url::toRoute([ 'upload-file', 'id' => $model->id ]), 'dropzoneContainer' => 'dz-container-files', // <-- уникальные dropzoneContainer 'previewsContainer' => 'preview-files', // <-- уникальные previewsContainer 'options' => [ 'maxFilesize' => '2', ], 'clientEvents' => [ 'complete' => "function(file){console.log(file)}", 'removedfile' => "function(file){alert(file.name + ' is removed')}" ], ]);?>

При использовании одного виджета и без условия каких-то особенностей работы — все эти три параметра можно не указывать — они указаны по умолчанию в классе.

, ,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *