Иногда возникает необходимость использовать в модуле или компоненте сессии, например, чтобы проверять  интервал после отправки письма с сайта.

Как это делать..

Получаем объект сессии:

$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 - имя для пространства имен. Его можно задавать по имени модуля или компонента.