Donner accès à une nouvelle page autonome

Quand votre site est en fonctionnement, utilisant toutes les boucles de parcours des rubriques et articles habituelles des squelettes de SPIP, pour ne pas modifier les menus qui sont générés, quelques astuces vous permettent de rajouter l’accès à de nouvelles pages sans risquer de modifier vos squelettes opérationnels.

Article publié le 25 mai 2015, et actualisé en août 2018

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Les jeux de squelettes de SPIP, que ce soient ceux de la dist, d’un plugin ou d’un habillage complet comme Sarka-Spip ou Escal ne laissent pas toujorus facilement insérer de nouvelles pages : comment faire pour y introduire un lien offrant la navigation vers d’autres pages (squelettes spécifiques, ou pages statiques HTML) que vous voudriez introduire sur votre site, sans risquer de perturber la belle harmonie actuelle ?

 SPIP accède à une page autre

Toute page HTML statique est accessible par une URL, construite à partir de l’URL principale d’accueil du site ; et SPIP accède à ses pages par une chaine paramétrée (la query-string) transmise à la page d’appel ./spip.php?page=...., en particulier pour les pages de squelettes !
Mais cela marche pour toute page au format html : ainsi vous pouvez faire appeler par SPIP une page nommée quelconque disons toto.html (dans votre dossier de squelettes), en provoquant le lien comme ci-dessus ./spip.php?page=toto [1].
Dans un squelette vous inscririez : Accès à  <a href="#URL_PAGE{toto}" ...>TOTO</a>..
Et s’il s’agit d’une page à la racine, de votre SPIP, vous inscrirez (presque pareil) : #URL_PAGE{ ./ toto.
En effet, SPIP considère qu’il s’exécute toujours à la racine du site, correspondant à la valeur apportée par la balise #URL_SITE_SPIP (à laquelle vous devrez éventuellement ajouter un slash séparateur..).

 SPIP n’a pas de système de menus

Vous n’aviez pas à vous en préoccuper pour vos objets editoriaux, articles et autres..
Effectivement, la publication des articles dans SPIP ne vous oblige pas à devoir rajouter un lien à chaque nouvel article publié, bien au contraire : c’est d’ailleurs un point qui peut surprendre les adeptes d’autres CMS, l’absence totale de menus explicites !
- d’abord parce qu’ils sont inutiles à une chaine de production éditoriale :
Quand un article est publié, il est forcément rattaché à une rubrique, et donc accessible parmi les articles au sein de la page de cette rubrique : pas besoin de rajouter un lien de menu spécial.
De plus, si vous "tagguez" ce article ou ce post par un choix de mots-clés (encore une posssiilité standard de SPIP, trop souvent ignorée) l’accès aux mots-clés vous fera magiquement apparaitre un second lien de navigation vers cet article.
- les menus apportent une complexité de suivi éditorial de cohérence des liens et pages publiées (neanmoins SPIP propose divers plugins pour suivre et controler ces risques d’incohérences).
Si des liens en-dur étaient inscrits dans des menus (statiques), tout deplacement ou renommage d’article obligerait à (penser à) retrouver tous ces liens, et à les corriger à chaque fois [2] !

Alors, comment faire co-exister les deux systèmes ci-dessus ?

 Introduire des articles virtuels locaux

L’objectif est donc de faire apparaitre lien vers un article, avec un titre, à positionner dans une rubrique : vous savez dans cette rubrique, créer un nouvel article ! Le pavé de lien virtuel
On va juste introduire dans le contenu de cet article [3], le lien vers l’URL de page réelle voulue... et SPIP se chargera bien naturellement de faire apparaître le renvoi à la position correcte !

Nota Bene : pour cette facilité, l’option d’utilisation des articles virtuels doit avoir été autorisée par votre webmestre : voir Configurer SPIP 2 : 1. Contenu du Site.
Et le passage de SPIP 2 à SPIP 3 s’est accompagné d’un implémentation différente [4], déplaçant l’astuce du lien = mis en chapeau, vers un champ dédié.
un lien "standard" vers un squelette personnel.

 Gérer les articles virtuels avec SPIP !

Si les articles virtuels ne sont qu’une facilité implicite, il est tout de meme important de savoir les suivre, car les liens -surtout externes- peuvent disparaitre facilement sur le Web.

En SPIP 2, le lien virtuel etait stocké dans le #CHAPO (voir la référence ci-dessous) ; en SPIP 3, un mini-formulaire présenté plus haut inscrit l’information dans un champ dédié !

Alors, voici une petite boucle pour SPIP 3, vous permettant d’afficher rapidement tous les articles virtuels internes de votre site :

  • la ligne #AUTORISER{webmestre}.. réserve l’accès à la page contenant cette noisette au(x) seul(s) webmestre(s) du site,
  • le critère du champ virtuel compare son début [5] à votre URL d’origine,
  • le lien #URL_ECRIRE permet d’appeler directement dans l’interface privée l’écran d’édition de l’article dans une autre page web ( avec target="_blank")
  • la balise #INFO_TITRE permet d’afficher en clair la rubrique concernée
    1. <h3>Liens internes au site #URL_SITE_SPIP</h3>
    2. [(#AUTORISER{webmestre}|sinon_interdire_acces)]
    3.   <BOUCLE_art(ARTICLES){virtuel LIKE #URL_SITE_SPIP%}{par id_rubrique,titre}>
    4.     #PUCE <a href="#URL_ARTICLE">#TITRE</a>
    5.         [ : éditer <a href="(#URL_ECRIRE{article_edit,id_article=#ID_ARTICLE})" target="_blank">#ID_ARTICLE</a>].<br />
    6.         ( #ID_RUBRIQUE.  #INFO_TITRE{rubrique,#ID_RUBRIQUE} )
    7.     <br />#INTRODUCTION<br />
    8.     </BOUCLE_art>
    9.         <p>(en articles virtuels)</p>

    Télécharger


Merci de nous signaler les coquilles, imprécisions ou erreurs qui figureraient dans cette page.

[1Vous aurez remarqué que l’extension .html est inutile !

[2Vous imaginerez sans peine le tracas potentiel, meme avec un seul rédacteur, dès que vous atteindrez une cinquantaine d’articles ; j’ai ainsi vu/repris un Joomla avec une centaine de catégories... et autant de menus -en deux langues- : sans commentaires !

[3Dans le CHAPO, ou depuis SPIP 3 le champ dédié virtuel !

[4Gérée automatiquement par SPIP à la transition, pas d’inquiétude a avoir pour retrouver ses articles virtuels !

[5LIKE est une instruction tirée de MySQL, qui utilise le % comme caractère générique : voir le critère sur la doc SPIP !


Liens A2A visibles seulement pour les inscrits.
Liens visibles seulement pour les inscrits.

Article publié le 25 mai 2015, et actualisé en août 2018 .

Répondre à cet article