Migration du site Quesaco sous SPIP

© Christian PAULUS. Document créé le 19 mars 2007 , mis à jour le 24 mars 2007.

Un idiot pauvre est un idiot, un idiot riche est un riche. Paul Laffitte

Accueil du site > Astuces > SPIP > Migration du site Quesaco sous SPIP

PHP & HTML / SPIP-v1.9.2 [8844]

Objectif : optimiser et reconstruire le site en respectant au mieux la mise en page d’origine.

Contraintes : nombreuses pages de l’ancien site en code PHP. En général, un copier/coller de la page du navigateur dans la boîte d’édition convient, sauf les pages avec tableaux complexes.

Cette note est plus un témoignage qu’une série d’astuces.

L’ancienne version du site est encore accessible ici pour quelques mois. Les pages sont majoritairement en PHP et certains tableaux sont générés à la volée.

Pourquoi migrer le site ?

Cette version en tout PHP est née en 1999. Elle n’utilise pas de base de données, et au fil des années, a vu des méthodes d’insertion d’articles différents, principalement pour optimiser l’ensemble et la construction automatique de certains éléments (metas, etc.). Mais gérer la hiérarchie par dossiers, sous-dossiers, bouts de code (en-tête, pied et ventre de page, menus, ...) devenait trop complexe. De plus, plusieurs méthodes d’insertion ont été mises en place, pour des raisons historiques et manque de temps principalement. En bref, gérer Quesaco est devenu difficile et surtout chronophage. Il devient indispensable de reclasser l’ensemble est rendre la gestion du site plus accessible.

Ayant déjà écrit deux CMS légers, un pour la gestion de petits sites d’associations, un autre pour une agence photo, le choix de SPIP me semblait plus judicieux que la réécriture d’un troisième CMS. Pourquoi SPIP ? Il existe maintenant des dizaines de CMS (voir cette page sur Framasoft) et pour en avoir testé quelques-uns - dont certains sont tout simplement impossibles à maintenir - SPIP convient aux besoins pour Quesaco. Le seul inconvénient de SPIP est sa documentation disponible sur le site qui, tout en étant très pratique, n’est pas toujours à jour. Mais elle a le mérite d’être là est reste incontournable pour débuter. D’autres sites consacrés plus ou moins à SPIP sont référencés en bas de la page de la rubrique.

On ne peut que féliciter les auteurs de SPIP pour la mise à disposition en GPL de ce CMS.

Les avantages de SPIP

La liste des avantages est plutôt longue. Citons brièvement :

- Des mises à jour cohérentes (sécurité, optimisation de code) ;
- La possibilité de rajouter vos propres fonctions (filtres), voire vos propres formulaires, ou tout un ensemble de fonctions-formulaires (plugins existants où à développer) ;
- Une bonne gestion du cache ;
- ...

Les inconvénients de SPIP

- D’une version à une autre version, voire d’une sous-version, tester localement une mise à jour est indispensable ;
- Les plugins mis à disposition par la communauté sont également à tester. Certains d’entre eux ne fonctionnent que sur une version donnée de SPIP. Quid de leur maintenance ? Si vous ne maîtrisez pas PHP et MySQL, mesurez bien votre décision avant d’installer un plugin ;
- L’éditeur de texte n’est pas pratique pour de longs documents. Mieux vaut utiliser un éditeur externe et copier/coller dans la boîte.

Comment s’y prendre ?

- Lire la documentation en ligne, la relire, et tester localement, chez vous, pour bien comprendre le fonctionnement. Bref, consacrez un peu de temps, raisonnablement un ou deux jours, à bien assimiler l’ensemble. Pensez aux semaines/homme de développement qui ont été nécessaires aux développeurs de SPIP, et généreusement mis à la disposition de tous.

La démarche suivante n’est pas à la portée de toutes les bourses (achat d’une machine dédiée aux tests), mais est néanmoins accessible, et surtout sécurisée. Elle reste une proposition :

