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 !
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é.
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
- <h3>Liens internes au site #URL_SITE_SPIP</h3>
- [(#AUTORISER{webmestre}|sinon_interdire_acces)]
- <BOUCLE_art(ARTICLES){virtuel LIKE #URL_SITE_SPIP%}{par id_rubrique,titre}>
- #PUCE <a href="#URL_ARTICLE">#TITRE</a>
- [ : éditer <a href="(#URL_ECRIRE{article_edit,id_article=#ID_ARTICLE})" target="_blank">#ID_ARTICLE</a>].<br />
- ( #ID_RUBRIQUE. #INFO_TITRE{rubrique,#ID_RUBRIQUE} )
- <br />#INTRODUCTION<br />
- </BOUCLE_art>
- <p>(en articles virtuels)</p>
Article publié le 25 mai 2015, et actualisé en août 2018 .
Répondre à cet article