Модуль - Замена окошка DLEalert на тост (Toast) | codles.ru

Модуль Замена окошка DLEalert на тост (Toast)

Zamena okoshka dlealert na tost toast

Этот скрипт заменяет стандартное информационное окно DLE на красивый и современный Toast, далее - тост. Тост - это окошко, похожее на пуш уведомление. Оно появляется справа вверху и исчезает само, требует от юзера дополнительных действий. В DLE используются такие окна с кнопкой "ок" и требует от юзера клика по кнопке. Окошки появляются, например, при добавлении в закладки или повторном голосовании. Эти окошки можно вызвать и самому для своих модулей.

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

DLE окна вшитые в файлы движка, по умолчанию имеют стиль "информация" и таймер 5 секунд. Можно изменить поведение по умолчанию, но нельзя изменить каждое окно, так как они в файлах движка, а мы их трогать не будем. Зато окна, которые мы вызываем сами, мы можем настраивать как угодно!

Установка:
  1. Скачайте ниже архив с JS файлом. В этом файле весь код тоста, который следует разместить в папке JS шаблона. Внутри можно изменить html, например иконки. В файле прописан набор иконок от Font Awesome.
  2. Найти в main.tpl код:
    HTML:
    </body>
    Добавить выше:
    HTML:
    <script src="{THEME}/js/toast.js?v={cache-id}" defer></script>
  3. К стилям CSS шаблона добавить:
    CSS:
    .flex-grow-1 {flex: 1 1 0; max-width: 100%; min-width: 50px;}
    .toasts {position: fixed; right: 10px; top: 20px; z-index: 990; display: grid; gap: 20px;}
    .toast {background-color: #fff; color: #000; border-radius: 6px; overflow: hidden;
        position: relative; width: 400px; display: flex; align-items: center; gap: 20px;
        padding: 16px 20px; box-shadow: 0 5px 20px rgba(0,0,0,0.2); --accent: #00a2ff;
        animation: showToast 0.5s ease forwards; max-width: calc(100vw - 40px);}
    .toast__icon {font-size: 28px; color: var(--accent);}
    .toast__title {font-weight: 700;}
    .toast__text {font-size: 14px;}
    .toast__close {font-size: 18px; margin: 0 -10px; display: grid; place-items: center;
        cursor: pointer; opacity: 0.6; width: 40px; height: 40px;}
    .toast::after {content: ''; width: 100%; height: 3px; background-color: var(--accent);
        position: absolute; left: 0; bottom: 0; animation: progressToast var(--toast-timer) linear forwards}
    .toast--success {--accent: #41b92f;}
    .toast--warning {--accent: #f4bd00;}
    .toast--error {--accent: #dd3954;}
    .toast--is-hiding {animation: hideToast 0.5s ease forwards;}
    @keyframes progressToast {
        100% {width: 0}
    }
    @keyframes showToast {
        0% {transform: translateX(calc(100% + 20px));}
        40% {transform: translateX(-5%);}
        80% {transform: translateX(0%);}
        100% {transform: translateX(-10px);}
    }
    @keyframes hideToast {
        0% {transform: translateX(-10px);}
        40% {transform: translateX(0%);}
        80% {transform: translateX(-5%);}
        100% {transform: translateX(calc(100% + 20px));}
    }
  4. Готово!
Как использовать:
Все DLE alert окна уже заменились. Попробуйте проголосовать повторно в любой новости и увидите.

Для своих нужд окно вызывается JS кодом:
HTML:
DLEalert('Все круто',  'Тестим успех', 'success', 5000);
Например, вызвать тост можно по клику на кнопку:
HTML:
<a href="#" onclick="DLEalert('Все круто', 'Тестим успех','success');return false;">вызовем со стилем успех</a>
Для вывода используются 4 параметра, первые 2 обязательны:
  • Текст.
  • Заголовок.
  • Стиль. (доступны: info, success, error, warning).
  • Таймер в миллисекундах.
Скачать бесплатно:
Для просмотра содержимого необходимо войти .
 
Назад
Верх