Poniższy kod działa w Joomla 1.6, ale powoduje błąd Strict Standards w 3.x:
Ścisłe standardy: tylko zmienne powinny być przypisywane przez odniesienie
//Get the full URL for sharing purposes
$uri = & JFactory::getURI();
$absolute_url = $uri->toString();
<?php echo $absolute_url; ?>
Jak mogę sprawić, aby kod działał bez błędu w Joomla 3.x?
JUri::current()
go, ponieważ nie zwróci żadnych parametrów zapytania. Wystarczy użyć tego, co opisano w zaakceptowanej odpowiedzi poniżej: joomla.stackexchange.com/a/4295/168Odpowiedzi:
AKTUALIZACJA
Odpowiedź na główne pytanie brzmi: JFactory :: getUri () jest przestarzałe, użyj JUri bezpośrednio tak:
Strict Standards błąd jest ze względu na
&
wcześniejJFactory::getURI();
. Więcej informacji na ten temat znajdziesz poniżej.ORYGINALNA ODPOWIEDŹ
Usuń &
W PHP5
new
operator automatycznie zwraca referencję, więc „&” nie jest już potrzebne.Z oficjalnej instrukcji PHP:
źródło: http://php.net/manual/en/language.operators.assignment.php
źródło
Zgodnie z samouczkiem Joomla możesz uzyskać bieżący adres URL za pomocą tej funkcji:
źródło
AKTUALIZACJA:
JUri
jest teraz również przestarzała. Prawidłowy sposób jest teraz następujący:Stara wiadomość, która jest teraz nieaktualna:
JFactory::getURI();
jest przestarzałe. Prawidłowa metoda uzyskania bieżącego adresu URL to:źródło
Poleganie na
toString
metodzie uzyskania bieżącego adresu URL jest nieprawidłowe.toString
Metoda ta nie jest przeznaczona do tego. Poniżej przedstawiono lepsze, czystsze i przyszłościowe podejście do pobierania bieżącego adresu URL:Zauważ, że
getFragment
metoda powinna zwrócić część po znaku liczbowym, ale wydaje się, że istnieje podstawowy błąd, który temu uniemożliwia.źródło
index.php&option=com_foo&view=bar
. Powinno być?
późniejindex.php