Le code suivant fonctionne dans Joomla 1.6, mais il génère une erreur Strict Standards dans 3.x:
Normes strictes: seules les variables doivent être affectées par référence
//Get the full URL for sharing purposes
$uri = & JFactory::getURI();
$absolute_url = $uri->toString();
<?php echo $absolute_url; ?>
Comment puis-je faire fonctionner le code sans l'erreur dans Joomla 3.x?
JUri::current()
car elle ne renverra aucun paramètre de requête. Utilisez simplement ce qui est décrit dans la réponse acceptée ci-dessous: joomla.stackexchange.com/a/4295/168Réponses:
MISE À JOUR
La réponse à la question principale est: JFactory :: getUri () est obsolète, utilisez JUri directement comme ceci:
L' erreur Strict Standards est due à l'
&
avantJFactory::getURI();
. Vous pouvez trouver plus d'informations à ce sujet ci-dessous.RÉPONSE ORIGINALE
Supprimer le &
Avec PHP5, l'
new
opérateur retourne automatiquement une référence, donc le '&' n'est plus nécessaire.Depuis le manuel PHP officiel:
source: http://php.net/manual/en/language.operators.assignment.php
la source
Selon le tutoriel Joomla , vous pouvez obtenir l'URL actuelle par cette fonction:
la source
MISE À JOUR:
JUri
est désormais également obsolète. La bonne façon est maintenant la suivante:Ancien message désormais obsolète:
JFactory::getURI();
est obsolète. La bonne méthode pour obtenir l'URL actuelle est:la source
Se fier à la
toString
méthode pour obtenir l'URL actuelle est faux. LatoString
méthode n'est pas destinée à cela. Ce qui suit est une approche meilleure, plus propre et à l'épreuve du temps pour récupérer l'URL actuelle:Notez que la
getFragment
méthode doit renvoyer la partie après le signe numérique, mais il semble y avoir un bogue de base qui l'empêche de le faire.la source
index.php&option=com_foo&view=bar
. Ça devrait être?
aprèsindex.php