Уведомления на сайте PHP + Noty.js V3
Про использование библиотеки Noty.js я писал здесь. На самом деле мне она очень понравилась своей простотой и практичностью.
В связи с этим, я решил немного кастомизировать её под свои нужды. Я собираюсь использовать её в php проектах и никакого лишнего кода JavaScript мне там не нужно.
Подключение к проекту Noty.js
я здесь не буду описывать, по ссылке выше всё уже расписано.
Класс для работы с библиотекой Noty.js
Мы не будем использовать всё API библиотеки. Возьмём только основные настройки, тем самым обеспечим базовую работоспособность уведомлений. Если нужны более глубокие настройки, никто не мешает дописать нужный функционал ☺
<? /** * https://ned.im/noty/#/ * https://github.com/needim/noty * https://daneden.github.io/animate.css/ * A Dependency-free notification library * Class Noty */ class Noty { /** * @param $type * @param $text * @param $timeout * @param $layout */ public static function run($type, $text, $timeout, $layout) { echo ' <script> new Noty({ type: '."\"$type\"".', text: '."\"$text\"".', timeout: '."\"$timeout\"".', layout: '."\"$layout\"".', theme: "semanticui", animation: { open: "animated bounceInRight", close: "animated bounceOutRight" } }).show(); </script>'; } }
Использовать класс можно так, например:
// Простой пример: принимаем get-параметр 'name' // http://site.com/?name=John $name = $_GET['name'] ?? null; if(!$name): /** * Если значение аргумента не передавать, * то сработает значение по умолчанию * https://ned.im/noty/#/options */ Noty::run('','Name does not exist', false, 'bottomRight'); else: Noty::run('success', 'Hello, '.$name, 3000, 'topRight'); endif; // Или где-то в контроллере public function actionSignUp() { /* @var $user User */ try { $user->signup(); Noty::run('success','User registration was successful!', 3000, 'topRight'); } catch (Exception $e) { Noty::run('error',$e->getMessage(), 3000, 'topRight'); } }
Получился простой, но в тоже время практичный класс для уведомлений, которые теперь можно спокойно вызывать из любого места приложения на PHP .