Passer TOUS les paramètres de l’URL à un INCLURE

Ceci est une archive périmée mais qui reste intéressante, parfois autant pour l’article que les commentaires associés.

Comment passer tous les paramètres de l’url (accessibles par #ENV) à un squelette inclus.

Il est parfois utile de faire descendre des paramètres d’url d’un squelette vers un squelette inclus. On a ainsi pris l’habitude d’ajouter {id_article} et autres dans les balises INCLURE de SPIP.

Mais que faire quand on ne sait pas quel paramètre de l’url on veut passer exactement (parce que ces paramètres sont variables etc...)

Voici un filtre qui permet de transférer le contenu de la balise #ENV d’un squelette à un squelette inclus.

Mise en œuvre

Son utilisation est assez simple, il faut :

-  placer le code suivant dans votre fichier mes_fonctions.php [1] :

function env($env,$par='') {
  $env = str_replace('"','"',$env);
  if($par) {
	$env = unserialize($env);
	return entites_html($env[$par]);
  }
  return $env;
}

-  dans le squelette qui fait l’inclusion, ajouter {env=#ENV} à l’inclusion :
<INCLURE{fond=test}{env=#ENV}>

-  dans le squelette inclus, pour acceder à un paramètre d’url de nom mon_param :

[(#ENV{env}|env{mon_param})]

Exemple

Si on utilise les mots-clés pour inclure certaines noisettes :

<BOUCLE_coeur_article (MOTS) {id_article} {type = _squelettes_article}>
    <INCLURE {fond=squelettes_articles/#TITRE} {id_article}>
</BOUCLE_coeur_article>
    <INCLURE {fond=squelettes_articles/defaut} {id_article}>
<//B_coeur_article>

Ces noisettes ayant des comportements très différents, il est possible de rapidement se retrouver avec plusieurs paramètres différents à ajouter à chaque fois (un pour la pagination, un pour un critére de tri, un pour un filtre par date, …).

Pour être sûr de retrouver le paramètre dont on a besoin, on passe au squelette inclus l’ensemble de #ENV en écrivant <INCLURE {fond=squelettes_articles/#TITRE} {id_article} {env=#ENV}>.

Maintenant, si on a besoin d’un paramètre date dans le squelette inclus, on obtiendra sa valeur à l’aide de [(#ENV{env}|env{date})]

Notes

[1ou le fichier fonctions relatif au squelette inclus

Discussion

Aucune discussion

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom