Ich habe die JInput-Dokumentation durchgearbeitet .
Wir können wie folgt auf das JInput-Objekt zugreifen:
JFactory::getApplication()->input;
Wenn wir mehr Werte abrufen, ist es hilfreich, das JInput-Objekt in einer Variablen zu speichern, damit wir nicht JFactory::getApplication()
jedes Mal aufrufen müssen, wenn wir dies tun:
$jinput = JFactory::getApplication()->input;
Um einen Wert aus JInput abzurufen, müssen Sie die get-Methode verwenden:
$data = $jinput->get('varname', 'default_value', 'filter');
Wie Sie sehen können, hat es 3 Parameter:
- der Variablenname
- der Standardwert (standardmäßig null)
- der Filtername (standardmäßig cmd)
Und hier kommt meine Frage zum 3. Parameter.
Wie kann ich meinen eigenen Filter erstellen Jinput
? Wenn ich beispielsweise Telefonnummern oder IP-Adressen überprüfen muss, wie kann ich dann meinen eigenen Filter dafür erstellen?
joomla-3.x
jinput
Joomler
quelle
quelle
Antworten:
das ist ganz einfach
Erstellen Sie zunächst eine benutzerdefinierte Jinput-Klasse wie
class JinputTelephone
// was auch immer Sie möchten.Vielleicht sehen Sie sich die vorhandenen Eingabefilterklassen unter / library / joomla / input an
// Ändern Sie den Getter und die Filtermethode nach Ihren Wünschen
// Verwendungszweck
// Mit dieser Methode können Sie auch die reguläre Eingabebehandlung verwenden. // Sie können sie jedoch nicht mit JApplication als Eingabe verwenden
Es gibt viele andere Möglichkeiten, dies zu tun. Eine andere Lösung $ data = MyFilter :: SanitizeNumber ($ jinput-> get ('varname', 'default_value', 'raw'));
hilft es dir
quelle
Mein Versuch,
Ich sehe, dass Sie einige Erfahrung mit Joomla haben, also werde ich nur meine paar Cent hineinstecken.
JLoader
wenn ich nicht falsch liege, und Pfad zu Bibliotheken hinzufügen aka/plugins/system/myplugin/libraries/newfilter.php
PS. Auf diese Weise können Sie auch Joomla-Kernbibliotheken und -Plattformen überschreiben. Ein solches Curl-SSL-Problem mit Zertifikaten; )
Grüße
quelle