Der folgende Code funktioniert in Joomla 1.6, löst jedoch einen Strict Standards-Fehler in 3.x aus:
Strenge Standards: Nur Variablen sollten per Referenz zugewiesen werden
//Get the full URL for sharing purposes
$uri = & JFactory::getURI();
$absolute_url = $uri->toString();
<?php echo $absolute_url; ?>
Wie kann ich den Code ohne den Fehler in Joomla 3.x zum Laufen bringen?
JUri::current()
da sie keine Abfrageparameter zurückgibt. Verwenden Sie einfach das, was in der akzeptierten Antwort unten beschrieben ist: joomla.stackexchange.com/a/4295/168Antworten:
AKTUALISIEREN
Die Antwort auf die Hauptfrage lautet: JFactory :: getUri () ist veraltet, verwenden Sie JUri direkt wie folgt:
Der Fehler bei den strengen Standards ist auf das
&
Vorher zurückzuführenJFactory::getURI();
. Weitere Informationen dazu finden Sie weiter unten.URSPRÜNGLICHE ANTWORT
Löschen Sie das &
Mit PHP5 gibt der
new
Operator automatisch eine Referenz zurück, so dass das '&' nicht mehr benötigt wird.Aus dem offiziellen PHP-Handbuch:
Quelle: http://php.net/manual/en/language.operators.assignment.php
quelle
Laut dem Joomla-Tutorial können Sie die aktuelle URL mit dieser Funktion erhalten:
quelle
UPDATE:
JUri
ist jetzt auch veraltet. Der richtige Weg ist jetzt wie folgt:Alte Nachricht, die jetzt auch veraltet ist:
JFactory::getURI();
ist veraltet. Die richtige Methode zum Abrufen der aktuellen URL lautet:quelle
Es
toString
ist falsch, sich auf die Methode zu verlassen, um die aktuelle URL abzurufen. DietoString
Methode ist dafür nicht vorgesehen. Das Folgende ist eine bessere, sauberere und zukunftssichere Methode zum Abrufen der aktuellen URL:Beachten Sie, dass die
getFragment
Methode das Teil nach dem Nummernzeichen zurückgeben sollte, aber es scheint einen Kernfehler zu geben, der dies verhindert.quelle
index.php&option=com_foo&view=bar
. Es sollte?
nachindex.php