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

103 discussions

  • 2

    Une petite question juste : comment faire pour passer en page unique un article déjà créé en base (et donc dans une rubrique) ?

    Eh oui... j’avais jusqu’à présent une rubrique qui me servait de fourre tout... mais comment migrer vers ton plugin ?

    • C’est une bonne question et il n’y a pas de bouton pour ça pour l’instant.

      Je rajoute donc ceci à la liste des choses à faire sur ce plugin. En plus j’y ai pas touché depuis un certain temps... :)

      Il faudrait donc un bouton sur chaque article classique « Transformer en page » et sur chaque page « Transformer en article ». Histoire de pouvoir basculer dans les deux sens.

      C’est une très bonne idée.

    • Ou alors ajouter sur la page ecrire/ ?exec=pages_tous une liste des articles et le webmestre coche les pages uniques.

      Moi aussi je dois recréer des pages existantes pur les mettre en « page unique »
      dd

    Répondre à ce message

  • 1

    Ouaip. Ou plus simplement, dans la liste déroulante où l’on effectue le choix de la rubrique lorsqu’on crée ou modifie un article, on pourrait imaginer un item « Page » ou « Hors rubrique ». Comme ça - hop ! - on ne modifie pas l’interface standard bien connue de tous. :)

    • C’est plus compliqué parce que d’une, il faut quand même qu’il y ait le champ « page » pour remplir l’identifiant de la page. Et de deux, quand on installe le plugin « Polyhiérarchie » le sélecteur de rubrique n’est plus le même, et ça ne collerait pas du tout.

    Répondre à ce message

  • 1
    Philippe G.

    Bonjour,
    J’ai peur d’avoir un problème de compréhension... J’ai lu l’article et tous les posts.
    1) J’ai créé en local - pour test ! - un squelette plan_1.html (pourquoi pas), qui reprend en fait le squelette de plan.html sans modif sauf la boucle de tête : j’ai cru comprendre qu’il fallait remplacer
    <BOUCLE_principale(ARTICLES){id_rubrique}> par <BOUCLE_plan_1(ARTICLES){page}> et naturellement à la fin </BOUCLE_plan_1>.
    2) J’ai créé une page unique et dans le champ page j’ai mis plan_1.html.
    3) Rien ne se passe, pas d’affichage du plan (ce que je souhaitais) :-(

    J’ai naturellement testé d’autres choses mais ce qui est ci-dessus me paraissait le plus logique. Or donc ça ne marche pas. Où ai-je fais une erreur ?

    Merci de tes lumières.

    • « plan_1 », pas « plan_1.html ». Comme ce qu’on appelle dans l’URL : « spip.php ?page=plan_1 »

    Répondre à ce message

  • 4

    Salut Rastapopoulos.

    Je crois que ton plugin il m’aime pas beaucoup.

    Sur une 2.0.9 SVN toute neuve à peine installée à peine finie de payer, j’installe le plugin, je vais pour créer ma page, je rentre le texte, je valide et.... et rien, la page ne s’enregistre pas (l’id ne s’incrémente même pas, c’est dire !) et je me retrouve redirigé vers exec=accueil sans autre forme de procès.

    SPIP 2.0.9 SVN [14465] + Pages 0.2 SVN [31344]

    a prioris je n’utilise que des plugs codés par toi, Romy, Cedric ou Marcimat et à prioris compatible ou du moins prévu pour fonctionner ensemble.

    C’est grave Docteur ?

    Merci pour tout retour.
    Etienne.

    • Je regarde ça lundi matin, ou peut-être dimanche soir.

    • OK merci à toi. N’hésite pas à demander si tu as besoin d’un accès au site (sur un serveur de dev) je t’enverrai des accès. ;-)

      Bon week end à tous.

    • J’ai mis à jour le SPIP de test sur lequel j’avais « Pages uniques ». J’ai plus d’une dizaines de plugins actifs dessus (dont le Couteau Suisse !! :o).

      Et je ne reproduis pas. Tout marche bien, l’article est créé et je tombe dessus après validation.

      Il faudrait que tu me dises quels sont tous les plugins actifs sur ton site. Ou bien toi-même désactive-les un par un, pour voir lequel bloque.

    • Ouep ! Pas trop eu le temps de me pencher dessus aujourd’hui mais en fait je soupsconne un bug de mon SPIP tout court.

      Parce qu’après test, je ne peux rien créer du tout : ni rubrique ni article ni rien. Donc le pbm doit venir d’ailleurs. Je te tiens au courant

    Répondre à ce message

  • Bonjour Rastapopoulos :-)

    Le plug fonctionne très bien, par contre, je viens de refaire une instal neuve et il s’est installer dans le dossier lib et non dans ...plugins/auto.

    J’ai donc deplacer le dossiers « page » du plug dans le dossier plugins/auto avec filezilla puis fait la suppréssion du dossier plugins qui c’était créer avec le plug dans le dossier lib.

    Voilà, c’est juste pour faire une remonter d’info !

    Répondre à ce message

  • 2
    Tropicaloo

    Bonjour,
    Y-a-t-il des modifications de fichier possibles afin de pouvoir utiliser le plugin Page Unique avec le plugin Polyhiérarchie de Cedric et Romy ?
    Cedric ne connaissant pas bien Page Unique, ne sait pas où traiter la compatibilité
    (Lors d’une création de Page Unique, Polyhiérarchie oblige à sélectionner une rubrique)
    Cordialement

    • Je regarde ça dès que j’ai de nouveau la tête dans le guidon.

    • Tropicaloo

      Ok, merci beaucoup.
      Pas de souci, c’est pas urgent, moi aussi, j’ai plus la tête à profiter des beaux jours qu’à faire du code.
      @+

    Répondre à ce message

  • 1
    minimalteck

    Comme RastaPopoulos l’a rappelé les articles de type « pages uniques » - générés par ce très utile plugin - ont un id_rubrique=-1.
    Partant de ce postulat, il est aisé de fournir un squelette par défaut à ce type de page, simplement en créant un fichier article--1.html dans le répertoire des squelettes.
    Pour les explications, je vous renvoie à la doc SPIP : Les variantes de squelette

    Spipalement...

    • Aries no Mü (BAM)

      Vraiment bien utile ce petit plugin. Sans prétention mais indispensable !
      @minimalteck : ta précision aide à voir l’utilisation qui doit en être faite de façon plus claire !

    Répondre à ce message

  • 2

    Bonjour,

    Ce que je ne comprends pas c’est que la liste « Dans la même rubrique » affiche les autres pages uniques. Il me semblait que l’intérêt de ce plugin était justement de ne pas associer les articles à une rubrique. D’ailleurs je ne sais pas comment exclure cette rubrique fantôme de ma boucle « même rubrique » puisqu’elle n’a pas d’id. Aurais-je raté quelque chose ?

    Merci de votre aide

    gef

    • D’ailleurs je ne sais pas comment exclure cette rubrique fantôme de ma boucle « même rubrique » puisqu’elle n’a pas d’id. Aurais-je raté quelque chose ?

      En fait, les pages uniques sont des articles ayant comme rubrique « -1 ». Rubrique qui évidemment n’existe pas et n’existera jamais. Mais ils ont effectivement tous la même non-rubrique (il fallait bien mettre quelque chose dans cette colonne :)).

      Une fois que vous savez ça, ça ne devrait pas être trop compliqué de l’exclure.

    • OK, merci beaucoup !

    Répondre à ce message

  • 2

    Bonjour,

    Et oui bravo pour cette idée aussi simple que géniale !

    Pour des raisons pratiques, mes préférences vont vers la solution d’utilisation d’un fichier html avec le même nom que la champ « page ».

    J’ai vraiment l’utilité de cette personnalisation.

    J’ai donc lu et relu et pas moyen d’obtenir le moindre résultat (même partiel) avec la syntaxe :

    #URL_PAGE{nom_de_le_page}

    La page n’est tout simplement pas considérée !!

    C’est grave docteur ?

    A + MARC Et merci encore ...

    • #URL_PAGE{nom_de_la_page} amène vers spip.php ?page=nom_de_la_page

      Donc appelle le squelette « nom_de_la_page.html ».

      Dans ce squelette vous devez donc faire :

      <BOUCLE_article_principal(ARTICLES){page}>
      <html>
      zoeughoghozerhg
      ozerighozerghoerg
      zoiefziehhghrgoeirhg
      </html>
      </BOUCLE_article_principal>

      Et bien sûr, avoir une page unique dont le champ « page » est « nom_de_la_page ».

    • Bingo !!

      J’ai tout refait, calme et inodore.... et çà fonctionne BRAVO et BRAVO et re BRAVO

      Simple et génial !!

    Répondre à ce message

  • 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

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