Yii2-notification-wrapper

Выкладываем свои наработки
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Yii2-notification-wrapper

Сообщение Loveorigami »

Написал небольшой модуль обертку для отображения стандартных флеш сообщений.

Особенности:
- Поддержка и смена для всего проекта темы сообщений (Noty, Toastr)
- Отображение из ajax - actions

Например:

Код: Выделить всё

public function actionIndex(){
    ...
     \Yii::$app->getSession()->setFlash('error',   'noty1');
     \Yii::$app->getSession()->setFlash('info',    'noty2');
    ...
     return $this->render('index');
 }
 // or in ajax action

 public function actionAjax(){
     ...
      \Yii::$app->getSession()->setFlash('success', 'ajax-noty3');
      \Yii::$app->getSession()->setFlash('warning', 'ajax-noty4');
     ...
     $data = 'Some data to be returned in response to ajax request';
     Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
     return $data;
  }

 
Результат
Изображение

Подробнее - https://github.com/loveorigami/yii2-not ... on-wrapper
Последний раз редактировалось Loveorigami 2016.03.28, 20:58, всего редактировалось 1 раз.
Onotole
Сообщения: 1808
Зарегистрирован: 2012.12.24, 12:49

Re: Yii2-notification-wrapper

Сообщение Onotole »

https://github.com/loveorigami/yii2-not ... er.php#L53
откуда взялся $title?
display_errors off?
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Yii2-notification-wrapper

Сообщение Loveorigami »

с виджета )
https://github.com/lavrentiev/yii2-toas ... on.php#L59

спасибо, поправлю.
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Yii2-notification-wrapper

Сообщение Loveorigami »

Выложил второй релиз. Переработал логику виджета:
- Отказался от сторонних виджетов, чтобы не тянуть все и сразу в одном пакете.
- Теперь устанавливаем только тот, который нужен

Код: Выделить всё

"loveorigami/yii2-notification-wrapper": "*",
"bower-asset/noty": "^2.3"
- и используем наряду с прослойкой (layer) Noty. Тут теперь и происходит вся "магия" по выводу сообщений, как после обычного запроса, так и после ajax (pjax, editable...)

- В wrapper прописываем класс прослойки и необходимые опции

Код: Выделить всё

use lo\modules\noty\widgets\Wrapper;

Wrapper::widget([
    'layerClass' => 'lo\modules\noty\widgets\layers\Noty',
    'layerOptions'=>[
        'registerAnimateCss' => false,
        'registerButtonsCss' => false
    ],
    // clientOptions
    'options' => [
        'dismissQueue' => true,
        'layout' => 'topRight',
        'timeout' => 3000,
        'theme' => 'relax',

        // and more for this library...
    ],
]);
- Пока добавил в модуль три прослойки Noty, Toastr, Growl. Можно добавлять по аналогии и другие, включая свои собственные. Например Toastr

Код: Выделить всё


<?php
namespace lo\modules\noty\widgets\layers;
use yii\helpers\Json;
use lo\modules\noty\widgets\Wrapper;

class Toastr extends Wrapper implements LayerInterface
{
    public function run()
    {
        $view = $this->getView();
        $asset = ToastrAsset::register($view);
    }
    /**
     * @inheritdoc
     */
    public function getNotification($type, $message, $options)
    {
        return "toastr[$type]($message, '', $options);";
    }
}
Последний раз редактировалось Loveorigami 2016.03.28, 20:58, всего редактировалось 1 раз.
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Yii2-notification-wrapper

Сообщение Loveorigami »

Релиз 2.1 - Добавил новый слой Alert по умолчанию.
т.е.

Код: Выделить всё

<?=Wrapper::widget();?>
отработает, как встроенный bootstrap Alert

Изображение
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2-notification-wrapper

Сообщение zelenin »

Loveorigami писал(а):Релиз 2.1 - Добавил новый слой Alert по умолчанию.
т.е.

Код: Выделить всё

<?=Wrapper::widget();?>
отработает, как встроенный bootstrap Alert

Изображение
логично info сделать по умолчанию, как не несущий никакой окраски.
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Yii2-notification-wrapper

Сообщение Loveorigami »

В принципе - такое есть
https://github.com/loveorigami/yii2-not ... r.php#L147

Если тип не из числа стандартных (не указан, указан другой или указан с опечаткой) - значит info
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Yii2-notification-wrapper

Сообщение Loveorigami »

Добавил несколько новых плагинов (Jquery Notify, PNotify, Notify.js)...
У некоторых из них есть возможность переопределять "system Confirm". Включил такую возможность в третий релиз для Noty и PNotify.

Изображение

Ели у кого-то есть ссылки на интересные notify - плагины, присылайте.
По возможности добавлю в Wrapper.
Аватара пользователя
S c
Сообщения: 883
Зарегистрирован: 2012.04.11, 14:46

Re: Yii2-notification-wrapper

Сообщение S c »

С одной стороны круто, что есть выбор, с другой стороны - накой мне в проекте хранить весь этот хлам из не используемых js библиотек, ради простейшей нотификации?
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Yii2-notification-wrapper

Сообщение Loveorigami »

Вы невнимательно читаете...
Выложил второй релиз. Переработал логику виджета:
- Отказался от сторонних виджетов, чтобы не тянуть все и сразу в одном пакете.
- Теперь устанавливаем только тот, который нужен

Код: Выделить всё
"loveorigami/yii2-notification-wrapper": "*",
"bower-asset/noty": "^2.3"

