SlideShare a Scribd company logo
1 of 36
Reprendre un projet avec Drupal 
quand on a des centaines de milliers 
de contenus
Au programme 
> La reprise des contenus c’est casse g*** 
> L’importance de définir la reprise dès le cahier des 
charges 
> Les méthodes possibles avec Drupal 
> Retour sur le projet du Ministère de l’Agriculture
La reprise des 
contenus c’est 
casse g****
Les erreurs les plus courantes 
• « Oh, on verra ça à la fin, après les développements » 
• « on va embaucher des stagiaire payées au lance-pierre » 
• « Ca prendra pas beaucoup de temps » 
• « on reprend tout à l’identique » 
• « on réécrit tout de toute façon » 
• A la fin du projet : « Mais, ???!!! On croyait que vous vous en chargiez ??!! » 
• « On va faire tourner une moulinette, et puis ça ira tout seul ! »
Et puis, avec Drupal, 
c’est facile, non ?
Les points de vigilance 
Le client ou l'équipe métier n'anticipe souvent pas suffisamment 
ou ne sait pas ce que ça implique :
Ca prend du temps et de l’argent
Il faut dire et répéter 
que ce n'est que eux 
qui pourront piloter 
ce chantier, car c'est 
eux qui connaissent 
leur contenu
Il faut faire un projet 
à part, le paralléliser 
avec la conduite 
technique du projet 
et identifier les 
adhérences.
Il faut sensibiliser aux 
différences de l’avant 
– après : la méthode 
de gestion des 
contenus ne sera 
évidemment pas la 
même et cela aura un 
impact sur la façon 
dont on va reprendre 
les contenus !
Les grandes lois de la reprise de 
contenu 
1. Il n’y a pas de méthode universelle. 
2. Il faut construire à chaque fois une méthode, et savoir 
qu’on devra revenir dessus. 
3. Il faut procéder par itérations successives.
La reprise des contenus, ça se 
définit dès le cahier des 
charges
Décider d’une reprise manuelle ou 
automatique ?
Faire une matrice de reprise des 
contenus 
Titre de la page URL de la page Etat du contenu 
Niveau de 
retraitement souhaité 
Positionnement cible dans 
futur site 
Type de contenu 
cible 
Titre 1 www.test.fr trop détaillé illustrations à fournir thématique article 
Titre 2 www.test.fr inadapté pour la cible A simplifier actualité 
Titre 3 www.test.fr Difficile à comprendre A réécrire agenda 
Titre 4 www.test.fr inexistant illustrations à fournir FAQ 
Acceptable …
Faire une matrice à partir : 
• De Google 
• Du back-office existant 
• Du parcours du site existant (ou plan du site)
Reclassifier les contenus en « types de 
contenus » made in Drupal 
• Actu ? 
• Evènement ? 
• Page éditoriale ? 
• Glossaire ? 
• Rubrique ? 
• Fiche métier 
• … 
Cette « re-classification » est plus ou moins facile selon les sites pré-existants.
1. Evaluer la capacité de reprise 
automatique – une mission à part 
• Reprendre depuis un ancien Drupal ? 
• Exploiter les modules de la communauté Drupal 
• Connexion possible à la base de données ? 
• Quelle est la structure de la base de données ? 
• Quelle est la qualité des données stockées en base de données ? 
• Un / des exports XML sont-ils possibles ? 
• Un crawler est-il envisageable ?
Les « n » 
méthodes 
automatiques 
de reprise des 
contenus
Reprendre depuis un ancien Drupal ? 
Il existe des logiques de migration D5 – D6 – D7 qui embarquent les 
contenus. 
Mais cela dépend très très fortement de la qualité du développement 
original. 
Très souvent, c’est aussi compliqué que dans un projet d’un autre CMS.
Le test des modules 
Cela suppose d’avoir un CMS connu : 
• Avec Typo3 
• Avec Spip 
• Avec Joomla 
• Avec Wordpress 
• … 
Et que cela prenne en compte toutes les spécificités du projet antérieur.
La reprise directe en base de données 
Identifier toutes 
les tables 
contenant des 
contenus à 
reprendre 
Identifier toutes 
les entrées des 
tables et les 
faire 
correspondre 
avec le 
structure de 
contenu Drupal 
Identifier tous 
les besoins de 
retraitement du 
WYSIWYG 
Lancer un script 
de reprise par 
type de 
contenu 
Utiliser un ETL ?
Les modules de migration avec Drupal 
• Avec Migrate 
• Avec Feeds & Feeds Tamper
Un crawler ? Oui, mais… 
• Il faut être certain de pouvoir parcourir toutes les pages 
• Disposer d’un sitemap 
• Ne pas avoir de pages orphelines 
• Le balisage HTML doit être cohérent 
• Il faut associer ce crawler au traitement de la matrice des contenus
Dans tous les cas, il faut retraiter le 
HTML 
• Identifier les balises à retraiter 
: styles, tableaux, balises 
propres au CMS initial 
• Identifier les images et les 
fichiers pour les importer 
• Recréer les liens relatifs entre 
les pages
Quelques trucs et astuces 
• Utiliser un module / développement adhoc, permettant de basculer 
d’une structure de contenu à une autre 
• Permettre de « flagguer » des contenus qui ne doivent pas être 
réimportés / écrasés lors des itérations
Importer, tester, recommencer, 
importer, tester, modifier les scripts, 
recommencer, importer, recommencer, 
Importer, tester, recommencer, 
importer, tester, modifier le script, 
recommencer, importer, recommencer, 
Importer, tester, recommencer, 
importer, tester, modifier le script, 
recommencer, importer, recommencer,
Et finir par la reprise manuelle : 
- Exceptions qui ne peuvent être traitées 
automatiquement 
- Réécriture nécessaire
Les facteurs déterminants d’une 
reprise manuelle 
• Le temps de réalisation 
de la moulinette 
automatique est 
supérieur au temps 
évalué de reprise 
manuelle 
• Le contenu généré en 
HTML n’est pas propre 
du tout 
• Indicateur 1 : multiplier par 10 le temps 
évalué pour la reprise automatique ;-) 
• Indicateur 2 : réintégrer une page de 
contenu de 800 caractères, avec deux 
images et trois fichiers à télécharger, ça 
prend 30 minutes !!
Retour sur le projet du 
Ministère de l’Agriculture
Contexte 
• Un site sous Spip 
• Un site avec plusieurs couches de développement successives 
• Un volume de contenus non identifiés 
• De multiples collaborateurs et rédacteurs aux pratiques hétérogènes
On a tenté de normer le périmètre de 
reprise… 
• Redéfinition d’une charte éditoriale complète 
• Tableur de 20 000 lignes de repositionnement des contenus 
• Identification des types de contenu cible 
• … 
 ~20 jours / homme d’accompagnement
