Иногда возникает необходимость использовать в модуле или компоненте сессии, например, чтобы проверять интервал после отправки письма с сайта.
Как это делать..
Получаем объект сессии:
$session = JFactory::getSession();
Сохраняем значение в сессии:
$session->set('mymessage', 'некоторое сообщение');
Берем сохраненное значение:
$mymessage = $session->get('mymessage');
В сессии можно сохранять массивы:
$cart = array(); $cart['items'][] = array('item_number' => 1, 'name' => 'Телефон'); $cart['items'][] = array('item_number' => 2, 'name' => 'ICQ'); $cart['shippingInfo'] = array('address' => 'Улица такая-то', zip => '410000'); $session->set('cart', $cart);
Чтобы добавить или изменить данные в массиве, берем сохранненый массив:
$cart = $session->get('cart');
и добавляем в массив новый элемент:
$cart['items'][] = array('item_number' => 3, 'name' => 'Sqype');
и сохраняем опять массив в сессии:
$session->set('cart', $cart);
Удалить переменную из сессии можно так:
$session->clear('cart');
В дополнение можно добавить, что при чтении (get) переменной сессии можно использовать значение по умолчани, так же как в JRequest.
Для предотвращения конфликтов имен, можно использовать пространство имен:
$cart = $session->get('cart', array(), 'mod_sendform');
mod_sendform - имя для пространства имен. Его можно задавать по имени модуля или компонента.