Générer des urls « propres » avec typo3
28/01/09
Personnellement, pour générer des liens simplement avec typo3, j’utilise toujours la même fonction : pi_linkTP_keepPIvars_url. Elle fonctionne parfaitement avec realurl et vous génère des paramètres préfixés par le nom du plugin automatiquement. Enfin, elle gère les cHash contrairement à une fonction comme pi_getPageLink. Voici le prototype de cette fonction et quelques exemples d’utilisation.
pi_linkTP_keepPIvars_url($overrulePIvars = array(),$cache = 0,$clearAnyway = 0,$altPageId = 0);
Lien classique vers la page courante sans paramètre (sauf les piVars actuelles issus des GET et POST)
$this->pi_linkTP_keepPIvars_url();
Lien classique vers la page courante en rajoutant une variable en paramètre
$this->pi_linkTP_keepPIvars_url(array('uid'=>$valeur));
Lien classique vers la page courante en rajoutant une variable en paramètre avec l’utilisation de cHash. Attention, on ne peut utiliser les cHash qu’en mode USER pas en USER_INT. Il faut (en autre) que la variable $this->pi_USER_INT_obj soit à 1 dans votre plugin (vérifier ce que génère kickstarter)
$this->pi_linkTP_keepPIvars_url(array('uid'=>$valeur),1);
Lien classique vers la page courante en rajoutant une variable en paramètre sans conserver les piVars actuelles
$this->pi_linkTP_keepPIvars_url(array('uid'=>$valeur),0,1);
Lien classique vers une autre page
$this->pi_linkTP_keepPIvars_url(array(),0,0,$id_de_ma_page);
Article(s) sur le même sujet :



2 décembre 2009 - 17 h 04 min
Salut Yohann,
travaillant depuis 1 mois sur Typo3, ton blog m’aide beaucoup à avancer…
En revanche sur ce point-là, les liens ne prennent pas en compte le baseURL et me donnent donc un faux lien pour un formulaire. Est-ce logique ? Aurais-je oublié des paramètres ?
2 décembre 2009 - 17 h 35 min
Dans ton base href dans le
tu as bien un truc du style :base href= »http://www.ycerdan.fr/ »
Parce que ces méthodes te renvoient quelque chose du style :
typo-3/generer-des-urls-propres-avec-typo3/
Ce qui est normal
2 décembre 2009 - 17 h 39 min
En fait c’est bien ce qui se passe sur mon site. Mais voilà le problème :
RealUrl me donner un fichier à cette adresse http://///maPage.html. Ce qui me convient parfaitement.
Malheureusement, l’URL donnée grâce à cette méthode est un chemin relatif qui part de http:///// et arrive donc sur une page inexistante.
Je sais pas si j’ai été clair mais je te remercie d’avoir répondu aussi rapidement…
2 décembre 2009 - 21 h 19 min
Bizarre on dirait que cela vient de ta config realurl.
Pour vérifier que c’est la config realurl, désactive realurl et verifie ton lien, si cela fonctionne, c’est ta config realurl. Et la, j’ai fait un post la dessus.
8 avril 2011 - 14 h 08 min
Salut
J’ai un petit soucis, si tu as une idée
$content .= « pi_linkTP_keepPIvars_url(array(‘detailElt’=>$id_element)). »\ »> ».$row['numero']. » « .$row['nom']. »« ;
Qui me génère bien :
1.1.1 Catalogue
Mais je n’arrive pas à récupérer le valeur passé en get de detailElt
t3lib_div::_GP(‘detailElt’); renvoit null
++
8 avril 2011 - 14 h 12 min
ton paramètre se nomme « tx_scolomfr_pi1[detailElt] » et pas seulement « detailElt ».
Essais plutôt $this->piVars["detailElt"] qui récupère automatiquement toutes les variables GET/POST préfixées par le nom de ton extension.
20 septembre 2011 - 16 h 28 min
Salut
Si tu veux rediriger sur la même page avec des paramètre et te positionner sur une ancre de la page ?
Merci
Thierry