Cahier des charges général
- logiciel libre
- production de code HTML
- accessible (validation WAVE)
- valide W3C
- ne nécessitant pas javascript dans la partie publique
- rôles de contributeurs donnant accès à des fonctionnalités différentes. À minima:
- contributeur
- administrateur/webmaster
- superadmin
- système de contrôle de versions des objets éditoriaux, revert possible
- aspect graphique identique à l'existant ou proche (un rafraîchissement du style peut être proposé, notamment pour améliorer le mobile)
Une liste des particularités du site web Drupal6.
User stories
Interviewer:
Fred
Étienne
Isabella
- Marie-Odile
- Lionel
- François
- …
Cahier des charges de migration
Les URLs doivent être toutes conservées et mener au contenu migré. Pour cela, le CMS doit soit associer le contenu aux mêmes URLs, soit, si ce n'est pas possible, mettre en place une redirection via htaccess ou équivalent.
Les fichiers uploadés doivent être accessibles sous les mêmes conditions d'autorisation.
Fonctionnalités éditoriales attendues
Page d'accueil
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Citation du moment: affichage d'un article de type citation pris au hasard
|
Obligatoire
|
Oui
|
Oui
|
facile
|
|
|
Flux RSS: configurables à partir de l'interface d'administration ou du template (LinuxFR, AdL, Lolix, ...)
|
Obligatoire
|
Oui
|
Oui
|
facile ; mais ça signifie quoi configurable ?
|
|
|
Bandeaux de campagnes: idéalement configurables à partir de l'interface de type citation pris au hasard
|
Obligatoire
|
Oui
|
Oui
|
facile
|
|
|
Dernière vidéo: dernier article de type video, avec métadonnées affichées (chapo) + vignette
|
Obligatoire
|
Oui
|
Oui (à confirmer pour les métadonnées)
|
facile
|
|
|
Nuage de tags: chaque article doit pouvoir être taggué
|
Obligatoire
|
Oui
|
Oui
|
facile
|
|
|
Revue de presse, actualités, communiqués: derniers articles de type presse, actualités, communiqués
|
Obligatoire
|
Oui
|
Oui
|
facile
|
|
|
Taxonomie
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Taxonomie: thèmes, types de publication, catégories
|
Obligatoire
|
Oui
|
limité
|
facile
|
|
|
Chaque élément de taxonomie est associé à une page (ex : mot-tag "open bar" → http://april.org/themes/open-bar), éditable : chapeau avant article , image, etc. pouvoir configurer la pagination
|
Obligatoire
|
Oui
|
Oui
|
facile
|
|
|
Les taxonomies de type date doivent produire des calendriers web, ICAL, RSS, etc.
|
Bien
|
Oui avec le plugin Agenda + pour l'import https://plugins.spip.net/import_ics.html
|
Oui
|
facile pour RSS, à coder pour ical
|
|
C'est pas du tout ce que je ferais. Si tu veux un calendrier pour la liste des évènements, c'est pas une taxonomie que tu veux. Ce que tu veux c'est un objet éditorial évènement. Et ta vue calendrier, ical ou autre est juste une modalité de vue de liste. C'est pas de la taxonomie.
|
Structures d'articles différente en fonction du type d’article : revue presse, évènements, etc.
|
Obligatoire
|
Oui
|
Difficile
|
facile
|
|
Je suis curieux de voir pourquoi spip est en vert la dessus :)(Avec le plugin compositions : facile)
|
|
Workflow de publication
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
États de publication : au moins publié, en validation, en cours d’écriture, retiré (si possible)
|
Obligatoire
|
Oui
|
Oui
|
Oui
|
|
|
Programmer la publication d'un contenu.
|
Bien
|
Oui
|
Oui
|
programmation également possible d'une mise à jour d'un contenu
|
|
|
Le CMS devrait proposer une gestion des utilisateurs avec différents profils donnant différents droits d'accès (en création de contenu et en lecture
|
Obligatoire
|
Oui
|
Moui
|
Oui
|
|
|
Fonctions d’édition
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Édition par saisie uniquement via formulaire web de code HTML et/ou markup sans avoir recours à des tags htmls compliqués (autres que a, p ...), éventuellement en mode wysiwyg si production de code propre et récupération de l'existant.
|
Obligatoire
|
Oui, html, code spip, édition wysiwyg
Il est aussi possible via le plugin odt2spip d'importer un texte, et ses illustrations, au format odt en tant qu'article https://contrib.spip.net/odt2spip-creation-d-articles-a-partir-de-fichiers. Le plugin Crayons permet aux personnes connectées de corriger un article directement de l'aspect public https://contrib.spip.net/Les-Crayons.
|
Oui
|
Oui
|
|
|
Pouvoir prévisualisation un contenu avant publication
|
Obligatoire
|
Oui
|
Oui
|
Oui
|
|
|
Accéder à la prévisualisation du contenu dans la même page où l'on édite sans validation sur une page déjà publiée.
|
Bien
|
Oui, mode édition + visualisation intantanée
|
Oui
|
Oui
|
|
|
Upload de plusieurs fichiers par article, insertion dans le corps de l'article, éventuelle vignette.
|
Bien
|
Oui
|
Oui
|
Oui
|
|
|
L'administration du site (contenu, page de garde, configuration…) doit être possible au maximum juste avec le navigateur web
|
Bien
|
Oui
|
Oui
|
Oui
|
|
|
Facilité d'inclusion des contenus éditoriaux riches et/ou spécifiques (embeds, boutons, cadres, compositions à la demande...) sans coder de classe html.
|
Obligatoire
|
Oui avec par ex. l'éditeur CKEditor fourni, paramétrable ou avec des modèles SPIP directement insérables dans l'article
|
|
Oui
|
|
|
Suivi des révisions
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Retour possible et traçable des objets éditoriaux aux anciennes révisions
|
Obligatoire
|
Oui
|
Oui
|
Oui
|
|
|
Afficher les différences des révisions des objets éditoriaux
|
Obligatoire
|
Oui
|
Oui
|
Oui
|
|
|
Suivre les modifications apportées à la "structure" du site (ex : suppression d'une page, d'un éléments d'un menu, modification d'un titre)
|
Bien
|
en partie + programmable
|
|
en partie de base (titre et attributs divers de page), en partie à coder
|
|
|
Mise en page
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Faciliter la mise en page d'images par le formulaire éditorial sans saisir d’HTML.
|
Bien
|
Oui en wysiwyg
|
Oui en wysiwyg
|
Oui
|
|
Citation, italique, gras, boutons, etc. Directement en HTML ou langage de markup.
|
Obligatoire
|
Oui
|
Oui
|
Oui
|
|
|
Possibilité de créer des galleries dans la page
|
Bien
|
Oui en html ou plugin
|
Oui
|
facile
|
|
|
Versions alternatives des articles : mode impression propre
|
Bien
|
Oui via CSS
|
Oui via CSS
|
Oui via CSS
|
|
|
Versions alternatives des articles : mode mobile
|
Obligatoire
|
Oui via CSS
|
Oui via CSS
|
Oui via CSS
|
|
|
Multi-linguisme
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Avoir plusieurs sites, chacun dans sa langue avec des pages disponibles uniquement dans un site
|
Obligatoire
|
Oui avec https://plugins.spip.net/multidomaines
|
|
deux modes possibles: multilinguisme strict (chaque page dans chaque langue) ou multilinguisme best effort
|
|
|
Fonctionnalité de traduction : les traductions sont attachées à l’objet éditorial.
|
Obligatoire
|
Oui
Utilisation de la balise multi pour les titres et descriptions des médias pour les avoir en plusieurs langues, un plugin en rend l'utilisation plus facile (plugin mutilangue). Pour la traduction d'articles et de rubriques, les plugins Traduction autrement rajoutent des onglets dans l'interface privée pour gérer la traduction d'articles.
|
|
Oui
|
|
|
Vue visiteur: passer d'une version à l'autre simplement
|
Bien'
|
Oui
Configuration dans le squelette.
|
|
Oui
|
|
Medias
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Pouvoir « attacher un fichier » à l’article.
|
Bien
|
Oui
|
Oui
|
oui mais c'est pas la bonne façon de faire que de reproduire drupal
|
|
|
Disposer d’un gestionnaire de médias, les classer, les renommer, les référencer, les déplacer et les réutiliser.
|
Bien
|
Oui
|
Oui
|
Oui
|
|
|
SEO, web sémantique, réseaux sociaux
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Positionner les métas (<meta property="og:xxx"/>) correctement pour gérer les partages dans les réseaux sociaux et positionner les images dans les liens web
|
Bien
|
Oui : manuel via template ou automatique via plugin https://contrib.spip.net/Metas-version-2
|
Oui via template
|
Oui
|
|
|
Implémenter un mécanisme de meta dans l'esprit de alinks
|
Si possible
|
Oui avec le plugin Dictionnaires https://plugins.spip.net/dictionnaires
|
Possible via plugin ou développement
|
oui mais c'est pas bien de copier des fonctionnalités pourries de drupal :)
|
|
|
Ajouter des boutons de partages Twitter, Mastodon, …
|
Si possible
|
Oui
|
Oui
|
Oui
|
|
|
Permettre de changer facilement l'url d'une page, définir plusieurs alias.
|
Obligatoire
|
Oui
|
Oui mais un seul alias
|
Oui
|
|
|
Pouvoir produire des calendriers ical et des flux RSS pour tous types de contenus. Définir un flux RSS général, blacklister un article du ou des flux RSS.
|
Obligatoire
|
Oui
|
|
programmable sans trop peiner
|
|
|
Disposer d’un type de contenu podcast avec un flux RSS particulier pour les lecteurs de podcast.
|
Bien
|
Oui
|
|
facile
|
|
|
Gérer dynamiquement le fichier robots.txt.
|
Si possible
|
ou alors pas facilement
|
|
mais pourquoi tant de haine ?
|
|
|
Possibilité de remonter les backlinks.
|
Si possible
|
Oui, natif
|
|
je ne vois pas à quoi tu fais référence
|
|
|
Gérer les parcours de visite, clics par article, etc.
|
Si possible
|
Oui
plugin piwik https://contrib.spip.net/Piwik-2860
|
|
oui mais c'est pas son rôle. Piwik/matomo fera ça mieux.
|
|
|
Structure du site
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Modifier facilement les menus. Pouvoir ranger facilement les éléments d'un menu par ordre alphabétique, le cas échéant.
|
Bien
|
Oui soit en attribuant un numéro aux rubriques dans l'ordre voulu soit via le plugin Menus https://contrib.spip.net/Menus-3139
|
Oui, natif
|
Oui
|
|
|
Reprendre les vues de Drupal personnalisables (type de contenu affiché, longueur des accroches, nombre d'éléments par page...) par ex. https://www.april.org/actualites
|
Obligatoire
|
Oui à programmer avec les noisettes https://plugins.spip.net/noizetier.html ou alors dans les squelettes
|
|
facile
|
|
|
Gestion des campagnes/bannières, ajout sur toutes les pages, exclusion sur certaines pages.
|
Bien
|
Ouidans le squelette en cachant la bannière via une boucle BOUCLE_mots(MOTS) {id_article} {titre=mot-clef-technique}
|
|
Oui
|
|
Ajouter automatiquement les pages dans le flux RSS global
|
Bien
|
Oui
|
|
Oui
|
|
|
Pouvoir désactiver l'ajout automatique d'une page dans le flux RSS
|
Bien
|
Devrait pouvoir se faire par une configuration (mot-clé technique par exemple).
|
|
Oui
|
|
|
Reprendre des flux RSS sur la page d'accueil
|
Obligatoire
|
Oui conception du squelette
|
|
Oui
|
|
|
|
Gestion du footer sitemap la plus automatisée possible
|
Si possible
|
Oui
Si on parle bien d'avoir le plan du site qui se met à jour en fonction de la parution des articles. Il est également possible de configurer le site de façon à ne pas y faire figurer certains articles ou rubriques dans le sitemap.
|
|
Oui
|
|
|
Faire en sorte que la personne visitant le site sache toujours où elle est (menus ou fil d'Ariane ou autre)
|
|
Oui conception du squelette
|
|
Oui
|
|
|
Interactions
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Disposer d’un formulaire de contact paramétrable avec différentes adresses de courriel en fonction des thèmes, plus antispam (accessible, paramétrable).
|
Obligatoire
|
Oui + voir Nospam https://plugins.spip.net/nospam.html
|
n'importe quel formulaire simple, pour inscription news, evenement, etc.
|
n'importe quel formulaire simple, pour inscription news, evenement, etc.
|
|
|
Bloquer l'enregistrement de comptes sans validation, bloquer les commentaires sauf sur certaines pages spécifiques.
|
Obligatoire
|
Oui
|
|
pas d'enregistrement, pas de commentaire si on n'en veut pas
|
|
|
Intégration à gDTC
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Il est possible d'afficher dans certaines pages des indices sur les nombres de membres, idéalement par l'interpolation d'une variable extraite à partir de la base des membres.
|
Obligatoire
|
Oui voir Particularités du site web Drupal6#Solution_SPIP
|
Oui
|
|
|
|
La page personnelle du membre est intégrable comme partie du site, en reprenant la charte graphique générale et en s'authentifiant comme membre.
|
Bien
|
cf. plus haut, mais voir comment gérer les pages non-HTML
|
|
à mieux définir
|
|
|
Une page permet de se renvoyer le mot de passe
|
Obligatoire
|
cf. plus haut
|
|
Oui
|
|
|
Le formulaire d'adhésion est intégré au CMS
|
Obligatoire
|
Oui avec un modèle
|
|
lol
|
|
|
Trombinoscope, équipe, page des personnes morales Ces pages sont intégrées au CMS tout comme /my/.
|
Bien
|
cf. plus haut
|
|
lol
|
|
|
Il est possible d'utiliser gDTC comme base d'authentification des membres et ainsi d'implémenter le SSO. Idéalement, les membres du CA et permanents ont des droits étendus ajoutés.
|
Obligatoire
|
avec LDAP
|
|
au choix : lol
|
|
|
Recherche
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Avoir un moteur de recherche textuelle performant
|
Bien
|
Oui, peut être améliorer avec Fulltext, voir Sphinx
|
|
support natif de elastic search
|
|
|
Idéalement, pouvoir restreindre par type de contenu, thème, trier par pertinence, par date, filtrer sur les articles disponibles en multilingue.
|
Si possible
|
oui par pertinence, sinon formulaire à faire en squelette
|
|
Oui
|
|
|
Besoins admin sys
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Les fonctionnalités essentielles doivent être dans le core du logiciel dans la mesure du possible: faire appel au moins de modules externes possibles
|
Bien
|
MouiSPIP est modulaire et fonctionne justement avec des plugins, qui sont développés pour la plupart sur la zone, ouverts aux améliorations, quelques plugins probables
|
Non installation de nombreux plugins à la licence douteuse quasi obligatoire
|
Non applicable. Mon trollomètre va exploser.
|
|
|
Pouvoir développer des modules persos
|
Bien
|
Oui
|
Oui
|
Oui
|
|
|
Pouvoir mettre en place une version d'intégration/dév
|
Bien
|
Oui avec un squelette en paramètre d'url
|
|
Oui
|
|
(mais tout CMS confondus, c'est mieux soit sur un hébergement différent de la prod, soit au moins un sous-domaine)
|
Faciliter l'utilisation de sélecteurs CSS pour la mise en page pour des pages particulières (i.e. utiliser des ID, classes sur body en fonction du type d'article, l'ID de la page, etc.)
|
Si possible
|
Oui
|
Oui
|
Non c'est pas l'idée. L'idée c'est que la mise en page de toutes les pages passe par l'ihm du backend.
|
|
|
Permettre d'ajouter des enrichissements CSS inline
|
Bien
|
Oui
|
Oui
|
Non c'est pas l'idée.
|
|
|
Conserver les URLs actuels
|
Obligatoire
|
cf script de migration
|
Oui
|
Oui
|
|
|
Pouvoir mettre le site en blackout
|
Bien
|
Oui En travaux ou Intranet n'autorise le site qu'au personnes authentifiées
|
|
Oui
|
|
|
Le CMS doit pouvoir fournir des pages 404 personnalisées, éventuellement adaptatives (outil de recherche, proposition de contenu).
|
Bien
|
Oui
|
Oui
|
Oui
|
|
|
Les articles récupérés par le bot Alexandrie sont récupérables par le CMS sous la forme d'un type d'article particulier, avec des champs spécifiques.
|
Obligatoire
|
à condition de faire évoluer alexandrie
|
Oui
|
Moui
|
|
|
Fonctionne en Debian stable (stretch au 13/03/2018), en 100% libre
|
Obligatoire
|
Oui
|
Moui difficile d'obtenir des informations de licence pour les plugins
|
Oui
|
|
|
Sauvegarde du corpus dans une base MySQL
|
Obligatoire
|
Oui
|
Oui
|
dans une base SQL
|
|
|
Support full HTTPS
|
Obligatoire
|
Oui
|
Oui
|
Oui
|
|
|
Supervision possible des nouvelles versions disponibles, des alertes de sécurité.
|
Bien
|
déjà implémenté pour les autres SPIP
|
|
Oui
|
|
|
Faible fréquence de découverte des patches de sécurité et faible risque de powning.
|
Obligatoire
|
Oui une alerte par an les deux dernières années
|
alertes régulières
|
Oui
|
|
|
Facilité d'application des patches de sécurité.
|
Obligatoire
|
Oui avec spip_loader.php et l'écran de sécurité
|
Non
|
Oui
|
|
|
Supervision du fonctionnement nominal, envoi d'alertes par le CMS en cas de besoin, journal d'évènements.
|
Obligatoire
|
pour la supervision
|
|
c'est pas bien de copier des fonctionnalités pourries de drupal :) tu veux remplir tes tables de garbage ?
|
|
|
Disposer d'un groupe de bénévoles *pérenne* maîtrisant l'outil
|
Obligatoire
|
Oui
|
Non
|
avec un outil qui donne envie ça peut être plus facile
|
|
|
Besoins développeur
Fonction
|
Importance
|
Spip
|
Wordpress
|
Wagtail
|
Joomla
|
Commentaire
|
Je travaille sur un CMS qui ne ressemble pas à un tas de boue et qui n'appelle pas au suicide à chaque évolution
|
Bien
|
Oui mises à jour non destructive depuis toujours
|
|
Oui
|
|
|
Je travaille sur un thème dans un langage de template, avec de la structure (type MVC)
|
Bien
|
|
|
Oui
|
|
|
Je travaille sur un CMS dont la configuration aussi bien que le thème sont compréhensibles de façon globale, définis dans des fichiers textes, reproducibles, indexables et versionnables.
|
Bien
|
|
|
Oui
|
|
|
Je travaille sur un CMS qui intègre des mécanisme de tests fonctionnels et de non regression
|
Bien
|
|
|
Oui
|
|
|
Disposer d'un groupe de bénévoles *pérenne* maîtrisant le langage qui décrit le CMS
|
Bien
|
|
|
Oui
|
|
Je travaille sur un CMS qui ne nécessite ni thèse ni aspirine pour le faire évoluer
|
|
|
|
Non
|
|