O código a seguir funciona no Joomla 1.6, mas gera um erro de Padrões Estritos na 3.x:
Padrões estritos: Somente variáveis devem ser atribuídas por referência
//Get the full URL for sharing purposes
$uri = & JFactory::getURI();
$absolute_url = $uri->toString();
<?php echo $absolute_url; ?>
Como faço para que o código funcione sem o erro no Joomla 3.x?
JUri::current()
pois ele não retornará nenhum parâmetro de consulta. Basta usar o que está descrito na resposta aceita abaixo: joomla.stackexchange.com/a/4295/168Respostas:
ATUALIZAR
A resposta para a pergunta principal é: JFactory :: getUri () está obsoleto, use JUri diretamente assim:
O erro dos padrões estritos é devido ao
&
antesJFactory::getURI();
. Você pode encontrar mais informações sobre isso abaixo.RESPOSTA ORIGINAL
Exclua o &
Com o PHP5, o
new
operador retorna automaticamente uma referência, portanto o '&' não é mais necessário.No manual oficial do PHP:
fonte: http://php.net/manual/en/language.operators.assignment.php
fonte
De acordo com o tutorial do Joomla , você pode obter o URL atual por esta função:
fonte
UPDATE:
JUri
agora também está obsoleto. A maneira correta agora é a seguinte:Mensagem antiga que agora também está obsoleta:
JFactory::getURI();
está obsoleto. O método correto para obter o URL atual é:fonte
Confiar no
toString
método para obter o URL atual está errado. OtoString
método não se destina a isso. A seguir, é apresentada uma abordagem melhor, mais limpa e à prova de futuro para recuperar o URL atual:Observe que o
getFragment
método deve retornar a peça após o sinal numérico, mas parece haver um bug principal que impede que isso seja feito.fonte
index.php&option=com_foo&view=bar
. Deve ser?
depois #index.php