Pages uniques

Allez, avouez... il ne vous est jamais arrivé d’avoir besoin d’articles qui ne sont rattachés à aucun rubriquage particulier ? Des articles uniques, n’ayant ni de thème, ni de rapport avec aucun autre ? Ou encore des articles pour lesquels vous avez besoin de faire un squelette particulier mais dont le contenu doit rester modifiable classiquement dans l’interface privée ?

Des pages, en quelque sorte. Des pages uniques rattachées à rien.

On a tous utilisé des bidouilles devenues des habitudes, que ce soit en se basant sur des mots-clés « techniques » ou bien en créant une rubrique « fourre-tout » que l’on devait ensuite rendre invisible dans tous nos squelettes en mettant {id_rubrique!=1}, par exemple.

Ce plugin propose de faire tout cela de manière plus propre et plus pratique.
On peut alors l’utiliser pour créer des pages de notice légale, d’à-propos, ou encore de contact.

Créer des pages

Le plugin ajoute une entrée « Pages uniques » dans le menu « Édition ».

On arrive sur une liste des pages déjà créées. Avec un lien permettant d’en ajouter de nouvelles.

Le formulaire de création d’une page est le même que celui d’un article. Sauf qu’on n’a pas à choisir de rubrique. À la place, on désigne un identifiant de page.

Afficher les pages sur son site

Les pages sont des articles comme les autres, ils n’ont simplement pas de rubrique.

Vous pouvez donc :

  • Utiliser une boucle classique
    <BOUCLE_art(ARTICLES){id_article=38}>#URL_ARTICLE</BOUCLE_art>
  • Utiliser les raccourcis dans les textes [->art38]
  • Cela utilisera donc le squelette normal « article.html »

Mais les pages uniques ont aussi un champ « page » ! Qui peut être utilisé de plusieurs manières pour récupérer habilement ses pages.

Imaginons que l’on ait créé une page « Notice légale » avec le mot « legal » dans le champ « page ». On peut alors :

  • Faire une boucle <BOUCLE_legal(ARTICLES){page=legal}>#TEXTE</BOUCLE_legal>
  • Avoir un squelette « legal.html » dédié. Comme ce squelette sera appelé par ?page=legal, le critère {page=legal} peut se simplifier, dans ce squelette, et s’écrire simplement {page}. La boucle principale devient alors simplement : <BOUCLE_legal(ARTICLES){page}>
  • Depuis la version 1.5.1, il est possible d’avoir un squelette dédié « article=legal.html » qui sera utilisé automatiquement avec la vraie URL de l’article. Ainsi vous pouvez avoir des belles adresses propres tout en ayant un squelette dédié, et sans avoir à utiliser Compositions pour juste un article. Cela fonction aussi avec Z-core pour le squelette du bloc principal.

Lorsqu’on veut juste l’URL, il existe aussi la balise #URL_PAGE_UNIQUE{identifiant} qui permet de retourner l’#URL_ARTICLE mais depuis l’identifiant textuel donné à la page.

Remarques techniques : conséquence sur les boucles (ARTICLES)

