El siguiente código funciona en Joomla 1.6, pero arroja un error de estándares estrictos en 3.x:
Normas estrictas: solo las variables deben asignarse por referencia
//Get the full URL for sharing purposes
$uri = & JFactory::getURI();
$absolute_url = $uri->toString();
<?php echo $absolute_url; ?>
¿Cómo puedo hacer que el código funcione sin el error en Joomla 3.x?
JUri::current()
ya que no devolverá ningún parámetro de consulta. Simplemente use lo que se describe en la respuesta aceptada a continuación: joomla.stackexchange.com/a/4295/168Respuestas:
ACTUALIZAR
La respuesta a la pregunta principal es: JFactory :: getUri () está en desuso, use JUri directamente así:
El error de los estándares estrictos se debe al
&
anteriorJFactory::getURI();
. Puede encontrar más información sobre eso a continuación.RESPUESTA ORIGINAL
Eliminar el &
Con PHP5, el
new
operador devuelve automáticamente una referencia, por lo que el '&' ya no es necesario.Del manual oficial de PHP:
fuente: http://php.net/manual/en/language.operators.assignment.php
fuente
De acuerdo con el tutorial de Joomla , puede obtener la URL actual con esta función:
fuente
ACTUALIZACIÓN:
JUri
ahora también está en desuso. La forma correcta ahora es la siguiente:Mensaje antiguo que ahora también está en desuso:
JFactory::getURI();
es obsoleto. El método correcto para obtener la URL actual es:fuente
Confiar en el
toString
método para obtener la URL actual es incorrecto. EltoString
método no está destinado a eso. El siguiente es un enfoque mejor, más limpio y a prueba de futuro para recuperar la URL actual:Tenga en cuenta que el
getFragment
método debe devolver la parte después del signo de número, pero parece haber un error central que impide que lo haga.fuente
index.php&option=com_foo&view=bar
. Debería ser?
despuésindex.php