На замену классу JRequest в Joomla начиная с версии 2.5 приходит класс JInput. Класс JRequest отныне считается устаревшим и не рекомендуется его использовать.
Хотя в Joomla 2.5.x все ещё много мест где используется устаревший класс JRequest и никто не помешает вам его использовать!

 Класс JRequest окончательно убран в Joomla 4. ЗДРАВСТВУЙ ГЕММОРОЙ,

Для использования JInput достаточно вызвать следующий код:

$jinput = JFactory::getApplication()->input;


Для того что бы установить какое то значение для переменной в объекте $jinput служит метод set($name, $value), нам нужно передать два параметра в метод: имя переменной и значение.
Например в административной части главное меню блокируется таким кодом:

$jinput = JFactory::getApplication()->input; 
$jinput->set( 'hidemainmenu', true );


Для получения данных через класс JInput существует метод

get($name, $default, $type)

Где:

$name - имя переменной
$default - значение по умолчанию
$type - тип фильтрации

Метод универсальный через него можно получить и отфильтровать любой тип данных который будет указан в переменной $type например:

$jinput = JFactory::getApplication()->input; 
$jinput->get( 'id', 1, 'INT );


Но также в классе JInput есть синоним этого метода

$jinput = JFactory::getApplication()->input; 
$jinput->getInt( 'id', 1 );


Этот метод выполняет все тоже что и $jinput->get( 'id', 1, 'INT ); но только в нем уже указан тип фильтрации!

Ниже привожу таблицу типов фильтрации, для чего каждая предназначена и синоним для этого типа:

 

ТипЗначениеСиноним
INT или INTEGER Целочисельная переменная getInt($name, $default)
UINT Беззнаковое целое число getUint($name, $default)
FLOAT или DOUBLE Числа с плавающей точкой getFloat($name, $default)
BOOL или BOOLEAN Будевые типы переменных getBool($name, $default)
WORD Только одно слово! Тоесть перменная со значением 'word1 word2' будет преобразованна в 'wordword' getWord($name, $default)
ALNUM Вернет переменную в которой будут только числа и буквы getAlnum($name, $default)
CMD Значение для командной переменной, например если мы хотим определить какой сейчас вид или задача. getCmd($name, $default)
BASE64 Получение строки зашифрованной с помощью base64 getBase64($name, $default)
STRING Получение строки getString($name, $default)
HTML Получение HTML кода, все потенциально опасные теги удаляются! Список тегов которые не пропускает эта функция: 'applet', 'body', 'bgsound', 'base', 'basefont', 'embed', 'frame', 'frameset', 'head', 'html', 'id', 'iframe', 'ilayer', 'layer', 'link', 'meta', 'name', 'object', 'script', 'style', 'title', 'xml' getHtml($name, $default)
PATH Путь к файлу или папке getPath($name, $default)
ARRAY Массив getArray(array $vars, $datasource = null)
USERNAME Имя пользователя getUsername($name, $default)


Тип фильтрации регистронезависим, так что вы можете написать хоть INT хоть int хоть InT и все равно все будет работать!

 

Естественно класс Jinput содержит функционал для работы с файлами. Для того что бы получать файлы для их последующей обработки рассмотрим пример формы:

<form action="?" method="post" enctype="multipart/form-data"> 
 <input type="file" name="jform[file]"> 
 <input type="submit"> 
</form>


Что бы получить файл из переменной JForm[file] нужно написать следующий код:

$jinput = JFactory::getApplication()->input;
$files = $jinput->files->get( 'jform', array(), 'array' );


В переменой $files будут все загруженный файлы из массива jform

Получение значений массивов.

 

$varValuesArray = $jinput->getArray(array(‘var1′ => ”, ‘var2′ => ”, ‘var3′ => ”));

 

 

$post = $jinput->getArray($_POST);
$value = (int) $post['value'];

 

Или такой вариант

 

$jinput = JFactory::getApplication()->input; 
$paramrequest = $jinput->getArray($_POST)+$jinput->getArray($_GET);