Des scripts très compliqués ont été mis 
en place pour repositionner les 
contenus 
• Exploitation du tableur Excel pour les scripts Migrate 
• Positionnement dans l’arborescence 
• Regroupement de contenus 
• Association automatique de vocabulaires 
• … 
• Retraitement des contenus HTML pour supprimer les styles et balises 
de SPIP 
~30 jours / homme pour la V1
Mais au final, on avait oublié 
plein de contenus !
On a donc fait machine arrière 
• V2 avec tous les contenus sans exclure des éléments 
• Retraitement de scripts pour simplifier les retraitements de 
positionnement 
• Rajout d’une fonction de transfert d’une structure à une autre 
• Rajout d’un flag sur chaque contenu pour autoriser / refuser son 
import 
Puis une V3, V4, … 
Et, reprise manuelle ! 
~20 jours / homme pour la 
finalisation
Merci 
Questions? 
Marine Soroko – Core-Techs

More Related Content

What's hot

Drupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSDrupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSAdyax
 
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...SEO CAMP
 
Présentation Drupal - Global Training Days
Présentation Drupal - Global Training DaysPrésentation Drupal - Global Training Days
Présentation Drupal - Global Training DaysALTER WAY
 
Les moteurs de recherche pour Drupal
Les moteurs de recherche pour DrupalLes moteurs de recherche pour Drupal
Les moteurs de recherche pour DrupalCore-Techs
 
Estimation de projets Drupal
Estimation de projets DrupalEstimation de projets Drupal
Estimation de projets DrupalAdyax
 
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XPUn site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XPatelier111
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Mathieu Parisot
 
Drupagora 2012 - Améliorations ergonomiques pour les contributeurs dans Drupal
Drupagora 2012 - Améliorations ergonomiques pour les contributeurs dans DrupalDrupagora 2012 - Améliorations ergonomiques pour les contributeurs dans Drupal
Drupagora 2012 - Améliorations ergonomiques pour les contributeurs dans DrupalOlivier Friesse
 
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Horacio Gonzalez
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ ekino
 
Drupal & Symfony2
Drupal & Symfony2Drupal & Symfony2
Drupal & Symfony2th0masr
 

What's hot (13)

Drupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMSDrupal n'est pas seulement un CMS
Drupal n'est pas seulement un CMS
 
Drupal 8
Drupal 8Drupal 8
Drupal 8
 
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
Synergie entre développeur et consultant SEO - Didier Sampaolo - SEOcamp'us P...
 
Présentation Drupal - Global Training Days
Présentation Drupal - Global Training DaysPrésentation Drupal - Global Training Days
Présentation Drupal - Global Training Days
 
Les moteurs de recherche pour Drupal
Les moteurs de recherche pour DrupalLes moteurs de recherche pour Drupal
Les moteurs de recherche pour Drupal
 
Estimation de projets Drupal
Estimation de projets DrupalEstimation de projets Drupal
Estimation de projets Drupal
 
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XPUn site de collectivité sur WordPress ? Méthodes et retours d'XP
Un site de collectivité sur WordPress ? Méthodes et retours d'XP
 
Cv khouloud dhouib
Cv khouloud dhouibCv khouloud dhouib
Cv khouloud dhouib
 
Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !Développez dans le futur, dès maintenant !
Développez dans le futur, dès maintenant !
 
