Joomla – Development – ersetze JRequest durch JInput

Seit Joomla 3.0 hat sich einiges geändert und so ist die Methode JRequest, die zum abfragen von GET und POST Variablen genutzt wird, nicht länger notwendig und kann durch JInput ersetzt werden.

Achtung !
Hintergrund ist folgender. Die obige Tatsache ist jedoch stark abhängig von der eingesetzten PHP Version in der die Option für Magic Quotes vorhanden und aktiv ist.  Während in der PHP  Version 5.3.0 Magic Quotes als Deprecated = Veraltet gekennzeichnet sind sind sie seit Version 5.4.0 komplett verschwunden. Zudem haben die meisten Server mit PHP diese Option deaktiviert.

Das bedeutet nun, dass alle die PHP ab der Version 5.4.0 einsetzen auf JInput zurück greifen können, während alle anderen die Option für Magic Quotes überprüfen und ggf. deaktivieren müssen, wenn sie JInput einsetzen. Noch ist JRequest in Joomla 3.2 nutzbar, aber zukünftig wird es von JInput abgelöst.

Beispiel für ein JRequest:

$data = JRequest::getVar('jform', array(), 'post', 'array');
echo $data['form-field1-name'];
Ausgane: Max Müller

Beispiel nun für JInput:

$data = JFactory::getApplication()->input;
// Syntax -> $data = $jinput->get('varname', 'default_value', 'filter');
echo $jinput->get('name', ' Default-Name', 'word');
Ausgabe: Max Müller

Beispiel für File Upload (alt)

$file = JRequest::getVar('jform', null, 'files', 'array');
array([jform1]=>array(
[name]=>array([test=>array([0]=>datei-1.jpg)[1]=>...)
[type]=>array([test=>array([0]=>image/jpeg)[1]=>...)
...
)

Beispiel für File Upload (neu)

$file = $jinput->files->get('jform');
array(
[test]=>array([0]=>array(
[name]=>datei-1.jpg
[type]=>imiage/jpeg
..
)
[2]=>array(
[name]...
...
)

Noch ein Beispiel für ein Array:

$jinput = JFactory::getApplication()->input;
$data = $jinput->getArray(array(
'jform' =>array(
'gender'    => 'word',
'hausnummer'=> 'alnum',
'text'      => 'cmd',
)
));
echo $data['jform']['gender']; //Herr
echo $data['jform']['hausnummer']; //95A
echo $data['jform']['text']; //Info 01_Text.

Link zur Joomla Dokumentation: http://docs.joomla.org/Retrieving_request_data_using_JInput

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

This site uses Akismet to reduce spam. Learn how your comment data is processed.