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 17 mai 2018

Discussion

88 discussions

  • 2

    Bonjour,
    J’ai effectué ce matin la MAJ vers Pages 1.3.8. et là surprise mon site ne s’affichait plus, plus d’accès à l’interface privée non plus. J’ai donc par ftp remis la version Pages 1.3.7. et miracle tout est revenu.
    Je ne sais pas où se situe le problème. Je suis sous SPIP 3.2.1. Escal 4.2.33.
    Merci de votre aide.
    Yann

    • Il faudrait activer l’affichage des erreurs.

    • Quand je regarde mon fichier error_log je trouve ceci sur plusieurs lignes à l’heure où j’ai installé la MAJ :
      [Thu Jan 17 09:18:29 2019] [warn] [client 90.107.58.69] mod_fcgid : stderr : PHP Fatal error : Cannot redeclare autoriser_rubrique_creerarticledans() (previously declared in /var/www/vhosts/maisondesprovinces.fr/httpdocs/plugins/auto/autorite/v0.10.20/inc/autoriser.php:254) in /var/www/vhosts/maisondesprovinces.fr/httpdocs/plugins/auto/pages/v1.3.8/pages_autorisations.php on line 197

    Répondre à ce message

  • 9

    Alors je suis désolé de jouer les rabat-joie plusieurs années après mais j’ai trouvé une faille :)
    En fait les pages uniques ne sont belles et bien pas indexées automatiquement, et si le .htaccess n’autorise pas la découverte la page est cachée, ça c’est nickel ! Par contre les commentaires bas de page (comme celui-ci) s’il y en a, sortent sous « Messages » dans les résultats d’une recherche.

    C’est lorsque j’ai changé un article en page à la suite de son obsolescence partielle que j’ai constaté cela. Perso je ne suis pas vraiment gêné car je ne la dissimule pas complètement, juste je la cache un peu (et puis elle reste indexée dans les moteurs de recherches), mais j’estime qu’une page qui serait crée dans un but privée ne pourrait pas être commentée sous peine de pouvoir être trouvée et j’estime cela un peu dommage

    • Hello,
      je ne vois pas trop ce que tu veux dire car ce plugin n’a jamais eu pour but de CACHER des articles. Au contraire ce sont des articles normaux, avec les mêmes statuts, donc publié, etc. Seulement ils ne sont RANGÉS dans aucun rubrique. C’est juste un truc de rangement.

      Si tu veux dépublier ou archiver des trucs, ya un plugin Archives pour ça à priori.

    • Bah comme l’énoncé’ du plugin dit « articles qui ne sont rattachés à aucun rubriquage particulier » on peut je pense présumer que si aucun linkage n’est créé la « page unique » n’est pas découvrable par le commun des mortel ? En tous cas c’est bien le cas, même par les robots d’indexations, et même lorsqu’on lance une recherche sur la page avec le moteur de recherche de SPIP, la page ne sort pas. Moi je dis assez parfait, et c’est d’ailleurs cela qui m’avait fait conserver ce plugin : des pages un peu cachées jusqu’à un éventuel linkage, exactement ce que je cherchais.

      Mais parfait jusqu’à ce qu’un visiteur publie un commentaire sur la page. Car ce commentaire devient, lui, trouvable via le moteur de recherche dans SPIP. Et ceci rend alors la page découvrable !
      C’est vraiment le seul truc accessible que j’ai pu apercevoir qui rende la page découvrable, je trouve cela vraiment dommage

      En capture une recherche de la page unique « Indian Road » sur le site https://docsanscible.fr et qui comporte un commentaire. Comme on peut le constater la page n’est pas trouvée, par contre le commentaire l’est.

      Je ne sais pas quel genre de boulot ça peut être, perso de remédier à ça, je ne crois pas avoir les connaissances pour le faire, mais franchement je pense que ça mériterait

    • Bé non, il n’y a rien à faire, ce plugin n’a pas et n’aura jamais pour but de cacher quoi que ce soit. Ce sont des articles publiés, donc accessibles à tout le monde. Après ça dépend des squelettes du site, et ça ça peut être 12000 trucs différents suivants les sites, chacun fait ce qu’il veut. Si tu veux cacher des choses, soit tu modifies tes squelettes, soit tu utilises un plugin qui dépublie ou met en archive réellement les articles.

    • Non merci je ne désire pas archiver ni dépublier.
      J’utilise le dist
      Je considère que les « articles qui ne sont rattachés à aucun rubriquage particulier » du plugin « Pages uniques » recèlent en réalité une façon de se faire rattacher. Je pense que ça doit pouvoir se résoudre mais je n’en ai pas les moyens.

      Ce sera tout merci

    • Je n’ai pas compris la phrase "« Pages uniques » recèlent en réalité une façon de se faire rattacher"

      En gros, si j’ai bien compris, vous ne voulez pas afficher les résultats des forusm dans le formulaire de recherche ?

      Par ce que vraiment, page unique ce n’est pas fait pour cacher une page !

    • « vous ne voulez pas afficher les résultats des forums dans le formulaire de recherche »
      C’est exactement cela :) Ne pas afficher les résultats des forums (j’aurais sans doute du employer le bon mot d’entré, désolé) des pages uniques dans le moteur de recherche de SPIP :)
      Parce qu’il est chouette ce plugin je veux dire ! C’est même pas merci c’est pire :) On crée une page unique, on peut travailler un peu à plusieurs auteurs dessus, la mettre en ligne et la montrer via juste son adresse sans code d’accès, recevoir des avis aussi en commentaires dans le forum, continuer à travailler tout en la laissant publiée, et tout ça sans que les visiteurs de passage ne soient en mesure de la trouver :) Pas complètement cachée (on ferait autrement) : juste un peu. Juste assez :)
      Et ça ce plugin le procure par défaut ! Tant qu’il n’y a pas un commentaire :)

      Je vous remercie en tous cas de l’attention que vous m’avez porté :)

    • Oui, c’est vraiment pas l’usage pour lequel ca a été prévu, même si avec la dist ca peut correspondre.

      Donc il vous faut masquer les forums des resultats de recherches. Vous êtes avec la dist :
      -  créer (si ce n’est pas deja fait) un dossier squelettes (à coté de ecrire, squelettes-dist, etc).
      -  copier squelettes-dist/recherche.html dans ce dossier squelettes
      -  modifier squelettes/recherche.html en supprimant :

                              [(#REM) Messages trouves ]
                              <B_messages>
                              <div class="menu menu_comments">
                                      #ANCRE_PAGINATION
                                      <h2><:messages_forum:> (#GRAND_TOTAL)</h2>
                                      <ul class="spip">
                                              <BOUCLE_messages(FORUMS?) {recherche} {!par points} {pagination 5}>
                                              [<li><a href="#URL_FORUM"[ title="(#TITRE|attribut_html|couper{80})"]>(#TEXTE|couper{80})</a></li>]
                                              </BOUCLE_messages>
                                      </ul>
                                      [<p class="pagination">(#PAGINATION)</p>]
                              </div>
                              </B_messages>
    • Ah ou enlever les commentaires des résultats de recherches oui :)
      Comme ça maintenant je sais où ça se tient ? :) Je vais regarder si y’a moyen de s’arranger avec la boucle pour le fun :)
      En tous cas merci pour votre présence et le coup de main :)

    • Il veut pas virer les forums, il veut virer juste les forums qui sont sur des pages uniques.

    Répondre à ce message

  • 3

    Bonjour,

    Lorsque :
    -  l’on crée un article virtuel sur une page
    -  Que les URLs du site sont arborescentes

    L’article virtuel est redirigé sur une page 404.

    Dès que la page est transformée en article, la redirection fonctionne.

    Quelqu’un a t-il une solution pour pallier à ce problème ?

    • Bonjour Yohooo,

      Je viens de vérifier, en 3.2-dev et en 3.1, et je ne reproduis pas entièrement ce comportement.
      En fait ça fonctionne dans les 2 cas par défaut.

      Sauf. Sauf si un autre jeu d’URLs était utilisé auparavant (ou après), par exemple ’Libre’. Dans ce cas, pour les URLs pages, une nouvelle URL est généré qui ne contient pas le champ ’id_parent’. Et le mélange de ces 2 monde semble les perturber. C’est peut être un problème dans ce plugin…

      Toujours est-il que la correction est assez simple cependant : supprimer l’URL qui n’a pas le id_parent (-1) renseigné, lorsque tu passes en URLs Arborescente (la recréer au besoin ensuite), pour les articles pages.

    • Précisions : en 3.2-dev je ne reproduis pas de 404 même si le parent n’est pas renseigné.
      Visiblement il y a eu amélioration entre temps.

    • Hello Mathieu,

      Merci pour la solution.

      Sur ma version, en 3.1, supprimer les URL n’ayant pas d’id_parent (-1) ne suffit pas. Il faut tout simplement en ajouter une nouvelle.

    Répondre à ce message

  • J’ai l’impression que je suis tombé sur un loup ...
    Soit dans un coin de page une boucle qui teste la présence d’une page unique
    <BOUCLE_test(ARTICLES){page=toto}> et qui renvoie un item de menu si cette page existe. Jusque là tout va bien

    La page qui contient ce code est amenée à rapatrier des brèves issues d’un site distant (=un autre site SPIP) : elle est appelée une url du type
    ?page=breve&id_breve=xx&connect=connect_distant
    alors le debug m’affiche une erreur => BOUCLE_test critère = inconnu

    Une écriture « forçant le connect local » rétablit le bon fonctionnement

    <BOUCLE_test(connect:ARTICLES){page=toto}>

    mais bon, ça fait un peu rustine ! Un tour de torunevis ou un boulon à serrer quelque part dans le code du plugin pour ne pas avoir besoin de ce correctif ?

    Répondre à ce message

  • 7

    Bonjour,

    Je viens de faire une mise à jour de SPIP via spip_loader (SPIP 3.1.1 [22913] ) et maintenant, les pages-uniques ne sont plus listées dans ?exec=mot&id_mot=xx.
    Par contre ?exec=groupe_mots&id_groupe=x indique bien qu’il y a un article lié au mot clé xx.

    Pages-uniques est en dernière version ;) et l’affichage via des boucles fonctionne toujours parfaitement.

    Déjà constaté ce souci ?

    Merci,
    françois

    • Je ne l’ai pas indiqué, mais ma page-unique possède un mot-clé xx ;)

    • Ton site était sous quelle version avant ?

    • Oups ! Je n’ai pas vu ta notification : je ne me souviens plus de la version exacte, mais au moins en 3.1.xx.

      D’ailleurs, même phénomène avec une version toute neuve 3.1.4 :
      -  création d’un mot clé 1
      -  création de la page unique
      -  association du mot clé 1 à la page unique et à 2 autres articles classiques
      -   ?exec=groupe_mots&id_groupe=1 indique bien 3 articles pour le mot 1
      -   ?exec=mot&id_mot=1 liste uniquement 2 articles
      -  une BOUCLE mots ne retourne que les 2 articles !!

    • Je viens de trouver une partie de la réponse à la question de la BOUCLE qui ne retournait pas les pages avec le mot clé :
      https://contrib.spip.net/Pages-uniques?debut_comments-list=-1#forum483148

      C’est peut-être aussi une des explications du « non listage » des pages uniques en ?exec=mot&id_mot=1.

    • Oui c’est sûr que c’est ça. Mais le problème c’est qu’on ne va pas surcharger les listes du noyau pour juste ajouter un tout. (On retombe sur un débat des plugins qui veulent modifier les listes en ajoutant des critères, et le fait qu’il n’existe pas de pipeline pour ajouter des critères dans un squelette précis.)

    • Je comprends bien la problématique globale.
      Ceci dit, les 2 vues  ?exec=groupe_mots&id_groupe=1 et  ?exec=mot&id_mot=1 affichent des résultats différents : est-ce propre à Pages Uniques ou un manque du noyau ?

    • Ça dépend des critères de la boucle de liste qui est utilisé, c’est pas le même squelette du tout. Suivant s’il y a les critères {tout}{id_article}{id_rubrique}{page} ça modifie si on affiche ou pas les pages uniques mélangées avec les articles.

    Répondre à ce message

  • 3

    Hello ici :)

    Petit bug spotté à l’instant sur SPIP 3.1-stable [22728]

    Lorsque le site ne comporte aucune rubrique (et en l’occurence dans cecas précis il n’en a aucunement besoin vu que c’est un mini-site vitrine) la création de pages uniques est impossible :-(

    Accès interdit

    Vous n’avez pas le droit d’accéder à la page article_edit.

    Est-ce que c’est voulu ? Corrigeable ? Comment ?

    J’avoue que devoir créer un secteur ici serait complètement superflu et même limite contre-productif : création d’une page publique inutile qu’il faudrait gérer avec du squelettes particulier et/ou des solutions alternatives à base de court-circuit ou autre joyeuseté dans le style... or là je cherche vraiment la simplicité sur ce projet vu qu’il ne comporte que 5 pages et que les seules choses qui ont réellement besoin d’être regroupées dessus sont des documents et qu’album est là pour les prendre en charge.

    Merci d’avance pour vos retours

    • C’est un comportement bloqué dans le noyau de SPIP et pour l’instant je ne vois pas ce qu’on pourrait corriger dans le plugin à moins de tout surcharger. Ça utilise les articles de base, donc ça a les mêmes contraintes du coup. Tu peux parfaitement créer une rubrique bidon, si elle n’a rien dedans elle sera invisible.

    • Woaw ! Quelle réactivité ! Merci !

      Hmmm... invisible certes, mais avec une URL renvoyant tout de même un code 200, de mémoire... bon ça encore j’ai un patch pour contourner.

      Merci pour ta réponse en tout cas ;)

    • Euh non non, un contenu qui n’existe pas ça retourne une 404 hein, comme toujours dans SPIP quand un squelette est vide. Après si ton squelette fait des trucs bizarres… :p
      Mais les squelettes de la dist, et les squelettes générés avec z-core génèrent 404 quand le contenu principal est vide.

    Répondre à ce message

  • 2

    Bonjour,

    Je pense avoir trouvé un conflit entre ce plugin Pages uniques et le critère {traduction} (SPIP 3.1.3, plugin Pages 1.3.5, plugin Menus 1.6.4).
    En effet, le plugin ajoute automatiquement un critère id_rubrique > 0 sur une boucle ARTICLE ce qui ne retourne rien si l’article est en réalité une page unique (car id_rubrique == -1).
    Je m’en suis rendu compte en utilisant le plugin Menus (http://contrib.spip.net/Menus-3139) et en voulant traduire une page unique « Mentions légales » en pied de page.

    La solution que j’ai trouvé est un petit patch du code du plugin qui supprime l’ajout du critère id_rubrique > 0 en cas d’utilisation de {traduction} ou de {origine_traduction} :

    --- pages_pipelines.php.orig        2016-10-14 17:23:58.000000000 +0200
    +++ pages_pipelines.php.patched        2016-10-17 09:55:51.000000000 +0200
    @@ -343,7 +343,10 @@
     
                     // On cherche les critères id_rubrique, id_article ou page
                     foreach ($boucle->criteres as $_critere) {
    -                        if ($_critere->op == 'page' and !$_critere->not) { // {page} ou {page?} mais pas {!page}
    +                        if ($_critere->op == 'traduction' || $_critere->op == 'origine_traduction') { // {traduction} 
    +                                $boucle_articles = false;
    +                                break;
    +                        } elseif ($_critere->op == 'page' and !$_critere->not) { // {page} ou {page?} mais pas {!page}
                                     // On considère qu'on cherche toujours des pages uniques donc on force le filtre id_rubrique=-1
                                     $boucle_articles = false;
                                     $critere_page = true;

    Répondre à ce message

  • Question, pour utiliser ce plugin dans un squelette avec article-XX, J’ai donc crée un fichier article=-1.html.

    Cela fonctionne Mais, si mon url contient ?id_rubrique=1 il perd la page du squelette ci-dessus.

    Une idée ?

    Répondre à ce message

  • Bonjour et d’abord merci pour ce plugin bien pratique !

    Je voulais savoir s’il était possible de changer les urls des liens vers les pages uniques pour rendre tout ça un peu plus joli ?
    Ca marche en ayant une simple url monsite.fr/ ?&page=legal (par exemple) mais ce serait quand même mieux (autant pour l’esthétique que le SEO) d’avoir une belle url.

    Il y a t’il un truc pour arriver à ça ou ce n’est pas possible ?
    Merci beaucoup !

    Répondre à ce message

  • 2

    Bonjour

    Merci beaucoup pour ce plugin très pratique !

    Je voulais savoir s’il était possible de modifier les url d’appel des pages uniques pour avec de belles urls avec le titre de la page plutôt qu’une variable ?page=legal (par exemple)

    Avec les urls qs lorsque j’appelle monsite.fr/ ?mentions-legales je tombe sur une erreur 404 alors que c’est bien le nom de mon article (et que pour les autres articles cela marche).
    Doit-on forcément appeler le squelette via l’url même si on l’appelle dans la boucle de l’article ?

    Bonne continuation

    • Les pages sont des articles, dont ils ont déjà des URL propres. D’ailleurs tu dois forcément le voir dans l’interface d’admin, à priori. Après tu peux utiliser Compositions pour leur affecter un squelette précis autre que article.html. Une fonctionnalité à rajouter (en option sûrement) serait de permettre comme Compositions mais simplifié, juste pour les pages, en leur affectant optionnellement directement le squelette du nom de l’identifiant.

    • Ah d’accord ! Parce que oui j’ai accès à la page unique via son url (je sais pas pourquoi il m’avait fait une erreur précédemment) mais il prend le squelette article et non le squelette spécial legal.html

      On ne peut donc pas combiner un squelette dédié (comme dans le dernier exemple de boucle) et une belle URL via ce plugin seul mais il faut passer par Composition, c’est bien ça ?

      Merci pour cette réponse rapide !

    Répondre à ce message

Ajouter un commentaire

Qui êtes-vous ?

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