Drupagora 2012 - Améliorations ergonomiques pour les contributeurs dans Drupal
Drupagora 2012 - Améliorations ergonomiques pour les contributeurs dans DrupalDrupagora 2012 - Améliorations ergonomiques pour les contributeurs dans Drupal
Drupagora 2012 - Améliorations ergonomiques pour les contributeurs dans Drupal
 
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !Enib   cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
Enib cours c.a.i. web - séance #5 - j’ai besoin d’une appli web rapidement !
 
Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+ Symfony et Sonata Project chez Canal+
Symfony et Sonata Project chez Canal+
 
Drupal & Symfony2
Drupal & Symfony2Drupal & Symfony2
Drupal & Symfony2
 

Viewers also liked

Rapport tv connectée
Rapport tv connectéeRapport tv connectée
Rapport tv connectéeazizhaddad
 
Mon voyage fantastique
Mon voyage fantastiqueMon voyage fantastique
Mon voyage fantastiquesdelaquis
 
TE18-042S_Femmes1_m(1)
TE18-042S_Femmes1_m(1)TE18-042S_Femmes1_m(1)
TE18-042S_Femmes1_m(1)Anne Guns
 
Ingenieur-eigsi-apprentissage
Ingenieur-eigsi-apprentissageIngenieur-eigsi-apprentissage
Ingenieur-eigsi-apprentissageMatthias LONGEFAY
 
21 Gf Insolite Illusionsd Optique
21 Gf Insolite Illusionsd Optique21 Gf Insolite Illusionsd Optique
21 Gf Insolite Illusionsd Optiqueschoplain
 
Las Fotos más bellas del 2005
Las Fotos más bellas del 2005Las Fotos más bellas del 2005
Las Fotos más bellas del 2005eagain
 
Drupagora 2012 - Votre application cartographique avec Drupal
Drupagora 2012 - Votre application cartographique avec DrupalDrupagora 2012 - Votre application cartographique avec Drupal
Drupagora 2012 - Votre application cartographique avec DrupalCore-Techs
 
Certification licenses
Certification licensesCertification licenses
Certification licensesRudi Lippert
 
Faire De l'Ecommerce Avec Des Solutions Open Source
Faire De l'Ecommerce Avec Des Solutions Open SourceFaire De l'Ecommerce Avec Des Solutions Open Source
Faire De l'Ecommerce Avec Des Solutions Open SourceCore-Techs
 
Le gourmet lycéen
Le gourmet lycéenLe gourmet lycéen
Le gourmet lycéenLafon
 
Plic plac ploc album
Plic plac ploc albumPlic plac ploc album
Plic plac ploc albumMarineDenois
 
Salon Solutions Linux 2012 - Etat de l'art des solutions E-commerce.
Salon Solutions Linux 2012 - Etat de l'art des solutions E-commerce.Salon Solutions Linux 2012 - Etat de l'art des solutions E-commerce.
Salon Solutions Linux 2012 - Etat de l'art des solutions E-commerce.Core-Techs
 
Ifop: Observatoire des réseaux sociaux 2013
Ifop: Observatoire des réseaux sociaux 2013Ifop: Observatoire des réseaux sociaux 2013
Ifop: Observatoire des réseaux sociaux 2013azizhaddad
 

Viewers also liked (20)

Rapport tv connectée
Rapport tv connectéeRapport tv connectée
Rapport tv connectée
 
Mon voyage fantastique
Mon voyage fantastiqueMon voyage fantastique
Mon voyage fantastique
 
cvscans
cvscanscvscans
cvscans
 
CV L GOVENDER
CV L GOVENDERCV L GOVENDER
CV L GOVENDER
 
TE18-042S_Femmes1_m(1)
TE18-042S_Femmes1_m(1)TE18-042S_Femmes1_m(1)
TE18-042S_Femmes1_m(1)
 
Ingenieur-eigsi-apprentissage
Ingenieur-eigsi-apprentissageIngenieur-eigsi-apprentissage
Ingenieur-eigsi-apprentissage
 
21 Gf Insolite Illusionsd Optique
21 Gf Insolite Illusionsd Optique21 Gf Insolite Illusionsd Optique
21 Gf Insolite Illusionsd Optique
 
Las Fotos más bellas del 2005
Las Fotos más bellas del 2005Las Fotos más bellas del 2005
Las Fotos más bellas del 2005
 
LAS-booklet_FR.PDF
LAS-booklet_FR.PDFLAS-booklet_FR.PDF
LAS-booklet_FR.PDF
 
Adam 1
Adam 1Adam 1
Adam 1
 
Drupagora 2012 - Votre application cartographique avec Drupal
Drupagora 2012 - Votre application cartographique avec DrupalDrupagora 2012 - Votre application cartographique avec Drupal
Drupagora 2012 - Votre application cartographique avec Drupal
 
Certification licenses
Certification licensesCertification licenses
Certification licenses
 
Faire De l'Ecommerce Avec Des Solutions Open Source
Faire De l'Ecommerce Avec Des Solutions Open SourceFaire De l'Ecommerce Avec Des Solutions Open Source
Faire De l'Ecommerce Avec Des Solutions Open Source
 
preÌ-sentation-nabentha
preÌ-sentation-nabenthapreÌ-sentation-nabentha
preÌ-sentation-nabentha
 
