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. Accolée à une boite 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 nom de page (qui peut être, par exemple, le nom d’un squelette).

Afficher les pages sur son site

C’est très simple, puisque les pages sont des articles comme les autres, ils n’ont juste pas de rubrique [1] .

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>
  • Et mieux encore, avoir un squelette « legal.html » dédié, dans lequel on n’a plus qu’à faire <BOUCLE_legal(ARTICLES){page}>

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.

Notes

[1Chaque page unique a un id_rubrique=-1 : on peut les filtrer/éliminer d’une boucle article par le critère {id_rubrique>0} ou plus simplement {page=''}

Dernière modification de cette page le 13 février 2019

Discussion

88 discussions

  • 5

    Bonjour,
    je rencontre un soucis pour créer un article unique sur un spip 3.0.10 ou 3.0.11 vide, fraîchement installé.

    Une fois le plugin installé en auto et activé, si je vais dans « Edition > Pages uniques » j’arrive sur une page titrée « Toutes les pages » suivi du texte « Il n’y a aucune page pour l’instant. » et dans la colonne de gauche « Raccourcis » suivi d’un lien « Créer une nouvelle page ».

    Si je valide ce lien, j’arrive bien sur un formulaire « article » en mode édition, je saisie mes infos et quand j’enregistre, la page reste en mode édition et rien n’est enregistré dans la base.

    Est-ce un comportement normal,
    1) faut-il commencer par créer une rubrique, puis un article ?
    2) modifier l’article en page unique puis supprimer la rubrique ?

    Merci d’avance pour vos retours.
    Cordialement

    • Oui les pages sont des articles classiques, et SPIP interdit la création d’un article s’il n’y aucun rubrique dans le site. Donc il manque encore soit un message expliquant ça (et sans les boutons de création), soit beaucoup mieux, modifier le comportement pour pouvoir créer des pages uniques même sans rubrique.

    • Autre soucis constaté assez gênant.
      Lorsque un article est converti en page, toute modification ne peut être enregistrée.
      Je suppose que SPIP interdit aussi la modification d’un article qui n’est pas dans une rubrique.

    • Désolé, je n’ai pas encore eu le temps de tenter de reproduire la même chose chez moi. Mais avant, as-tu fais tes tests en désactivé tous les plugins non nécessaires ?

    • Bonjour,
      j’ai fais un test en ne conservant que les plugins indispensables : menus 1.4.5 ; nospam 1.5.4 ; page 1.0.2 ; saisies pour formulaires 1.31.4 ; spip proprio 1.70.0 ; z-dist v1- 1.7.21.

      En revanche, pour un site n’ayant qu’une seule rubrique, si je converti tous les articles de cette rubrique en page unique et *sans supprimer* la rubrique, alors les articles sont modifiable à souhait. C’est ma solution de dépannage.
      cordialement

    • Bonjour

      Suite au besoin d’avoir des articles sans aucune rubrique, je viens de pousser un correctif qui va dans ce sens. Il est testé sous spip 3.0.15.
      Avec ce correctif, on peut s’affranchir de la présence de toute rubrique pour créer et/ou modifier des pages.

    Répondre à ce message

  • 4

    Bonjour,

    Je n’arrive plus à mettre à jour des pages uniques, alors que tout fonctionnait deux mois auparavant. J’ai par exemple une page unique ayant pour champ titre « Réalisations » (en EN « References »), pour champ Page « Références » (à la fois FR et EN). Si je modifie cette page, simplement en ajoutant un espace dans le corps du texte et que j’enregistre les modifications, j’ai le message d’erreur « Charactères alphanumériques en minuscules ou « _ » uniquement » apparaissant dans le champ Page.
    J’utilise SPIP 3.0.10 [20600] et la version 1.0.5 SVN [79192] du plugin Pages.
    Merci pour votre aide,

    Cordialement,
    Jean

    Répondre à ce message

  • 4

    Bonjour,

    je crois que le fonctionnement a changé depuis la mise à jour, ce qui ne me paraît normal…

    j’ai pour habitude de saisir dans le champ « page » une valeur générique, par exemple « entete » pour tous les liens d’en-tête, « piedpage » pour tous les liens de bas de page etc. Chaque page dans sa série étant classée par le préfixe numéroté, exemple : « 1. Contact », « 2. À propos », …

    Or, avec la dernière version que j’ai téléchargée une erreur fait que je ne peux attribuer à plus d’une page la même valeur pour champ « page ».

    Le plugin fonctionne ainsi depuis des années, pourquoi avoir subitement modifié son fonctionnement ?

    • C’était un manque de test d’unicité qu’il y avait avant, et il a été rajouté par Tcharlss. Je sais bien effectivement que lorsqu’un chose est possible, au moins une personne l’utilise. :)

      Mais cette possibilité de regrouper des pages ensemble en utilisant l’identifiant de page n’est pas censé être gardé. En effet, ce plugin ne devrait pas avoir pour but de « ranger autrement » des pages ensembles, puisqu’à l’inverse son but est avant tout de pouvoir créer des pages rangées nulle part.
      Il faudrait donc peut-être changer le numéro de version majeure, pour signifier qu’il y a une perte de compatibilité non négligeable.

      Pour ranger ensemble, il y a des rubriques (ou des mots), mais aussi surtout il y a le plugin Menus qui correspond à ce que tu décris : générer des menus avec des pages diverses et variées.

    • Bonjour,

      Je complète le message de Rastapopoulos : c’est bien moi qui ai mis la pagaille en faisant quelques ajouts au plugin qui ont occasionné des problèmes de rétro-compatibilité dans certains cas. Concrètement j’ai rajouté des vérifications sur la saisie de l’identifiant d’une page pour empêcher les utilisations non « voulues » : l’idée est que l’identifiant doit être unique, sans caractère accentué ni espace.

      Il y a une discussion sur la liste pour savoir si c’était une bonne idée ou pas, en attendant je te conseille d’utiliser la version précédente, téléchargeable ici : http://zone.spip.org/trac/spip-zone/changeset/77174/_plugins_/pages/trunk?old_path=/&format=zip

    • merci pour le lien

    • merci pour le lien, j’étais déjà passé en version antérieure, je comprends le principe.

    Répondre à ce message

  • 1

    Bonjour,
    Impossible de télécharger le plug in Page pour la version 3.0 de Spip. Le lien est rompu

    • Oui pour une raison inconnu ça n’a pas été mis à jour automatiquement suite aux modifications de ZIP qu’il y a eu il y a quelques semaines. Du coup je l’ai fait à la main là. Mais c’est bizarre.

    Répondre à ce message

  • 1
    Stéphane Santon

    Bonjour,

    Est-ce que le plugin surcharge #URL_PAGE pour pouvoir écrire facilement #URL_PAGE{mapage} ?

    Merci

    Répondre à ce message

  • 1

    Bonjour,

    est il possible de lier les pages uniques à l’agenda ?

    apparemment pour le moment non, mais cette option sera t’elle bientôt disponible ?

    merci

    • Mmmh que veut dire lier les pages uniques à l’agenda ? Tu veux dire ajouter des événements d’un article de page unique ?

      Il me semblait qu’il n’y avait rien à faire normalement, à partir du moment où tu n’as pas activé l’option qui impose l’agenda seulement sur certaines rubriques.

    Répondre à ce message

  • 9
    pm2036

    Bonjour,

    A priori,il y a un souci si on utilise les urls arborescentes et le plugin pages.
    Les liens semblent incorrects.

    Exemple : dans l’admin c’est bien défini en « http://www.example.org/spip3/accueil » et dans les squelettes générés le lien se transforme en « http://www.example.org/accueil » et sont invalides.

    Merci

    • Chez-moi-ça-marche. ©

      Attention, si ton site est dans un sous dossier, il y a normalement un truc à déclarer dans le .htaccess (le RewriteBase, un truc comme ça).

    • pm2036

      Chez-moi-ça-marche pas. © ;)
      Mon rewrite base dans mon htaccess est ok je pense ;
      Par contre, ce sont les liens directement générés qui sont incorrects
      J’essaye d’expliquer différement.
      En « gros », ça me génère ça :

      <h3 class="h2 entry-title"><a href="rubrique1/test1" rel="bookmark">Test1</a></h3>
      			<h3 class="h2 entry-title"><a href="/accueil" rel="bookmark">Accueil</a>

      Pour rubrique1/test1, pas de souci, mais pour accueil, ça génère /accueil, j’ai aussi testé l’url directe sans le / ça ne passe pas non plus :(

    • Chez moi aussi ça génère un /contact.html par exemple. Ça marche pour un site qui n’est pas dans un sous-dossier, mais ça ne marche plus quand il y a un sous-dossier.

      Mais avant (quand ?) ça marchait !

      Il y a donc eu : soit une modif de la gestion de la base, soit une modif de la génération de l’URL. Et je ne sais plus si auparavant l’URL générée contenait un / devant ou pas.

      En tout cas je ne crois pas que ce soit dû au plugin, vu qu’il ne touche pas du tout aux URLs (les pages uniques étant des articles classiques).

    • Timestamp

      Bonjour,

      pour palier à ce problème, j’ai modifié le plugin pour qu’il donne 0 plutôt que -1 comme id_rubrique. Je ne sais pas si ça pose un problème par ailleurs, en tout cas ça évite les urls qui commencent par un slash et tout à l’air de fonctionner correctement.

      Les fichiers modifiés sont : pages_pipeline.php, prive/squelettes/contenu/page_tous.html, prive/squelettes/navigation/page_tous.html

      Qu’en penses-tu ?

    • Avant SPIP 3, SPIP supprimait les articles étant dans des rubriques inexistantes ou si id_rubrique était « false » (et 0 est false). De nos jours, SPIP 3 a été corrigé et la branche 2.1 aussi par la même occasion. On pourrait donc revoir ce « -1 ».

      Mais en fait peu importe cette valeur, car on est pas censé l’utiliser, on met une valeur inexistante juste parce qu’il faut bien mettre quelque chose. Ce n’est pas pour autant que ça devrait faire planter des choses ensuite.

      Le problème vient donc plutôt du fait que d’autres parties du code (ici les URLs arbo) ne gèrent pas correctement le fait d’avoir un article n’ayant PAS de rubrique (ou ayant un numéro un peu débile). Il faudrait donc plutôt tenter de corriger le code des URLs arbo.

      C’est ici :
      http://zone.spip.org/trac/spip-zone/browser/_core_/branches/spip-3.0/plugins/urls_etendues/urls/arbo.php#L203

      Et en fait dans le « else » il faudrait tester que rtrim($url_parent,'/') soit non-vide avant de concaténer l’ensemble avec le slash au milieu. Car s’il est totalement vide, alors on devrait renvoyer pareil que lorsque parent=0.

    • Timestamp

      Merci pour l’éclairage historique.

      Effectivement j’avais d’abord pensé modifier le code qui génère les urls arbo. En même temps, si il n’est pas possible par défaut de créer des articles sans rubrique (ce qui me semble dommage) c’est parce que pour l’instant, SPIP est conçu dans l’idée qu’un article dépend toujours d’une rubrique, d’où le fait que ça ne soit pas pris en compte dans la génération des URLs, j’imagine. D’un kludge à l’autre, on s’y retrouve...

      Bref, pour l’instant je conserverais ce plugin patché, et si j’ai le temps, je me pencherais sur ce qui me semble mieux : que SPIP permette les articles sans rubrique.

    • Timestamp

      Bon, en fait gros bug, si id_rubrique est à zéro on ne peut plus modifier les articles... Je patcherais donc le fichier qui génère les urls arbo...

    • Timestamp

      Et merci beaucoup pour le patch !

    Répondre à ce message

  • 5

    Fait étrange : lorsque j’essaie d’afficher la page que j’ai créée (A-propos), spip utilise le squelette par défaut (article.html).

    Le seul moyen d’afficher le squelette dédié semble être de l’appeler dans l’URL (spip.php ?id_article=3&page=a-propos&var_mode=recalcul).

    SPIP 3.0.4 [19781] est installé dans un sous répertoire, sur un serveur mutualisé OVH. Dans l’HTACCESS, j’ai laissé la valeur par défaut de rewrite base. Je peux afficher d’autres articles avec urls réécrites sans souci.

    J’ai raté un truc ?

    • Je précise que j’ai bien renseigné le champ page dans le back office : a-propos.

    • Il n’a jamais été question de ça dans la doc. Ce n’est qu’un identifiant, pas le nom d’un squelette. Si on fait un squelette « a-propos » faut l’appeler avec page=a-propos, et dedans on peut appeler l’article ayant cet identifiant. Dans la todo je dois changer le champ « page » en « identifiant » (comme dans Menus, Formidable, etc) pour moins de confusion.

      Pour avoir un squelette différent pour un article précis, il y a déjà le plugin Compositions, et donc je préfère ne pas mélanger les genres, ya déjà un truc qui fait ça.

    • Ah ok, aux temps pour moi.
      Je vais installer compositions pour voir s’il est possible d’appeler la page unique avec une URL réécrite et un squelette donné.

      Merci,
      Julien

    • Bon visiblement on ne peut pas utiliser le plugin compositions sur une page. Ca me donne une page 404 (alors que ça fonctionne pour les articles auxquels j’ai attaché une composition).

    • Mmmh bizarre, parce que ce sont vraiment des articles comme les autres. Ya que id_rubrique=-1. Peut-être que ce dernier truc plante la recherche de compositions.

    Répondre à ce message

  • 4

    les urls ne se modifient pas automatiquement en fonction du titre ?
    par exemple j’ai une page avec un article « Mentions Légales ». Si je change le titre et la page en « Mentions Légalesss », l’url reste toujours en monsite.fr/mentions-legales.html (url arbo, spip 3.0.5 et c’est le seul plugin que j’ai pour l’instant)

    • Nin plus ni moins que les autres articles, les pages uniques sont des articles comme les autres gérés de la même manière sauf qu’ils n’ont pas de rubrique. Après avoir modifier l’article il faut cliquer sur le bouton « voir en ligne » pour générer une nouvelle URL.Sinon il faut activer la gestion avancée des URLs pour pouvoir voir le bloc de modif des URLs d’un objet éditorial, et dans ce bloc on peut supprimer/ajouter des URLs à un objet (ici un article).

    • Effectivement, le fait de cliquer sur « voir en ligne » modifie bien l’url, par contre j’ai bien la gestion avancée de l’url et le bloc de modif affiche toutes les anciennes url et je n’arrive pas à les supprimer, est-ce que ça ne vient pas du fait que le #parent est indiqué comme -1 ?

      par exemple dans pour mon exemple des mentions légale j’ai dans le bloc de modif des url :

      2 URLs
      URL N°  #parent Date
      mentions-legalesss 14 -1 21 octobre
      mentions-legales 14 -1 16 octobre

      et impossible d’en supprimer une des deux

    • Normalement il y a un bouton avec une petite croix rouge à la fin de chaque ligne d’URL. Dans tous les cas c’est la plus récente qui est générée, mais toutes les anciennes redirigent proprement vers la plus récente. Ça permet de changer d’URL sans casser les liens vers tes pages.

    • Oui j’ai bien vu la petite croix rouge lol mais justement en cliquant dessus ça ne supprime pas l’url.
      Les redirections fonctionnent bien c’est juste que ça ne se comporte pas exactement de la même manière qu’un article « classique » classée dans une rubrique où là si je change le titre et que je supprime l’url il ne m’affiche bien plus qu’une seule url, la plus récente.
      En tout cas merci pour ta disponibilité.

    Répondre à ce message

  • 2

    Bonjour à tous !

    Pour ne pas afficher les pages uniques sur le sommaire d’un site avec Zpip, dans squelettes/contenu/page-contenu j’ai mis :
    <<

    <BOUCLE_articles(ARTICLES) {!par date} {pagination 5}{id_rubrique>0}>

    Ca a l’air de marcher...
    Est ce une bonne solution ?
    Sinon, quelle est LA solution !?

    Merci d’avance !

    • Oui oui, pour l’instant je pense que c’est le mieux (et ça ne casse pas en plus quand on désactive vu que ça teste avec un champ présent de toute façon, ce qui n’est pas le cas si on utilise « page »).

    • Oui oui, pour l’instant je pense que c’est le mieux

      Merci, ça flatte mon ego !!!

      En espérant que ça en aide d’autres !

    Répondre à ce message

Ajouter un commentaire

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