Adapter son SarkaSPIP

, par Patrice HARDOUIN

Les prérequis

Pour commencer ce tutoriel nous avons besoin d’un site internet avec SPIP d’installé. Nous utilisons la version 2 de SPIP. Pour nous faciliter la vie nous allons également utiliser un squelette prêt à l’emploi (SarkaSPIP 3). Mais les procédures indiquées ci-après fonctionnent pour tous les plugins de squelettes existants (il faudra juste chercher un peu pour retrouver quel fichier affiche quoi dans cet autre squelette prêt à l’emploi).

Les plugins de SPIP 2

Pour installer les plugins de SPIP il suffit de suivre la procédure énoncée dans l’article Utiliser la fonction d’installation automatique des plugins de SPIP.
Nous choisissons au minimum le plugin CFG et SarkaSPIP 3.

Pour ma part, j’ai également ajouté le plugin Boutons d’administration supplémentaires qui a le mérite de nettement me simplifier la vie et évite d’utiliser le plugin crayon que je trouve peu pratique (surtout en bas débit internet).

Modifier les icônes des fichiers joints aux articles ou aux rubriques

La liste des icônes choisis pour remplacer ceux fournis par défaut avec SPIP est donnée dans l’article Icônes LibreOffice pour SPIP.

Il suffit de recopier les icônes choisis dans le répertoire de SPIP /squelette/vignettes et c’est tout (il faudra peut-être les renommer par exemple depuis odt-2-86923.png vers odt.png).

Aider les visiteurs pour ouvrir les fichiers OpenDocument

Tous les fichiers joints présentés sur le site sont dans un format OpenDocument (et, le cas échéant, au format svg et pdf). Nombreux sont les collègues ne connaissant pas l’existence de la suite LibreOffice.

Nous avons donc décidé de faire afficher une note en haut de chaque article renfermant un ou plusieurs fichier au format OpenDocument.

Résultat de l’annonce concernant les fichiers OpenDocument dans la partie publique du site

Dans le répertoire /squelette/lang nous créons le fichier local_fr.php dans lequel nous plaçons :

<?php

// This is a SPIP language file  --  Ceci est un fichier langue de SPIP

$GLOBALS[$GLOBALS['idx_lang']] = array(
'annonceooo' => 'INFORMATION&nbsp;: &agrave; cet article est joint un fichier OpenDocument. En cas de difficult&eacute;s pour ouvrir ce fichier, se r&eacute;f&eacute;rer &agrave; la notice suivante&nbsp;: <a href="spip.php?article117">Comment utiliser les fichiers OpenDocument ?</a>',
'annonceooos' => 'INFORMATION&nbsp;: &agrave; cet article sont joints des fichiers OpenDocument. En cas de difficult&eacute;s pour ouvrir ces fichiers, se r&eacute;f&eacute;rer &agrave; la notice suivante&nbsp;: <a href="spip.php?article117">Comment utiliser les fichiers OpenDocument ?</a>'
);

?>

Les quelques lignes de code de notre nouveau fichier local_fr.php pointent vers un article déjà écrit sur le site Comment utiliser les fichiers OpenDocument ? et expliquant comment installer et utiliser LibreOffice pour lire et éditer les fichiers présentés dans l’article.

Nous avons 2 versions de cette annonce : une au singulier (un seul fichier OpenDocument dans l’article) et une au pluriel (au moins 2 fichiers OpenDocument dans l’article).

Ensuite nous créons la noisette (fichier renfermant un petit bout de code réutilisable) suivante (/squelette/noisettes/article/inc_annonceooo.html) :