Le gourmet lycéen
Le gourmet lycéenLe gourmet lycéen
Le gourmet lycéen
 
Plic plac ploc album
Plic plac ploc albumPlic plac ploc album
Plic plac ploc album
 
TpM2013: Thierry Pilet, Geomatic : E-Tourisme: un panel de solution de commun...
TpM2013: Thierry Pilet, Geomatic : E-Tourisme: un panel de solution de commun...TpM2013: Thierry Pilet, Geomatic : E-Tourisme: un panel de solution de commun...
TpM2013: Thierry Pilet, Geomatic : E-Tourisme: un panel de solution de commun...
 
Salon Solutions Linux 2012 - Etat de l'art des solutions E-commerce.
Salon Solutions Linux 2012 - Etat de l'art des solutions E-commerce.Salon Solutions Linux 2012 - Etat de l'art des solutions E-commerce.
Salon Solutions Linux 2012 - Etat de l'art des solutions E-commerce.
 
BUS
BUSBUS
BUS
 
Ifop: Observatoire des réseaux sociaux 2013
Ifop: Observatoire des réseaux sociaux 2013Ifop: Observatoire des réseaux sociaux 2013
Ifop: Observatoire des réseaux sociaux 2013
 

Similar to Drupagora 2014 : Reprendre un projet avec Drupal quand on a des centaines de milliers de contenus

Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet DrupalAdyax
 
Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13Aurelien Navarre
 
Theming drupal8 - Meetup Paris - 26-mars-2015
Theming drupal8 - Meetup Paris - 26-mars-2015Theming drupal8 - Meetup Paris - 26-mars-2015
Theming drupal8 - Meetup Paris - 26-mars-2015Romain Jarraud
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBContent Square
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Alexandre Marie
 
Drupal & responsive
Drupal & responsiveDrupal & responsive
Drupal & responsiveRezonova
 
Semaine de projet H1 P2015 - HETIC - Deccco.com
Semaine de projet H1 P2015 - HETIC - Deccco.comSemaine de projet H1 P2015 - HETIC - Deccco.com
Semaine de projet H1 P2015 - HETIC - Deccco.comVincent Garreau
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPkemenaran
 
Drupal Factory kézako ?
Drupal Factory kézako ?Drupal Factory kézako ?
Drupal Factory kézako ?slybud
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
SkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React NativeSkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React NativeBenoit Fillon
 
Projet de semestre / 1ére partie / partage de contenus multimédias
Projet de semestre / 1ére partie / partage de contenus multimédiasProjet de semestre / 1ére partie / partage de contenus multimédias
Projet de semestre / 1ére partie / partage de contenus multimédiasLaurent Moccozet
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Cyril Reinhard
 
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Renoir Boulanger
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
Présentation JavaScript
Présentation JavaScriptPrésentation JavaScript
Présentation JavaScripttarkan_
 
Formation JavaScript - Guide de démarrage rapide
Formation JavaScript - Guide de démarrage rapideFormation JavaScript - Guide de démarrage rapide
Formation JavaScript - Guide de démarrage rapideTarek Jellali
 
20180628 skill value_masterclass_reactnative - v1.3
20180628 skill value_masterclass_reactnative - v1.320180628 skill value_masterclass_reactnative - v1.3
20180628 skill value_masterclass_reactnative - v1.3Benoit Fillon
 

Similar to Drupagora 2014 : Reprendre un projet avec Drupal quand on a des centaines de milliers de contenus (20)

Réussir son projet Drupal
Réussir son projet DrupalRéussir son projet Drupal
Réussir son projet Drupal
 
Introduction au développement en SharePoint
Introduction au développement en SharePointIntroduction au développement en SharePoint
Introduction au développement en SharePoint
 
Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13Industrialiser la gestion des fichiers multimedia #dcparis13
Industrialiser la gestion des fichiers multimedia #dcparis13
 
Theming drupal8 - Meetup Paris - 26-mars-2015
Theming drupal8 - Meetup Paris - 26-mars-2015Theming drupal8 - Meetup Paris - 26-mars-2015
Theming drupal8 - Meetup Paris - 26-mars-2015
 
Toutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDBToutes les raisons d'adopter MongoDB
Toutes les raisons d'adopter MongoDB
 
Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)Drupal7 - Bonnes Pratiques (Partie 1)
Drupal7 - Bonnes Pratiques (Partie 1)
 
Drupal & responsive
Drupal & responsiveDrupal & responsive
Drupal & responsive
 
Semaine de projet H1 P2015 - HETIC - Deccco.com
Semaine de projet H1 P2015 - HETIC - Deccco.comSemaine de projet H1 P2015 - HETIC - Deccco.com
Semaine de projet H1 P2015 - HETIC - Deccco.com
 
Formation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHPFormation PHP avancé - Cake PHP
Formation PHP avancé - Cake PHP
 
Drupal Factory kézako ?
Drupal Factory kézako ?Drupal Factory kézako ?
Drupal Factory kézako ?
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
SkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React NativeSkillValue LesJeudis Master Class React Native
SkillValue LesJeudis Master Class React Native
 
