Как сделать, чтобы если пользователь сайта не загрузил свой favicon, то использовать favicon который я загрузил сам?

Ссылка скопирована
Yii
1 ответ

Как сделать, чтобы если пользователь сайта не загрузил свой 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)) {              "........."         }      }

<?= 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)) { "........." } }

Дополнительно:

Распишите пожалуйста полный алгоритм, а точнее действия MVC

Это шутка?
Проверяешь в базе, если есть значение в поле "favicon" то подставляем его, если поле пусто то "default.png".

  • Антон Р., Я понимаю, что нужно сделать, но я не понимаю сам синтаксис как это расписать, я новичок, поэтому простите
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Стас DB Ответ

    Для того чтобы использовать собственный favicon на вашем сайте в случае, если пользователь не загрузил свой собственный, вам нужно внедрить логику проверки наличия favicon у пользователя и, при его отсутствии, подставить ваш собственный.

    Прежде всего, у вас должен быть ваш собственный favicon, который вы загрузили на сервер. Затем вам нужно добавить следующий код в тег вашего HTML документа:

     

    Далее, чтобы проверить, загрузил ли пользователь свой собственный favicon, вам нужно добавить следующий JavaScript код перед закрывающим тегом :

     
        document.addEventListener('DOMContentLoaded', function() {
            var link = document.querySelector("link[rel*='icon']");
            if (!link) {
                var newLink = document.createElement('link');
                newLink.rel = 'shortcut icon';
                newLink.href = '/путь_к_вашему_фавикону/favicon.ico';
                document.head.appendChild(newLink);
            }
        });

    document.addEventListener('DOMContentLoaded', function() { var link = document.querySelector("link[rel*='icon']"); if (!link) { var newLink = document.createElement('link'); newLink.rel = 'shortcut icon'; newLink.href = '/путь_к_вашему_фавикону/favicon.ico'; document.head.appendChild(newLink); } });

    Этот скрипт будет проверять наличие favicon у пользователя при загрузке страницы и, если favicon не найден, будет автоматически подставлять ваш собственный.

    Убедитесь, что замените "/путь_к_вашему_фавикону/favicon.ico" на реальный путь к вашему собственному favicon на сервере.

    Таким образом, вы сможете обеспечить наличие favicon на вашем сайте даже в случае, если пользователь не загрузил свой собственный.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

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

    Вам также может быть интересно