Получать параметры (GET, POST и др.) можно с помощью класса JRequest, например:
$id = JRequest::getVar( 'id', $default=null, $hash= 'default', $type= 'none', $mask=0 );
где $hash это GET, POST, ARRAY или др.
$type - INT или STRING например
Чтобы получить параметр запроса и сразу сохранить его в сессию, используется метод класса Application - getUserStateFromRequest
$app = JFactory::getApplication(); $context = 'com_filer.new.'; $parentFolderId = $app->getUserStateFromRequest( $context.'id', 'id', 0, 'cmd' );
Вот код функции getUserStateFromRequest
public function getUserStateFromRequest($key, $request, $default = null, $type = 'none')
{
$cur_state = $this->getUserState($key, $default);
$new_state = JRequest::getVar($request, null, 'default', $type);
// Save the new value only if it was set in this request.
if ($new_state !== null)
{
$this->setUserState($key, $new_state);
}
else
{
$new_state = $cur_state;
}
return $new_state;
}
То есть если передается параметр - он сохраняется в сессию и возвращается как результат функции. Иначе, возвращается сохраненное ранее в сессии значение. Если функция вызывается в первый раз и ей не передается параметр, то в сессию записывается дефолтное значение.
Функция getUserState
public function getUserState($key, $default = null)
{
$session = JFactory::getSession();
$registry = $session->get('registry');
if (!is_null($registry))
{
return $registry->get($key, $default);
}
return $default;
}
getUserState - получает значение из сессии, либо записывает в сессию - setUserState