Как установить динамический cookie на laravel 5.6 или JavaScript, используя js-cookie - PullRequest
0 голосов
/ 19 декабря 2018

До этого мой английский не был моим родным языком, так что ... прошу прощения за все орфографии / опечатки и прочее.

Я работаю над этим сайтом, и он требует показа рекламного видео всем пользователям.(это должно быть модально).Вот условия:

Рекламное видео необходимо показывать на любой странице сайта.

Если пользователь увидел рекламное предложение, оно будет снова показано через неделю тому же пользователю.(если акция все еще активна).

Если промо-видео удалено другим промо-видео, оно должно показать новое промо-видео (например: если пользователь зашел на сайт и увидел акцию в первый день ив третий день рекламная акция была удалена, или срок ее действия истек, а другая рекламная акция - ее набор, ее необходимо отобразить тому же пользователю, если он снова посетит сайт до того, как пройдет неделя).

Я думал об использованиипеченье Laravel, но мне сказали, что их использование не является хорошей практикой.Если да, то почему?

Сейчас приложение использует js-cookie, и некоторые cookie-файлы устанавливаются с его помощью.Можно ли выполнить то, что я хочу, с помощью этого?

Это некоторые части моего кода

на моем ViewServiceProvider.php. У меня есть это

public function boot()
{
    View::composer('layouts.partials.modals', PromotionalVideoComposer::class);

}

на PromotionalVideoComposer.php

public function compose(View $view)
{
    $view->with('promotionalVideo', PromotionalVideo::active()->pluck('link')->first());
}

На partiasl.modals.blade.php

// some modals

<!-- Modal Promotional Video -->
@if (isset($promotionalVideo))
    <div class="modal fade modal-player" id="promotional-video" role="dialog" tabindex="-1">
        <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close" dusk="close-promotional-video"><span aria-hidden="true">&times;</span></button>
                    <div class="modal-body player-container">
                        <iframe src="{{ $promotionalVideo }}" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
                    </div>
                </div><!-- .modal-header -->
            </div><!-- .modal-content -->
        </div><!-- .modal-dialog modal-lg -->
    </div><!-- .modal fade -->
@endif

и app.js

if (Cookie.get('promotionalVideoDisplayed') === undefined) {
    $('#promotional-video').modal('show');
    Cookie.set('promotionalVideoDisplayed', true, { expires: 7 });
}

// On close video modal stop/delete video iframe
$("#promotional-video").on('hidden.bs.modal', function () {
    var $iframe = "#promotional-video iframe";

    $($iframe).remove();
});

1 Ответ

0 голосов
/ 19 декабря 2018

Вместо того, чтобы использовать файлы cookie (которые могут быть удалены или не установлены таким образом, чтобы показывать одно и то же видео несколько раз), я бы предложил добавить запись в БД для "идентификатора пользователя", "идентификатора продвижения" и "даты последнего просмотра".

Затем прочитайте это, чтобы решить, показывать видео или нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...