- Trouvez un hébergeur offrant les services Apache, PHP et MySQL ;
- Essayer de retrouver à l’identique un serveur local, chez vous (la fonction PHP phpinfo() peut vous y aider). Par exemple : Quesaco est sous Unix/PHP 4/MySQL 5, aussi bien chez l’hébergeur que sur une station dédiée aux tests, dans mon bureau ;
- Renommez IMG en img (Apache/Windows ne fait pas la différence, mais sous Unix, minuscules est majuscules sont distinguées. Cette étape est totalement optionnelle, juste une question de cohérence pour l’archivage). Le renommer également dans ecrire/inc_version.php ;
- Rajoutez un dossier squelettes à la racine de vos documents (DocumentRoot) pour vos ... squelettes, formulaires, images, etc. ;
- Sur le serveur local, installez la distribution SPIP dans ce DocumentRoot. Ne pas oublier - si besoin - de donner les droits d’accès à tmp, local, config et img ;
- Recopiez les icones de Pack_icones_client dans dist/images (certaines images sont appelées par cette version de SPIP dans ce dernier répertoire) ;
- Créez votre base de données locale sans oublier d’y inscrire un compte utilisateur avec tous les privilèges (GRANT) ;
- Lancez la configuration de SPIP (http://monserveurlocal/ecrire/) ;
- Une fois la base installée, dans l’espace privé, configurez GD2 et diverses autres petites choses... ;
- Enrichissez les tables des mots-clés. C’est probablement l’étape la plus longue du lot qui nécessite une grande rigueur et une patience infinie. Vous battrez ici le record de clics ! Les mots-clés sont importants pour la navigation croisée, connexe, mais aussi pour la génération des metas keywords (cas des squelettes Quesaco, disponibles en pied de cette page) ;
- Renommez spip.php en index.php. Le renommer également dans ecrire/inc/utils.php et .htaccess si vous utilisez les règles de réécriture. Cette étape n’est pas indispensable, mais plus cohérente pour les visiteurs. Cette étape est à effectuer en fin de migration.

Les bons comptes

Estimation du temps passé pour la migration du site (environ 160 pages avec syndication RSS en place, nombreux tableaux dont certains complexes - générés à la volée - et quelques scripts javascripts et autres feuilles de styles en dur dans le code de la page) :

Temps passé : 7 jours, dont :
- 2 jours pour la préparation, l’archivage de l’ancien site, la nouvelle hiérarchisation de l’ensemble, la construction des squelettes (sommaire, article, rubrique, et les modules nécessaires, includes, etc), les feuilles de styles, les mots-clés génériques ;
- 3 jours pour les copier/coller, avec restauration de la date de création et de publication. Plus de 160 articles. Classement et création des mots-clés pour chaque page. Soit une quarantaine de pages par jour, avec une moyenne de 10 minutes par pages ;
- 1 jour à réécrire/adapter (et améliorer) les javascripts existants ;
- 1 jour pour optimiser les squelettes et la syndication.

Petit détail, les journées sont de 8 à 14 heures. Désolé ! je n’ai pas trop noté de ce côté.

Une macro Word disponible sur SPIP contrib permet de gagner du temps sur des textes un peu long en balisant à la sauce SPIP les enrichissements typographiques.

Nombre de clics pour la création d’article (cas général) :
- Le champ surtitre ;
- Le champ titre ;
- Le champ soustitre ;
- Le texte ;
- L’ajout des mots-clés existants (parfois sélecteur, sélectionner, confirmer) ;
- L’ajout des mots-clés manquants (parfois sélecteur, ajouter, titre, ..., confirmer) ;
- L’ajout des documents joints (fichier, sélection, télécharger, copier le titre dans certains cas, description en option) ;
- Si besoin, la modification de la date de création (sélecteur, jour, mois, année, confirmer) ;
- La modification de la date de publication (sélecteur, jour, mois, année, confirmer).

Ajoutons à celà :
- L’enrichissement du texte (paragraphe, inter-titre, italique, gras). A ce propos, il manque cruellement les caractères < et >. Pour des pages consacrées à la configuration technique Unix et les exemples de fonctions PHP, ce serait un plus ;
- Le fait de revoir les tableaux publiés (sous Windows, un bon éditeur comme Notepad++ est d’un grand secours, permettant le rechercher/remplacer avec regex) ;
- Supprimer les feuilles de styles locales - intégrée dans le body - au document (de toute façon, ça ne doit pas se faire !) ;
- Supprimer les fonctions Javascript dans le document ou les reporter dans le fichier appelé en en-tête ;

Multiplé par 160 articles, c’est au bas mot plusieurs centaines de clics. Sans compter les erreurs de manipulation.

Le temps passé par page est de (en moyenne) :
- une minute pour une simple page texte ;
- plusieurs minutes pour une page contenant un tableau complexe ;
- plusieurs dizaines de minutes pour une page contenant tableaux, documents joints.

Les pages contenant du javascript, des formulaires, sont à revoir profondément. Compter en heures parfois ici.

Ajout à la migration :

Après migration, ajout des modules proposés par SPIP :
- forums : une heure ou deux pour optimiser l’affichage global des formulaires et des contributions (css principalement, quelques corrections HTML) ;
- page 404 (page des erreurs) : quelques minutes pour adapter à la mise en page du site.

Problèmes rencontrés (sur SPIP 1.9.2-8844)

- Les tags (mots placés entre < et >) sont "mangés" par l’éditeur de texte. Les remplacer par leur équivalent HTML ;
- Le pipe (|) subit un étrange traitement. Lorsque vous entrez son code HTML : |, enregistrez, rééditer le texte, il est transformé en pipe ! Le pipe est souvent utilisé dans les commandes Unix. Les exemples qui le contiennent sont à revoir ;
- idem pour l’esperluette ;
- Il manque ces caractères dans la barre typo. A l’occasion, si temps libre, développer un plugin léger qui rajoute le <, >, pipe,... Mais ce plugin existe peut-être déjà ?
- Les tableaux complexes sont difficiles à intégrer avec les pipes de l’éditeur. Copier/coller un tableau classique en HTML donne de bons résultats ;
- Les articles trop longs sont tronçonnés et apparaissent dans plusieurs boîtes de textes côté éditeur. Impossible de travailler correctement sur le texte. Mieux vaut garder l’original au format txt sur Notepad++ ;
- Les liens de bas de page ne fonctionnent pas correctement, si on ne met que le lien ;
- Il faut laisser l’ancien site dans sa hiérarchie car les pages sont référencées dans les moteurs de recherche. En espérant que la mise à jour de ces moteurs ne tardera pas trop. Au pire, supprimer l’ancienne version du site un an après l’installation de SPIP. Il est possible de supprimer manuellement les index, directement sur les moteurs de recherche (quand ils le permettent, cas de Google par exemple). Par manque de temps, ce n’est pas envisagé ici pour le moment. Ne pas oublier le cas des pages référencées sur les sites perso. Dans certains cas, il sera peut-être indispensable de rajouter une règle de réécriture au .htaccess.

En espérant que ce billet puisse aider...

Plussoyez !

Les forums sont fermés.