Projet de semestre / 1ére partie / partage de contenus multimédias
Projet de semestre / 1ére partie / partage de contenus multimédiasProjet de semestre / 1ére partie / partage de contenus multimédias
Projet de semestre / 1ére partie / partage de contenus multimédias
 
Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013Acquia et Arte : Drupal Camp Paris 2013
Acquia et Arte : Drupal Camp Paris 2013
 
WordPress et SEO - SEOCampus 2013
WordPress et SEO - SEOCampus 2013WordPress et SEO - SEOCampus 2013
WordPress et SEO - SEOCampus 2013
 
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
Comment évaluer la qualité d'un site web selon les techniques d'intégration w...
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Présentation JavaScript
Présentation JavaScriptPrésentation JavaScript
Présentation JavaScript
 
Formation JavaScript - Guide de démarrage rapide
Formation JavaScript - Guide de démarrage rapideFormation JavaScript - Guide de démarrage rapide
Formation JavaScript - Guide de démarrage rapide
 
20180628 skill value_masterclass_reactnative - v1.3
20180628 skill value_masterclass_reactnative - v1.320180628 skill value_masterclass_reactnative - v1.3
20180628 skill value_masterclass_reactnative - v1.3
 

More from Core-Techs

3 Outils et Méthodes pour faire le bon choix de votre solution Ecommerce
3 Outils et Méthodes pour faire le bon choix de votre solution Ecommerce3 Outils et Méthodes pour faire le bon choix de votre solution Ecommerce
3 Outils et Méthodes pour faire le bon choix de votre solution EcommerceCore-Techs
 
Webinar : Les enjeux du moteur de recherche
Webinar : Les enjeux du moteur de rechercheWebinar : Les enjeux du moteur de recherche
Webinar : Les enjeux du moteur de rechercheCore-Techs
 
10 méthodes UX appliquées à votre projet Web
10 méthodes UX appliquées à votre projet Web10 méthodes UX appliquées à votre projet Web
10 méthodes UX appliquées à votre projet WebCore-Techs
 
Quelle solution technique pour un projet web ?
Quelle solution technique pour un projet web ?Quelle solution technique pour un projet web ?
Quelle solution technique pour un projet web ?Core-Techs
 
Le clés d'une stratégie éditoriale réussie
Le clés d'une stratégie éditoriale réussieLe clés d'une stratégie éditoriale réussie
Le clés d'une stratégie éditoriale réussieCore-Techs
 
Content marketing : l'importance du contenu 2
Content marketing : l'importance du contenu 2Content marketing : l'importance du contenu 2
Content marketing : l'importance du contenu 2Core-Techs
 
Cahier des charges avril 2015
Cahier des charges   avril 2015Cahier des charges   avril 2015
Cahier des charges avril 2015Core-Techs
 
Les 10 erreurs d'un projet web déc 2014
Les 10 erreurs d'un projet web   déc 2014Les 10 erreurs d'un projet web   déc 2014
Les 10 erreurs d'un projet web déc 2014Core-Techs
 
Conférence Gestion de projet digital
Conférence Gestion de projet digitalConférence Gestion de projet digital
Conférence Gestion de projet digitalCore-Techs
 
Cms ecosystème etat des lieux et tendances
Cms ecosystème   etat des lieux et tendancesCms ecosystème   etat des lieux et tendances
Cms ecosystème etat des lieux et tendancesCore-Techs
 
Solution de recherche Drupal
Solution de recherche DrupalSolution de recherche Drupal
Solution de recherche DrupalCore-Techs
 
Reprise projet Drupal Drupagora2013
Reprise projet Drupal Drupagora2013Reprise projet Drupal Drupagora2013
Reprise projet Drupal Drupagora2013Core-Techs
 
Drupal Ecommerce - fonctionnalités et atouts
Drupal Ecommerce - fonctionnalités et atoutsDrupal Ecommerce - fonctionnalités et atouts
Drupal Ecommerce - fonctionnalités et atoutsCore-Techs
 
Démonstration Drupal Commons !
Démonstration Drupal Commons ! Démonstration Drupal Commons !
Démonstration Drupal Commons ! Core-Techs
 
Wordpress Ecommerce - Core-Techs
Wordpress Ecommerce - Core-TechsWordpress Ecommerce - Core-Techs
Wordpress Ecommerce - Core-TechsCore-Techs
 
Drupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet DrupalDrupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet DrupalCore-Techs
 
Drupal Commerce / Wordpress Commerce - Les nouvelles alternatives...
Drupal Commerce / Wordpress Commerce - Les nouvelles alternatives...Drupal Commerce / Wordpress Commerce - Les nouvelles alternatives...
Drupal Commerce / Wordpress Commerce - Les nouvelles alternatives...Core-Techs
 
Salon Solutions Linux 2012 - Etat de l'art sur les Frameworks et CMS Open Sou...
Salon Solutions Linux 2012 - Etat de l'art sur les Frameworks et CMS Open Sou...Salon Solutions Linux 2012 - Etat de l'art sur les Frameworks et CMS Open Sou...
Salon Solutions Linux 2012 - Etat de l'art sur les Frameworks et CMS Open Sou...Core-Techs
 
