1

Тема: Как работает Notification в gelato?

// создаю пустой файл
if(File::setContent(DIR.DS.$add_files_root.DS.$_POST['add_files'], '')){
    Notification::set('add_files', 'Data has been saved with success!');
} else {
    Notification::set('add_files', 'Data not saved!');
}
// пере адресация  (избовляюсь от повторной отправки формы )
Request::redirect(Url::base()); exit;

echo Notification::get('add_files'); не чего потом не выводит sad

Заглянул в сессию там вот что есть

Array
(
..........
    [notifications] => Array
        (
            [add_files] => Data has been saved with success!
        )
)

Как быть!

Поделиться

2

Re: Как работает Notification в gelato?

https://github.com/MonstraLab/monstra-c … hp#L43-L51

Follow me: Twitter | GitHub | Facebook | Вконтакте

Стань спонсором проекта!

Сайт Awilum

Поделиться

3

Re: Как работает Notification в gelato?

Ого yikes . А от куда четыре параметра? На сколько я понимаю передается ключ и значение.
Ну да ладно, у меня проблема в другом. В сессию данные занес.
А вот Notification::get эти данные не отдает.

Поделиться

4

Re: Как работает Notification в gelato?

дело не 4 параметрах. это пример того что оно работает во всех плгинах Монстры. Посмотрите как оно сделано.

https://github.com/MonstraLab/monstra-c … hp#L43-L51

File::setContent($blocks_path.Security::safeName(Request::post('name')).'.block.html', XML::safe(Request::post('editor')));
Notification::set('success', __('Your changes to the block :name have been saved.', 'blocks', array(':name' => Security::safeName(Request::post('name')))));
if (Request::post('add_blocks_and_exit')) {
    Request::redirect('index.php?id=blocks');
} else {
    Request::redirect('index.php?id=blocks&action=edit_block&filename='.Security::safeName(Request::post('name')));
}                              
Follow me: Twitter | GitHub | Facebook | Вконтакте

Стань спонсором проекта!

Сайт Awilum

Поделиться

5

Re: Как работает Notification в gelato?

var_dump(Notification::get('add_files')); 
// Возвращает NULL 

А вот почему? ведь в сессии данные есть

Array
(
    [notifications] => Array
        (
            [add_files] => Data has been saved with success!
        )
)

Поделиться

6

Re: Как работает Notification в gelato?

уберите  exit; у себя

Follow me: Twitter | GitHub | Facebook | Вконтакте

Стань спонсором проекта!

Сайт Awilum

Поделиться

7

Re: Как работает Notification в gelato?

я уже что только не пробовал. Вот на чистом листе.

error_reporting(E_ALL);
define("DIR", dirname(__FILE__));
include DIR.'/inc/gelato/Gelato.php';
Session::start();
Notification::set('add_files','Data has been saved with success!');
var_dump(Notification::get('add_files'));
print_r($_SESSION);

По прежнему возвращает NULL, а сессия заполнена.

Проверяю на
XAMPP
1.7.7
[PHP: 5.3.8]

Поделиться

8

Re: Как работает Notification в gelato?

jino хостинг PHP Version 5.4.0-ZS5.6.0
То же самое sad

Поделиться

9

Re: Как работает Notification в gelato?

поменял в Notification.php строка 61

return isset(Notification::$notifications[$key]) ? Notification::$notifications[$key] : null;
// на
return isset($_SESSION['notifications'][$key]) ? $_SESSION['notifications'][$key] : null;

Стало работать. что то с методом init

Поделиться

10

Re: Как работает Notification в gelato?

Будет ли правильным если я пока оставлю так? Надеюсь вы исправите!
А то не хотелось бы переписывать каждый раз при обновлении классов.

Поделиться

11

Re: Как работает Notification в gelato?

Ой простите. Notification::init(); и все работает. Просто документации нет про инициализацию smile

Поделиться

12

Re: Как работает Notification в gelato?

Вы юзаете Gelato отдельно ? или речь шла про Monstra CMS ?

Нужно сначало стартовать сесию

Session::start();

и затем стартовать Notification

Notification::init();

тогда уже можно будет юзать  Notification методы

Follow me: Twitter | GitHub | Facebook | Вконтакте

Стань спонсором проекта!

Сайт Awilum

Поделиться

13

Re: Как работает Notification в gelato?

Уже разобрался.
Я работаю только с Gelato.
Жаль что на Gelato документация не полностью.

Спасибо Вам за помощь!

Поделиться