Modifier un plugin sur la zone de SPIP

J’ai écris récemment un article sur Comment faire des commit sur la zone de SPIP. Ce présent article continue sur la même lignée. Et je vous parlerai de comment corriger un fichier d’un plugin en local. Puis committer vos modifications.

Préparation

Il va arriver que vous ayez besoin de corriger ou de faire évoluer un plugin de la zone. Pour cela, il vous faudra faire une copie du répertoire de ce plugin sur votre ordinateur. Je vais prendre pour exemple le squelette de la boussole de SPIP. Voici la démarche :

  • créer un répertoire dans vos "Documents" en le nommant "zone_spip" ;
  • Puis depuis votre logiciel de ligne de commandes (un terminal), positionnez vous dans ce répertoire.
    cd ~/Documents/zone_spip/

    La ligne de commande ci-dessus est la méthode sous MacOS X.

On crée une copie en local

Cela fait, on faire une copie du répertoire de notre plugin dans ce répertoire.

svn checkout svn://zone.spip.org/spip-zone/_galaxie_/boussole.spip.org/

Aller depuis votre explorateur de fichier pour voir si vous avez bien le répertoire et ses fichiers.

Modifier nos fichiers

Vous pouvez maintenant modifier vos fichiers. Toujours pour notre exemple, j’ai modifié la ligne #8 du fichier boussole_spip.xml. J’ai remplacé :

<site alias="core" src="http://core.spip.org/trac/spip/" actif="oui" />

par ça :

<site alias="core" src="http://core.spip.org/" actif="oui" />

Vérifier nos modifications depuis le terminal

Puis, depuis votre terminal, nous allons nous repositionner dans ce nouveau répertoire pour y voir ce que nous avons modifié, ajouté, etc.

cd boussole.spip.org/

Pour vérifier le contenu de ce répertoire, tapez cette ligne :

ls -las

Ce qui vous donnera quelque chose de ce genre :

total 48
0 drwxr-xr-x  10 teddy  staff   340 16 jan 13:59 .
0 drwxr-xr-x   3 teddy staff   102 16 jan 13:59 ..
0 drwxr-xr-x   7 teddy  staff   238 16 jan 14:03 .svn
8 -rw-r--r--   1 teddy  staff  1960 16 jan 14:00 boussole_spip.xml
0 drwxr-xr-x   4 teddy  staff   136 16 jan 13:59 images
8 -rw-r--r--   1 teddy  staff  1185 16 jan 13:59 inc-head.html
8 -rw-r--r--   1 teddy  staff   287 16 jan 13:59 inc-pied.html
8 -rwxr-xr-x   1 teddy  staff  3855 16 jan 13:59 jquery.backstretch.js
8 -rw-r--r--   1 teddy  staff  1050 16 jan 13:59 perso.css
8 -rw-r--r--   1 teddy  staff   589 16 jan 13:59 sommaire.html

On est bon. :-)
On va maintenant regarder les différences entre ma versions locales et le répertoire sur la zone de mon squelette :
svn st
Résultat :
M       boussole_spip.xml

Vous désirez voir si ce que vous avez modifié est bien pris en compte ? Rien de plus simple :
svn diff
Résultat :

Index: boussole_spip.xml
===================================================================
--- boussole_spip.xml	(revision 69027)
+++ boussole_spip.xml	(working copy)
@@ -5,7 +5,7 @@
 		<site alias="net" src="http://www.spip.net/" actif="oui" />
 		<site alias="doc" src="http://doc.spip.org/" actif="oui" />
 		<site alias="programmer" src="http://programmer.spip.net/" actif="oui" />
-		<site alias="core" src="http://core.spip.org/trac/spip/" actif="oui" />
+		<site alias="core" src="http://core.spip.org/" actif="oui" />
 	</groupe>
 	
 	<!-- Sites des extensions & contributions SPIP -->

Cool !

Étape finale : envoyer nos modifications au serveur

Il ne nous reste plus qu’à committer notre modification sur la zone :
svn commit -m "Mon message ici"
Ça mouline, ça mouline et on a quelque chose de ce genre afficher :

Sending        boussole_spip.xml
Transmitting file data .
Committed revision 69028.

Tadaaaa ! C’est fini. Vous pouvez voir le résultat de mon exemple sur la zone à cette adresse 69028.

Conseils

Si vous êtes amené à corriger, modifier régulièrement des plugins sur la zone, je vous conseille de construire la même arborescence que la zone :

  • _core_
  • _galaxie_
  • _plugins_
  • _squelettes_
  • _themes_

Soit ceci pour référence : http://zone.spip.org/trac/spip-zone...
Et dernière cerise sur le gâteau, créez aussi un répertoire "archivelist" qui n’aura de but que de contenir le fichier "archivelist.txt" (cf. Publier archivelist.txt via svn/terminal)

 
Langage et développement
XML
Frameworks
SPIP
Industrialisation
SVN
Catégorie
Notes de développement