A chaque besoin sa distribution
A chaque besoin sa distributionA chaque besoin sa distribution
A chaque besoin sa distributionCore-Techs
 

More from Core-Techs (20)

Usine à site
Usine à siteUsine à site
Usine à site
 
3 Outils et Méthodes pour faire le bon choix de votre solution Ecommerce
3 Outils et Méthodes pour faire le bon choix de votre solution Ecommerce3 Outils et Méthodes pour faire le bon choix de votre solution Ecommerce
3 Outils et Méthodes pour faire le bon choix de votre solution Ecommerce
 
Webinar : Les enjeux du moteur de recherche
Webinar : Les enjeux du moteur de rechercheWebinar : Les enjeux du moteur de recherche
Webinar : Les enjeux du moteur de recherche
 
10 méthodes UX appliquées à votre projet Web
10 méthodes UX appliquées à votre projet Web10 méthodes UX appliquées à votre projet Web
10 méthodes UX appliquées à votre projet Web
 
Quelle solution technique pour un projet web ?
Quelle solution technique pour un projet web ?Quelle solution technique pour un projet web ?
Quelle solution technique pour un projet web ?
 
Le clés d'une stratégie éditoriale réussie
Le clés d'une stratégie éditoriale réussieLe clés d'une stratégie éditoriale réussie
Le clés d'une stratégie éditoriale réussie
 
Content marketing : l'importance du contenu 2
Content marketing : l'importance du contenu 2Content marketing : l'importance du contenu 2
Content marketing : l'importance du contenu 2
 
Cahier des charges avril 2015
Cahier des charges   avril 2015Cahier des charges   avril 2015
Cahier des charges avril 2015
 
Les 10 erreurs d'un projet web déc 2014
Les 10 erreurs d'un projet web   déc 2014Les 10 erreurs d'un projet web   déc 2014
Les 10 erreurs d'un projet web déc 2014
 
Conférence Gestion de projet digital
Conférence Gestion de projet digitalConférence Gestion de projet digital
Conférence Gestion de projet digital
 
Cms ecosystème etat des lieux et tendances
Cms ecosystème   etat des lieux et tendancesCms ecosystème   etat des lieux et tendances
Cms ecosystème etat des lieux et tendances
 
Solution de recherche Drupal
Solution de recherche DrupalSolution de recherche Drupal
Solution de recherche Drupal
 
Reprise projet Drupal Drupagora2013
Reprise projet Drupal Drupagora2013Reprise projet Drupal Drupagora2013
Reprise projet Drupal Drupagora2013
 
Drupal Ecommerce - fonctionnalités et atouts
Drupal Ecommerce - fonctionnalités et atoutsDrupal Ecommerce - fonctionnalités et atouts
Drupal Ecommerce - fonctionnalités et atouts
 
Démonstration Drupal Commons !
Démonstration Drupal Commons ! Démonstration Drupal Commons !
Démonstration Drupal Commons !
 
Wordpress Ecommerce - Core-Techs
Wordpress Ecommerce - Core-TechsWordpress Ecommerce - Core-Techs
Wordpress Ecommerce - Core-Techs
 
Drupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet DrupalDrupagora - Les clés de la réussite d'un projet Drupal
Drupagora - Les clés de la réussite d'un projet Drupal
 
Drupal Commerce / Wordpress Commerce - Les nouvelles alternatives...
Drupal Commerce / Wordpress Commerce - Les nouvelles alternatives...Drupal Commerce / Wordpress Commerce - Les nouvelles alternatives...
Drupal Commerce / Wordpress Commerce - Les nouvelles alternatives...
 
Salon Solutions Linux 2012 - Etat de l'art sur les Frameworks et CMS Open Sou...
Salon Solutions Linux 2012 - Etat de l'art sur les Frameworks et CMS Open Sou...Salon Solutions Linux 2012 - Etat de l'art sur les Frameworks et CMS Open Sou...
Salon Solutions Linux 2012 - Etat de l'art sur les Frameworks et CMS Open Sou...
 
A chaque besoin sa distribution
A chaque besoin sa distributionA chaque besoin sa distribution
A chaque besoin sa distribution
 