Les pages uniques sont automatiquement exclues des boucles (ARTICLES) sauf si l’un des critères suivant est présents :

  • {tout} ;
  • {page} avec éventuellement des opérateurs ({page=toto}, sauf {page=''} ;
  • {id_rubrique=-1} ou {id_rubrique<0}
  • {id_rubrique} ou {id_rubrique? avec une rubrique égale à -1 dans l’environnement ;
  • {id_article} avec éventuellement des opérateurs :
  • {traduction} et {origine_traduction} avec éventuellement des opérateurs.

Discussion

104 discussions

  • Il est génial ce plugin !!!
    Et l’exemple des mentions légales est précisément mon cas... Installation + Prise en main 5minutes puisqu’il n’est même pas nécessaire de refaire un squelette.

    Bravo pour l’idée et la mise en œuvre !

    Merci !

    Répondre à ce message

  • Bonjour,
    encore merci pour cette contribution à l’outils formidable qu’est SPIP.

    J’aurais souhaité voir ces pages dans l’espace privé car plus facile à retrouver surtout après quelques mois

    Je suis sur que je plongerais dans les rubriques pour chercher mes articles « pages uniques » et me souvenir après perte de temps et arrachage de cheveux que c’était dans « Edition » => « Pages Uniques »

    Merci de votre attention et si quelqu’un a une direction, je vais voir dans /spip/privé/ !!!

    Répondre à ce message

  • Merci Rastapopoulos !

    Répondre à ce message

  • RastaPopoulos, c’est officiel, je t’aime !!! :-D

    ...« Juste » indispensable

    dixit VXL, c’est tout à fait ca ! Merci :-D

    Répondre à ce message

  • 1
    Jacques Mapson

    Super.

    Je posais encore la question, il y a quelques jours sur le forum de Spip. Je vais tester votre plugin.

    Est-ce qu’il est possible d’en faire autant avec des rubriques. Afin de mieux organiser les « pages uniques » ?

    Pour :

    1) Appeler des rubriques entières (et afficher les pages uniques) selon le contexte.

    2) Appeler directement une page unique.

    Merci pour votre contribution.

    Jacques

    • Non, les pages uniques ne sont que des pages, c’est le principe. Donc des articles, mais uniques, placés nulle part.
      Désolé.

    Répondre à ce message

  • Merci beaucoup pour toutes ces précisions Vincent.

    Répondre à ce message

  • 1

    vous exuserez mon coté farfelu mais cela fait seulement quelques mois que je suis passé à SPIP après 8 ans « d’embrigadement » sur phpnuke donc j’ai encore des reflexes nukien...Donc je veux bien changer le code en dur tant que j’arrive au résultat voulu. Si vous allez sur http://poleculturel.free.fr vous remarquerez que j’ai changé le « pointage » du lien « contact » vers une page que j’ai créé (contactme.html), cette page existe mais n’est pas listée en tant qu’articles dans la page d’accueil, elle n’apparait que si l’on clique sur contact. Alors la question est double : Peut on faire la même chose avec le plugin page unique et est ce que je peux faire(forcer) pointer une rubrique vers cette page ? Merci.

    • Sami, il faut différencier les articles dans SPIP, et les squelettes appelés dans les URLs. Ici « contactme.html » est un squelette, qui peut contenir aussi bien des choses en dur que des choses récupérées depuis la base de donnée.

      Ce que permet le plugin « Pages uniques », c’est de pouvoir avoir un contenu modifiable dans la base de SPIP (et donc pas en dur dans un fichier). Mais qui n’est pas dans une rubrique, qui n’a pas de raison d’être regroupé avec d’autres articles.

      Ainsi, si vous avez besoin d’une présentation particulière pour votre page de contact, vous pouvez garder votre squelette « contactme.html ». Ensuite vous créez une page unique ayant pour champ page « contactme ». Et dans votre squelette vous pourrez récupérer ce contenu de la base en faisant <BOUCLE_contact(ARTICLES){page}>.

      Mais si votre page de contact ne nécessite en fait aucune présentation particulière, alors autant utiliser le même squelette que pour les autres articles. Ainsi vous pouvez utilisez #URL_ARTICLE qui utilisera le squelette « article.html ».

      Attention, comme je l’ai dit tout à l’heure, pour ne pas que les pages uniques se retrouve dans les boucles d’articles, il faut que ces boucles ait un critère en rapport avec l’« id_rubrique » ou avec « page ». Par exemple {id_rubrique>0} (les articles ayant une rubrique), ou bien encore {page=''} (les articles ayant un champ « page » vide.

    Répondre à ce message

  • 1

    y a un truc que je ne pige pas, c’est pourquoi quand on crée une page elle apparait systematiquement sur la page d’accueil, y a t il un moyen pour la faire apparaitre uniquement si l’on pointe un lien dessus ? Prenons l’exemple d’un page de contact, il n’est pas utile qu’elle apparaisse dans la liste des articles de la page d’accueil, sa fonction première est d’apparaitre quand « l’appelle ».

    • C’est simple : les pages uniques sont des articles comme les autres. Seulement ils ne sont placés dans aucune rubrique. Ainsi, si vous avez dans votre site, dans vos squelettes, des boucles (ARTICLES) générales, qui n’ont pas de critères discriminant sur la rubrique, et bien les pages uniques pourront forcément sortir aussi.

      Si vous ne voulez pas qu’elles apparaissent il faut alors faire <BOUCLE_sans_page(ARTICLES){id_rubrique>0}>. Autrement dit les articles ayant une rubrique.

    Répondre à ce message

  • 2

    Je viens de tester ce plugin qui m’intéresse beaucoup, mais quand je crée une nouvelle page, il ne semble pas vouloir l’enregistrer ... J’utilise la dernière RC de Spip donc a priori ça devrait bien se passer mais ... ;)
    Quelqu’un a une idée ?

    • C’est corrigé pour le bug (ça renvoyait vers la page d’accueil du privé sans rien faire). SPIP avait modifié un truc dans le formulaire des articles, il fallait que j’utilise id_parent au lieu de id_rubrique. Maintenant ça marche. Si vous avez installé le plugin à partir du ZIP, il faut attendre un peu qu’il se régénère. Sinon dans le SVN c’est ok.

    • Merci beaucoup, à partir du SVN ça fonctionne parfaitement :)

    Répondre à ce message

  • 1

    Comment pourrait-on construire une BOUCLE permettant de lister toutes ces pages uniques, au début du plan du site, par exemple, en présumant qu’on ne connait pas à l’avance le nom des pages ?

    • Pour la boucle, on peut faire :

      <BOUCLE_toutes_les_pages(ARTICLES){page!=''}>
      </BOUCLE_toutes_les_pages>

      Autrement dit : champ page différent de vide.

    Répondre à ce message

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