40.4 URL-Parameter abfragen 

Nehmen wir an, Sie hätten gern die Möglichkeit, wieder auf den Tooltip zu verzichten. Dazu wollen wir in der URL die Möglichkeit bieten, einen weiteren Parameter tooltip=0 anzugeben, der die Anzeige unterdrückt. URL-Parameter werden über die Methode JRequest::getVar angegeben Diese benötigt bis zu fünf Angaben:
JRequest::getVar(name, default, methode, typ, optionen)
Die erste gibt den Namen des URL-Parameters an und ist das einzige Argument, das vorhanden sein muss. Die restlichen Argumente sind optional. default legt einen Standardwert für den Fall fest, dass der URL-Parameter nicht angegeben wurde. Wenn Sie eine methode angeben, muss der URL-Parameter über diese Methode übergeben werden. Hier wird zwischen get und post unterschieden. Ist ein typ angegeben, so wird eine zusätzliche Prüfung durchgeführt, ob der übergebene Wert diesem Typ entspricht. Mögliche Werte sind in Tabelle 40.4 aufgeführt.
Wert | Typ |
INT, INTEGER |
Ganze Zahlen: 123 |
FLOAT, DOUBLE |
Kommazahlen: 123.45 |
BOOL, BOOLEAN |
True oder false. Werden andere Werte eingegeben, werden diese entsprechend den Regeln von PHP umgewandelt. |
WORD |
Buchstaben und der Unterstrich: HALLO_WELT |
ALNUM |
Buchstaben und Zahlen: Hans12 |
CMD |
Buchstaben, Zahlen und die Zeichen _.-: Ein-Wert. |
BASE64 |
Buchstaben, Zahlen und die Zeichen /+=: 3+4=5 |
STRING |
Eine Zeichenkette |
ARRAY |
Ein Array |
PATH |
Alle Zeichen, die in einer Pfadangabe erlaubt sind |
USERNAME |
Alle Zeichen, die in einem Benutzernamen erlaubt sind |
Im Argument optionen können Sie noch festlegen, welche weiteren Filter angewendet werden.
Filter | Wirkung |
JREQUEST_NOTRIM |
Leerzeichen am Anfang und am Ende werden nicht abgeschnitten. |
JREQUEST_ALLOWRAW |
Es wird keine Filterung der Parameter vorgenommen. Vorsicht! Wenn Sie diese Option verwenden, sind Ihre Programme potenziell anfällig für Hackerangriffe. |
JREQUEST_ALLOWHTML |
HTML wird nicht gefiltert. Normalerweise werden alle Tags entfernt. |
Sie können die Filter kombinieren, indem Sie sie mit einer Pipe verbinden:
JREQUEST_NOTRIM | JREQUEST_ALLOWHTML
Ob ein Tooltip angezeigt wird, muss das Hauptprogramm des Moduls entscheiden. Also fügen Sie in der Datei mod_api.php die folgende Zeile ein:
5 $username = ModHalloJoomlaVCHelper::getUserName();
6 $tt = JRequest::getVar('tooltip', 1, 'get', 'BOOLEAN');
7 require_once(JModuleHelper::getLayoutPath('mod_api'));
Listing 40.6 Ausschnitt aus »mod_api.php«
Jetzt weiß das Programm nur, ob es den Tooltip anzeigen soll. Das wurde in der Variablen $tt gespeichert. Wenn keine Angabe erfolgt, soll der Tooltip ausgegeben werden. Nun müssen wir in der View auf diese Entscheidung reagieren. Das passiert in den Zeilen 8 und 12:
6 Hallo <?php echo $username?>! 7 <br/> 8 <?php if ($tt) { 9 echo JHTML::tooltip($my->usertype, 10 'Status', 11 'tooltip.png'); 12 } 13 ?>.
Listing 40.7 Ausschnitt aus »default.php«
Abbildung 40.1 Das Benutzer-Modul