- и используем наряду с прослойкой (layer) Noty. Тут теперь и происходит вся "магия" по выводу сообщений, как после обычного запроса, так и после ajax (pjax, editable...)
"круто" не в том, что есть выбор (хотя и это немаловажно), а в том, что не заморачиваешься на всяких скриптах после ajax запросов (как вывести то или иное уведомление в различных модулях). Вдобавок, если позже нашел что-то поинтереснее, то очень просто заменить во всем проекте.
Аватара пользователя
S c
Сообщения: 883
Зарегистрирован: 2012.04.11, 14:46

Re: Yii2-notification-wrapper

Сообщение S c »

Loveorigami писал(а):Вы невнимательно читаете...
Выложил второй релиз. Переработал логику виджета:
- Отказался от сторонних виджетов, чтобы не тянуть все и сразу в одном пакете.
- Теперь устанавливаем только тот, который нужен

Код: Выделить всё
"loveorigami/yii2-notification-wrapper": "*",
"bower-asset/noty": "^2.3"

- и используем наряду с прослойкой (layer) Noty. Тут теперь и происходит вся "магия" по выводу сообщений, как после обычного запроса, так и после ajax (pjax, editable...)
"круто" не в том, что есть выбор (хотя и это немаловажно), а в том, что не заморачиваешься на всяких скриптах после ajax запросов (как вывести то или иное уведомление в различных модулях). Вдобавок, если позже нашел что-то поинтереснее, то очень просто заменить во всем проекте.
Действительно пропустил, примите мои извинения :) А плагин действительно полезен, спасибо
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Yii2-notification-wrapper

Сообщение Loveorigami »

Релиз 4.0
- Есть теперь возможность задавать пользовательские заголовки (на примере Growl)
- Перенес из Wrapper-a настройки слоя в базовый класс Layer, благодаря чему сами слои стали гибче и проще конфигурируемы (на примере слоя Noty).
- Прежние настройки 'customTitleDelimiter' и 'overrideSystemConfirm' перенесены в 'layerOptions'. Кто их использовал, нужно будет поправить в конфиге виджета Wrapper
+ Новый слой Notie

https://github.com/loveorigami/yii2-not ... ANGELOG.md
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Yii2-notification-wrapper

Сообщение Loveorigami »

Релиз 5.0
- Вынес ассеты в отдельную директорию
- Wrapper со слоями перенес в корень модуля, поменял namespace
- 'customTitleDelimiter' теперь задается для всех слоев.
+ новый слой Notific8
https://github.com/loveorigami/yii2-not ... stom-title
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Yii2-notification-wrapper

Сообщение Loveorigami »

Релиз 5.3
- Для каждого слоя прописал дефолтные настройки.
Выбрать тот или иной плагин стало намного проще

Код: Выделить всё

use lo\modules\noty\Wrapper;

// for Bootstrap Alert
echo Wrapper::widget();

// or for Growl
echo Wrapper::widget([
    'layerClass' => 'lo\modules\noty\layers\Growl',
]);

// or for Noty
echo Wrapper::widget([
    'layerClass' => 'lo\modules\noty\layers\Noty',
]);
При желании каждый слой можно конфигурировать по своему усмотрению -> https://github.com/loveorigami/yii2-not ... nced-usage
Loveorigami
Сообщения: 977
Зарегистрирован: 2014.08.27, 21:54

Re: Yii2-notification-wrapper

Сообщение Loveorigami »

Релиз 6.3
Добавлен ряд полезных настроек
- Возможность выводить сообщение в любом месте на странице (для BootstrapAlert)
- Поддержка только указанных типов сообщений
- Отключение Noty-запроса в персональных ajax скриптах (showNoty)
- Noty исключения (Exceptions)
- + много новых плагинов
https://github.com/loveorigami/yii2-not ... ANGELOG.md
zxczxc12
Сообщения: 161
Зарегистрирован: 2013.01.24, 21:16

Re: Yii2-notification-wrapper

Сообщение zxczxc12 »

Предлагаю подключить http://demos.krajee.com/widget-details/growl
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2-notification-wrapper

Сообщение zelenin »

zxczxc12 писал(а): 2017.01.24, 15:41 Предлагаю подключить http://demos.krajee.com/widget-details/growl
в виджете два десятка различных плагинов - неужели там не подключен один из самых популярных?
zxczxc12
Сообщения: 161
Зарегистрирован: 2013.01.24, 21:16

Re: Yii2-notification-wrapper

Сообщение zxczxc12 »

zelenin писал(а): 2017.01.24, 15:59
zxczxc12 писал(а): 2017.01.24, 15:41 Предлагаю подключить http://demos.krajee.com/widget-details/growl
в виджете два десятка различных плагинов - неужели там не подключен один из самых популярных?
Тут есть 2 варианта развития события:
1) Мне абсолютно повылазило и в связи с внезапно настигнувшим меня буквенным кретинизмом, я не смог найти что-то похожее на слово Kartik
https://github.com/loveorigami/yii2-not ... src/layers
2) Его таки действительно нет
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Yii2-notification-wrapper

Сообщение zelenin »

причем здесь картик, если growl? добавить в виджет поддержку другого виджета? мило, но это не так работает.
zxczxc12
Сообщения: 161
Зарегистрирован: 2013.01.24, 21:16

Re: Yii2-notification-wrapper

Сообщение zxczxc12 »

zelenin писал(а): 2017.01.24, 16:08 причем здесь картик, если growl? добавить в виджет поддержку другого виджета? мило, но это не так работает.
Ну значит есть еще один, третий вариант - я туплю :-)
Ответить