Drupagora 2014 : Reprendre un projet avec Drupal quand on a des centaines de milliers de contenus

  • 1. Reprendre un projet avec Drupal quand on a des centaines de milliers de contenus
  • 2. Au programme > La reprise des contenus c’est casse g*** > L’importance de définir la reprise dès le cahier des charges > Les méthodes possibles avec Drupal > Retour sur le projet du Ministère de l’Agriculture
  • 3. La reprise des contenus c’est casse g****
  • 4. Les erreurs les plus courantes • « Oh, on verra ça à la fin, après les développements » • « on va embaucher des stagiaire payées au lance-pierre » • « Ca prendra pas beaucoup de temps » • « on reprend tout à l’identique » • « on réécrit tout de toute façon » • A la fin du projet : « Mais, ???!!! On croyait que vous vous en chargiez ??!! » • « On va faire tourner une moulinette, et puis ça ira tout seul ! »
  • 5. Et puis, avec Drupal, c’est facile, non ?
  • 6.
  • 7. Les points de vigilance Le client ou l'équipe métier n'anticipe souvent pas suffisamment ou ne sait pas ce que ça implique :
  • 8. Ca prend du temps et de l’argent
  • 9. Il faut dire et répéter que ce n'est que eux qui pourront piloter ce chantier, car c'est eux qui connaissent leur contenu
  • 10. Il faut faire un projet à part, le paralléliser avec la conduite technique du projet et identifier les adhérences.
  • 11. Il faut sensibiliser aux différences de l’avant – après : la méthode de gestion des contenus ne sera évidemment pas la même et cela aura un impact sur la façon dont on va reprendre les contenus !
  • 12. Les grandes lois de la reprise de contenu 1. Il n’y a pas de méthode universelle. 2. Il faut construire à chaque fois une méthode, et savoir qu’on devra revenir dessus. 3. Il faut procéder par itérations successives.
  • 13. La reprise des contenus, ça se définit dès le cahier des charges
  • 14. Décider d’une reprise manuelle ou automatique ?
  • 15. Faire une matrice de reprise des contenus Titre de la page URL de la page Etat du contenu Niveau de retraitement souhaité Positionnement cible dans futur site Type de contenu cible Titre 1 www.test.fr trop détaillé illustrations à fournir thématique article Titre 2 www.test.fr inadapté pour la cible A simplifier actualité Titre 3 www.test.fr Difficile à comprendre A réécrire agenda Titre 4 www.test.fr inexistant illustrations à fournir FAQ Acceptable …
  • 16. Faire une matrice à partir : • De Google • Du back-office existant • Du parcours du site existant (ou plan du site)
  • 17. Reclassifier les contenus en « types de contenus » made in Drupal • Actu ? • Evènement ? • Page éditoriale ? • Glossaire ? • Rubrique ? • Fiche métier • … Cette « re-classification » est plus ou moins facile selon les sites pré-existants.
  • 18. 1. Evaluer la capacité de reprise automatique – une mission à part • Reprendre depuis un ancien Drupal ? • Exploiter les modules de la communauté Drupal • Connexion possible à la base de données ? • Quelle est la structure de la base de données ? • Quelle est la qualité des données stockées en base de données ? • Un / des exports XML sont-ils possibles ? • Un crawler est-il envisageable ?
  • 19. Les « n » méthodes automatiques de reprise des contenus
  • 20. Reprendre depuis un ancien Drupal ? Il existe des logiques de migration D5 – D6 – D7 qui embarquent les contenus. Mais cela dépend très très fortement de la qualité du développement original. Très souvent, c’est aussi compliqué que dans un projet d’un autre CMS.
  • 21. Le test des modules Cela suppose d’avoir un CMS connu : • Avec Typo3 • Avec Spip • Avec Joomla • Avec Wordpress • … Et que cela prenne en compte toutes les spécificités du projet antérieur.
  • 22. La reprise directe en base de données Identifier toutes les tables contenant des contenus à reprendre Identifier toutes les entrées des tables et les faire correspondre avec le structure de contenu Drupal Identifier tous les besoins de retraitement du WYSIWYG Lancer un script de reprise par type de contenu Utiliser un ETL ?
  • 23. Les modules de migration avec Drupal • Avec Migrate • Avec Feeds & Feeds Tamper
  • 24. Un crawler ? Oui, mais… • Il faut être certain de pouvoir parcourir toutes les pages • Disposer d’un sitemap • Ne pas avoir de pages orphelines • Le balisage HTML doit être cohérent • Il faut associer ce crawler au traitement de la matrice des contenus
  • 25. Dans tous les cas, il faut retraiter le HTML • Identifier les balises à retraiter : styles, tableaux, balises propres au CMS initial • Identifier les images et les fichiers pour les importer • Recréer les liens relatifs entre les pages
  • 26. Quelques trucs et astuces • Utiliser un module / développement adhoc, permettant de basculer d’une structure de contenu à une autre • Permettre de « flagguer » des contenus qui ne doivent pas être réimportés / écrasés lors des itérations
  • 27. Importer, tester, recommencer, importer, tester, modifier les scripts, recommencer, importer, recommencer, Importer, tester, recommencer, importer, tester, modifier le script, recommencer, importer, recommencer, Importer, tester, recommencer, importer, tester, modifier le script, recommencer, importer, recommencer,
  • 28. Et finir par la reprise manuelle : - Exceptions qui ne peuvent être traitées automatiquement - Réécriture nécessaire
  • 29. Les facteurs déterminants d’une reprise manuelle • Le temps de réalisation de la moulinette automatique est supérieur au temps évalué de reprise manuelle • Le contenu généré en HTML n’est pas propre du tout • Indicateur 1 : multiplier par 10 le temps évalué pour la reprise automatique ;-) • Indicateur 2 : réintégrer une page de contenu de 800 caractères, avec deux images et trois fichiers à télécharger, ça prend 30 minutes !!
  • 30. Retour sur le projet du Ministère de l’Agriculture
  • 31. Contexte • Un site sous Spip • Un site avec plusieurs couches de développement successives • Un volume de contenus non identifiés • De multiples collaborateurs et rédacteurs aux pratiques hétérogènes
  • 32. On a tenté de normer le périmètre de reprise… • Redéfinition d’une charte éditoriale complète • Tableur de 20 000 lignes de repositionnement des contenus • Identification des types de contenu cible • …  ~20 jours / homme d’accompagnement
  • 33. Des scripts très compliqués ont été mis en place pour repositionner les contenus • Exploitation du tableur Excel pour les scripts Migrate • Positionnement dans l’arborescence • Regroupement de contenus • Association automatique de vocabulaires • … • Retraitement des contenus HTML pour supprimer les styles et balises de SPIP ~30 jours / homme pour la V1
  • 34. Mais au final, on avait oublié plein de contenus !
  • 35. On a donc fait machine arrière • V2 avec tous les contenus sans exclure des éléments • Retraitement de scripts pour simplifier les retraitements de positionnement • Rajout d’une fonction de transfert d’une structure à une autre • Rajout d’un flag sur chaque contenu pour autoriser / refuser son import Puis une V3, V4, … Et, reprise manuelle ! ~20 jours / homme pour la finalisation
  • 36. Merci Questions? Marine Soroko – Core-Techs