<BOUCLE_annonceOOo(DOCUMENTS) {id_article} {mode=document}{extension IN odt, ods, odp, odg, odb, odf, odm, oth, ott, otp, otg, sxw, stw, sxc, stc} {0,2}>
</BOUCLE_annonceOOo>

	<blockquote class="spip">
		<p class="spip">
			[(#TOTAL_BOUCLE|>{1}|?{<:annonceooos:>,<:annonceooo:>})]
		</p>
	</blockquote>
</B_annonceOOo>	

Cette noisette (inc_annonceooo.html) va regarder dans l’article s’il y a des fichiers avec les extensions nommées dans le script (odt, ods...). Nous y ajoutons également les extensions pour le "vieux" format StarOffice car le site existant depuis 2001 nous avons peut-être encore des fichiers de ce type qui traînent.

Enfin, il nous faut appeler cette noisette dans l’affichage de chaque article. Dans SarkaSPIP 3, l’affichage des articles est géré par la noisette inc_article_description.html qui se trouve dans le répertoire (si vous avez utilisé l’installation automatique citée ci-dessus) /plugins/auto/sarkaspip3/noisettes/article/

Nous allons donc recopier cette noisette dans notre répertoire de squelettes (/squelette/noisettes/article/inc_article_description.html) afin de pouvoir l’amender d’un appel vers notre nouvelle noisette OOo sans modifier les fichiers originaux de SarkaSPIP3.

Une fois recopiée, nous éditons la noisette /squelette/noisettes/article/inc_article_description.html pour y ajouter cela (appel à notre noisette inc_annonceooo) :

[(#REM) <!-- inclusion de la note concernant l existence de fichiers au format OpenDocument--> ]
[(#INCLURE{fond=noisettes/article/inc_annonceooo}{id_article})]	

L’emplacement le plus pratique serait avant la ligne du "logo gauche" comme indiqué ci-après :

			[(#REM) <!-- inclusion de la note concernant l existence de fichiers au format OpenDocument--> ]
[(#INCLURE{fond=noisettes/article/inc_annonceooo}{id_article})]        
			
		[<div class="logo gauche">(#GET{logo}||image_reduire{#ENV{taille_logo}})</div>]

Ajouter une validation de la licence de diffusion lors de la demande de publication

J’aurais souhaiter placer un système de case à valider avant de lancer la demande de publication d’un article afin que chaque rédacteur confirme que sa production respecte bien la licence CCbySA.

Mais, devant mes faibles compétences en PHP (et avec les idées des participants à l’IRC freenode #spip), j’ai décidé de faire simple en modifiant juste les messages de SPIP.

Pour cela, j’ai ajouté au fichier local_fr.php (dans squelette/lang) les 2 appels suivants qui modifient les appels originaux contenus dans les fichiers de traductione en français de l’espace privé de SPIP /ecrire/lang/ecrire_fr.php).

'text_article_propose_publication' => 'Cet article est maintenant propos&eacute; &agrave; la publication. Cela sous-entend qu\'il respecte toutes les clauses &eacute;nonc&eacute;es dans l\'article <a href="http://www.biotechno.fr/Concevoir-un-cours-de-A-a-Z.html">"Concevoir un cours de A &agrave; Z"</a> et notamment que tout son contenu adh&egrave;re &agrave; la <a href="http://www.biotechno.fr/Concevoir-un-cours-de-A-a-Z.html#licence">licence du site</a>. Si ce n\'est pas le cas il faut repasser cet article sous le statut "r&eacute;daction".',
'text_article_propose_publication_forum' => '<br /><br />Le forum attach&eacute; &agrave; cet article (en bas de page) est l&agrave; pour que vous puissiez donner votre avis concernant cette demande de publication.'

Ce qui nous donne le fichier local_fr.php complet suivant :

<?php

// This is a SPIP language file  --  Ceci est un fichier langue de SPIP

$GLOBALS[$GLOBALS['idx_lang']] = array(
'annonceooo' => 'INFORMATION&nbsp;: &agrave; cet article est joint un fichier OpenDocument. En cas de difficult&eacute;s pour ouvrir ce fichier, se r&eacute;f&eacute;rer &agrave; la notice suivante&nbsp;: <a href="spip.php?article117">Comment utiliser les fichiers OpenDocument ?</a>',
'annonceooos' => 'INFORMATION&nbsp;: &agrave; cet article sont joints des fichiers OpenDocument. En cas de difficult&eacute;s pour ouvrir ces fichiers, se r&eacute;f&eacute;rer &agrave; la notice suivante&nbsp;: <a href="spip.php?article117">Comment utiliser les fichiers OpenDocument ?</a>',
'text_article_propose_publication' => 'Cet article est maintenant propos&eacute; &agrave; la publication. Cela sous-entend qu\'il respecte toutes les clauses &eacute;nonc&eacute;es dans l\'article <a href="http://www.biotechno.fr/Concevoir-un-cours-de-A-a-Z.html">"Concevoir un cours de A &agrave; Z"</a> et notamment que tout son contenu adh&egrave;re &agrave; la <a href="http://www.biotechno.fr/Concevoir-un-cours-de-A-a-Z.html#licence">licence du site</a>. Si ce n\'est pas le cas il faut repasser cet article sous le statut "r&eacute;daction".',
'text_article_propose_publication_forum' => '<br /><br />Le forum attach&eacute; &agrave; cet article (en bas de page) est l&agrave; pour que vous puissiez donner votre avis concernant cette demande de publication.'
);

?>

Voici le résultat lorsqu’un auteur passe en "demande de publication" son article :

message concernant la licence (affiché lors de la demande de publication)

Éviter la confusion entre les forum

Le site de Biotechno pour les Profs a mis en place rapidement un forum extérieur (sous Vanilla). Il y a donc régulièrement des visiteurs qui souhaitent s’inscrire au forum en s’inscrivant en fait pour la partie rédactionnelle du site.

Cela se traduit par un nombre délirant de faux auteurs dans SPIP et surtout des mails en pagaille de visiteurs qui n’arrivent pas à se connecter à Vanilla avec leur login/mdp de SPIP.

Pour tenter de régler ce problème on va utiliser la même "astuce" qu’au précédent item : modifier le message par défaut de SPIP concernant les inscriptions.

On veut arriver à cela :

Annonce pour éviter la confusion avec l’inscription du forum phpBB

On va donc ajouter ce script dans le fichier /squelette/lang/local_fr.php :

'pass_espace_prive_bla' => 'L\'espace priv&eacute; de ce site est ouvert aux visiteurs, apr&egrave;s inscription. Une fois enregistr&eacute;, vous pourrez consulter et commenter les articles en cours de r&eacute;daction, proposer des articles et participer &agrave; toutes les discutions sous les articles. <br /><div style="font-weight: bold;border: 5px double red;margin: 10px;padding: 10px;text-align: center;font-size: large;line-height:1.5em;">Si vous souhaitez participer au <a href="http://forum.biotechno.fr">forum de biotechno</a> vous n\'&ecirc;tes pas au bon endroit&nbsp;! Inscrivez-vous au forum en cliquant sur ce lien&nbsp;: <a href="http://forum.biotechno.fr">forum.biotechno.fr</a>.</div>',

Vous remarquerez que nous avons intégré directement la mise en page CSS dans le script de traduction. Ce n’est pas très académique (il faudrait placer ces commandes CSS dans une feuille de style séparée, mais cela risquait de compliquer un peu trop la chose surtout que le site n’a aucune vocation à devenir multilingue).

Le fichier /squelette/lang/local_fr.php est dorénavant de la sorte :

 <?php

// This is a SPIP language file  --  Ceci est un fichier langue de SPIP

$GLOBALS[$GLOBALS['idx_lang']] = array(
'annonceooo' => 'INFORMATION&nbsp;: &agrave; cet article est joint un fichier OpenDocument. En cas de difficult&eacute;s pour ouvrir ce fichier, se r&eacute;f&eacute;rer &agrave; la notice suivante&nbsp;: <a href="spip.php?article117">Comment utiliser les fichiers OpenDocument ?</a>',
'annonceooos' => 'INFORMATION&nbsp;: &agrave; cet article sont joints des fichiers OpenDocument. En cas de difficult&eacute;s pour ouvrir ces fichiers, se r&eacute;f&eacute;rer &agrave; la notice suivante&nbsp;: <a href="spip.php?article117">Comment utiliser les fichiers OpenDocument ?</a>',
'text_article_propose_publication' => 'Cet article est maintenant propos&eacute; &agrave; la publication. Cela sous-entend qu\'il respecte toutes les clauses &eacute;nonc&eacute;es dans l\'article <a href="http://www.biotechno.fr/Concevoir-un-cours-de-A-a-Z.html">"Concevoir un cours de A &agrave; Z"</a> et notamment que tout son contenu adh&egrave;re &agrave; la <a href="http://www.biotechno.fr/Concevoir-un-cours-de-A-a-Z.html#licence">licence du site</a>. Si ce n\'est pas le cas il faut repasser cet article sous le statut "r&eacute;daction".',
'text_article_propose_publication_forum' => '<br /><br />Le forum attach&eacute; &agrave; cet article (en bas de page) est l&agrave; pour que vous puissiez donner votre avis concernant cette demande de publication.',
'pass_espace_prive_bla' => 'L\'espace priv&eacute; de ce site est ouvert aux visiteurs, apr&egrave;s inscription. Une fois enregistr&eacute;, vous pourrez consulter et commenter les articles en cours de r&eacute;daction, proposer des articles et participer &agrave; toutes les discutions sous les articles. <br /><div style="font-weight: bold;border: 5px double red;margin: 10px;padding: 10px;text-align: center;font-size: large;line-height:1.5em;">Si vous souhaitez participer au <a href="http://forum.biotechno.fr">forum de biotechno</a> vous n\'&ecirc;tes pas au bon endroit&nbsp;! Inscrivez-vous au forum en cliquant sur ce lien&nbsp;: <a href="http://forum.biotechno.fr">forum.biotechno.fr</a>.</div>'

);
?>

Personnaliser le favicon

Le favicon est le petit icone qui apparait à côté de l’adresse du site dans Mozilla Firefox (ou tout autre butineur internet).

affichage du favicon "bio" sous Mozilla Firefox

La procédure pour créer son favicon.

Une fois créé, votre icone prendra place dans le répertoire /squelette/images et sera (moyennant quelques rechargement de page et vidage de cache du butineur) affiché en lieu et place du favicon de SPIP (ou de SarkaSPIP le cas échéant).