Skip to content

antongorodezkiy/notify-library

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); // выведет очередь сообщений, если таковые есть
		
	});
	

About

Библиотека уведомлений для codeigniter

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages