antongorodezkiy/notify-library
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
Codeigniter-notify-library
(c) 2011-2013, Anton Gorodezkiy
Это библиотека для codeigniter для вывода уведомлений пользователю
Подключение:
<html>
<head>
...
<?=$this->notify->initJsCss()?>
</head>
<body>
<?=$this->notify->getMessages()?>
...
</body>
</html>
Некоторые методы:
// добавление ошибки в очередь
$this->notify->error('Случилась какая-то ошибка'); // php
notifyError('Случилась еще одна ошибка'); // js
// добавление успешного сообщения в очередь
$this->notify->success('Но основную часть мы выполнили'); // php
notifySuccess('И это действие тоже успешно'); // js
// присоединим данные к ответу
// из javascript он будет доступен через объект data в ответе
$this->notify->setData( json_encode(array('item' => 'value')) );
// в случае синхронного запроса, на этот адрес произойдет редирект из php,
// в случае асинхронного будет сменен window.location
$this->notify->setComeback( site_url() );
// этот метод завершит дальнейшее выполнение скрипта
$this->notify->returnNotify();
// если в очереди только одно сообщение
$this->notify->returnError('Случилась какая-то ошибка');
// дальнейшее выполнение скрипта не пойдет, ошибка будет передана в ответе или сохранена в сессии
// можно задать время жизни сообщения (ttl), 0 - значит что сообщение будет постоянным, пока пользователь сам его не закроет
$this->notify->returnError('Случилась какая-то ошибка',0);
// время жизни сообщений может быть задано глобально методом setTtl(), в секундах
$this->notify->setTtl(4);
// если в каком-то модуле выполнение скрипта не должно быть прекращено, можно использовать метод mustDie()
$this->notify->mustDie(false);
$this->notify->returnError('Случилась какая-то ошибка'); // скрипт не будет прекращен, функция вернет true/false
$this->notify->mustDie(true);
$this->notify->returnError('Случилась еще одна какая-то ошибка');
// дальнейшее выполнение скрипта не пойдет, ошибка будет передана в ответе или сохранена в сессии
// если какое сообщение не должно быть выведено, можно использовать метод setSilence()
$this->notify->setSilence(true);
$this->notify->returnError('Случилась какая-то ошибка'); // это сообщение не будет выведено
$this->notify->setSilence(false);
$this->notify->returnError('Случилась еще одна какая-то ошибка'); // это сообщение будет выведено
// дальнейшее выполнение скрипта не пойдет, ошибка будет передана в ответе или сохранена в сессии
// сообщения выводятся в месте вызова метода
$this->notify->getMessages();
// если требуется разделить вывод сообщений, допустим некоторые из них выводить прямо в форме
// можно вызвать метод getMessages() с именем региона, а сам регион указывать глобально или при сохранении сообщения в очередь
// controller:
$this->notify->error('Сообщение 1');
...
$this->notify->error('Сообщение 2','','форма логина');
// view:
$this->notify->getMessages(); // будет выведено Сообщение 1, Сообщение 2 остается в очереди
...
$this->notify->getMessages('форма логина'); // будет выведено Сообщение 2
Пример использования в php:
function some_action()
{
if ($result)
{
$this->notify->error('Часть данных не сохранена');
$this->notify->setData( json_encode(array('sum_count' => 4)) );
$this->notify->returnSuccess('Функция отработала');
}
else
$this->notify->returnError('Случилась какая-то ошибка');
}
Пример использования в js:
$.post(url,form_data,function(data)
{
var json = $.parseJSON(data);
if (notifyIsSuccess(json))
{
$(".sum").text(json.data.sum_count);
notifySuccess('Запись суммы прошла успешно');
}
notify(json); // выведет очередь сообщений, если таковые есть
});