Editor's Notes

  1. On se dit qu’on a plein de modules communautaires, que d’autres personnes ont déjà eu le même problème, …
  2. Adhérences techniques : on ne peut lancer la reprise que lorsqu’on a un socle technique Drupal avec les structures de contenus faites. Il faut savoir que toutes les logiques itératives d’import écrasent les contenus = prévoir de ne pas faire de saisie manuelle
  3. Il faut dire & répéter que ça prend du temps & de l’argent
  4. Il faut dire & répéter que ça prend du temps & de l’argent
  5. Il faut dire & répéter que ça prend du temps & de l’argent
  6. Il faut dire & répéter que ça prend du temps & de l’argent
  7. 13
  8. Il est important à ce stade, pour faire un chiffrage, de décider d’une reprise manuelle / automatique. Si on veut avoir un budget / délai global !!! Mais non, à ce stade, ce n’est pas possible. Il faut aller étape par étape.
  9. De google, oui, mais, c’est souvent pollué : de nombreuses pages référencées plusieurs fois, d’éléments constitutifs de pages référencés plusieurs fois. Du back-office, si c’est possible Du parcours du site existant : oui, si vous le connaissez bien.
  10. On utilise Content Migrate CCK, Migrate Fields
  11. Les modules sont obsolètes ou en développement. Spip2Drupal : version 6 pas encore en stable Joomla to Drupal : users, sections, categories dans taxonomies, contents items to nodes Worpress Import : uniquement version 6 Typo3 Migrate : extension de Migrate : users, standard typo3 pages, news and news categories
  12. – pas de traitement conditionnel ; – support déficient du multilinguisme. Attention, les fichiers Excel ou XML doivent être propres !! Feeds tamper permet de modifier des données avant qu’elles soient sauvées (ex : format de Dates) Avec Feed, vous définissez le mode de récupération : Fetcher mode de récupération des données (par défaut, fichier ou via HTTP) ; Parser grammaire selon laquelle les données sont présentées (RSS, CSV, etc.) ; Processor choix de l’entité de destination (par défaut : nœud, terme de taxonomie, utilisateur) + mise en correspondance (« mapping ») avec champs et propriétés. Mais pb avec Feeds : + Gestion native des importations périodiques ; + importateurs exportables ( !) en code avec Features ; + support d’XPath ; ~ support limité du pré-traitement des champs avec Feeds Tamper ; autant de feeds importer que de types de contenus, et quelques modules de nettoyage (Feeds Tamper) Migrate offre un cadre de développement orienté objet permettant d’effectuer des migrations de données y compris dans des situations complexes. Migrate fournit un framework d’import de données depuis différentes sources vers Drupal. Il permet de créer son import en définissant la source,  la destination et le mapping nos données. On peut jouer et rejouer nos imports facilement (fonction de rollback) en utilisant l’interface utilisateur ou Drush. Module en lui-même réservé aux développeurs, mais : utilisable par tous → interface utilisateur puissante offerte par ce module (analyse, lancement des importations, progression, arrêt, retour en arrière (rollback)) ; pilotable avec Drush ; il existe des modules basés sur Migrate répondant à des cas d’utilisation précis : migration depuis Wordpress, phpBB, un autre Drupal... MigrateSource description des champs de données à la source ; MigrateDestination description des champs de données à la destination ; MigrateFieldMapping correspondance des champs entre source et destination ; MigrateMap garde trace des champs de la source (et leurs types) dont découle un objet dans la destination, utile pour le rollback. Feeds : permet dans de nombreux cas aux site builders de gérer eux-même les importations (mais pourquoi toujours en alpha ?) ; Migrate : un socle rigoureux, robuste et puissant, tant pour le développeur que pour l’utilisateur. Standard de facto dans l’écosystème (passage d’une version majeure à une autre, D6 → D8 et D7 → D8) ; importation vers tout type d’entité Drupal, y compris les vôtres (cf. juin).