SPIP-Contrib

SPIP-Contrib

عربي | Deutsch | English | Español | français | italiano | Nederlands

288 Plugins, 197 contribs sur SPIP-Zone, 162 visiteurs en ce moment

Accueil > Squelettes > Tutoriels pour squelettes > Passer TOUS les paramètres de l’URL à un INCLURE

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

17 décembre 2006 – par mortimer, Olivier GENDRIN – commentaires

0 vote

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

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] :

  1. function env($env,$par='') {
  2. $env = str_replace('"','"',$env);
  3. if($par) {
  4. $env = unserialize($env);
  5. return entites_html($env[$par]);
  6. }
  7. return $env;
  8. }

Télécharger

-  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 :

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

Exemple

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

  1. <BOUCLE_coeur_article (MOTS) {id_article} {type = _squelettes_article}>
  2. <INCLURE {fond=squelettes_articles/#TITRE} {id_article}>
  3. </BOUCLE_coeur_article>
  4. <INCLURE {fond=squelettes_articles/defaut} {id_article}>
  5. <//B_coeur_article>

Télécharger

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

Dernière modification de cette page le 3 mars 2015

Retour en haut de la page

Vos commentaires

  • Le 13 février 2012 à 19:57, par YannX En réponse à : Passer TOUS les paramètres de l’URL à un INCLURE

    Fonctionnalité intégrée au Core depuis...... (au moins SPIP v2 ! )

    Répondre à ce message

  • Le 18 janvier 2007 à 13:25, par piif En réponse à : Passer TOUS les paramètres de l’URL à un INCLURE

    Merci pour l’idée, c’est pile ce qu’il me fallait :-)

    Pour éviter l’usage systématique du filtre env, qui est un peu lourd, on peut définir la fonction suivante (dans mes_fonctions ou un plugin) :

    function balise_SETENV($p) {
            $p->code = "(\$Pile[0]= array_merge(unserialize(\$Pile[0]['env']), \$Pile[0]))&&''";
            return $p;
    }

    Cette fonction copie le contenu de l’argument env dans l’environnement courant.

    Donc si le squelette inclu contient au début un #SETENV, [(#ENV{env}|env{mon_param})] peut être remplacé par #ENV{mon_param} ou même #MON_PARAM s’il n’y a pas de risque de confusion avec une balise de boucle.

    Attention, pour éviter les strreplace et compagnie, il faut appeler cette version avec{env=#ENV**}

    • Le 18 janvier 2007 à 17:17, par Fil En réponse à : Passer TOUS les paramètres de l’URL à un INCLURE

      Le hack est pas mal, mais (pour mémoire) quelqu’un avait eu l’idée de faire un critère d’inclusion spécifique qui fasse ça « proprement ». Seulement j’ai oublié quel nom on voulait lui donner...

    Répondre à ce message

Répondre à cet article

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 Les choses à faire avant de poser une question (Prolégomènes aux rapports de bugs. )
Ajouter un document

Retour en haut de la page

Ça discute par ici

  • GIS 4

    11 août 2012 – 1417 commentaires

    Présentation et nouveautés La version 4 de GIS abandonne la libraire Mapstraction au profit de Leaflet. Cette librairie permet de s’affranchir des librairies propriétaires tout en gardant les mêmes fonctionnalités, elle propose même de nouvelles (...)

  • Plugin Domlang : Domaines par secteur de langue

    4 septembre – commentaires

    Domlang est un plugin qui permet d’associer un nom de domaine ou un sous-domaine à un secteur de langue. Ce plugin convient pour un site qui utilise des secteurs de langues. En configuration, pour chaque secteur, vous pourrez définir une URL (...)

  • Menu de langues sous forme de liens

    30 novembre 2009 – 121 commentaires

    Par défaut, le menu de langue de SPIP s’affiche : Sous la forme d’une liste déroulante ; En affichant toutes les langues du site, qu’elles soient utilisées ou non (c’est à même si elles ne sont pas affectées à au moins un article ou une rubrique) ; Sans (...)

  • Agenda 2.0

    3 novembre 2008 – 1098 commentaires

    Voici la version pour SPIP 2.0 du Plugin Agenda pour SPIP 1.9.2, avec une interface remaniée pour encore plus de plaisir. Pour une documentation concernant l’utilisation d’Agenda 3 pour SPIP 3, veuillez pour l’instant vous référer à SPIP 3, Agenda (...)

  • Mailsubscribers

    16 janvier 2013 – 332 commentaires

    Ce plugin permet de gérer les inscriptions (ou abonnements) à la diffusion de contenu par email. Mailsubscribers permet de gérer les inscriptions par Opt-in simple ou double et la désinscription par URL. Ce plugin gère également plusieurs listes de (...)