Как сделать, чтобы если пользователь сайта не загрузил свой favicon, то использовать favicon который я загрузил сам в папке backend/web/images/defaulffavicon.png Распишите пожалуйста полный алгоритм, а точнее действия MVC.
Код виджета:
<?= FileInput::widget([
'name' => 'Company[favicon]',
'id' => 'favicon-input',
'options' => [
'accept' => 'application/favicon',
],
'pluginOptions' => [
'fileActionSettings' => [
'showZoom' => false,
'showRemove' => true,
'showUpload' => true,
'showDrag' => false,
],
'allowedFileTypes' => ['image'],
'allowedPreviewTypes' => ['image'],
'dropZoneEnabled' => false,
'browseClass' => 'btn btn-primary btn-block',
'showCaption' => false,
'showRemove' => false,
'showUpload' => false,
'autoReplace' => true,
'showCancel' => false,
'maxFileCount' => 1,
'initialPreview' => $favicon_preview,
'initialPreviewAsData' => true,
'initialPreviewFileType' => 'image',
'overwriteInitial' => true,
'previewFileType' => 'application/*',
'uploadUrl' => Url::to(['/media/upload-favicon']),
'deleteUrl' => Url::to(['/media/delete-favicon', 'company_id' => $model->id, 'type' => 'company-favicon']),
'uploadExtraData' => [
'fileKey' => 'Company[favicon]',
'resourceType' => 'company-favicon',
'company_id' => $model->id,
],
'layoutTemplates' => [
'actions' => '<div class="file-actions">' .
' <div class="file-footer-buttons">' .
' {delete}' .
' </div>' .
'</div>',
],
],
'pluginEvents' => [
'filebatchselected' => 'function(event, params) {
$("#favicon-input").fileinput("upload");
}',
'fileuploaded' => 'function(event, data, previewId, index){
if(data.response && data.response.files && data.response.files.length > 0)
{
if($("#companyform-favicon_id").length > 0){
$("#companyform-favicon_id").val(data.response.files[0].id);
} else {
$("#company-favicon_id").val(data.response.files[0].id);
$("#company-favicon_id").trigger("change");
}
}
}',
],
]); ?>
if ($model->has_favicon) {
$favicon_preview[] = $model->faviconPreview;
}
if (!empty ($model->has_favicon)) {
"........."
}
}