« Cahier des charges de la migration Drupal6 » : différence entre les versions

De April MediaWiki
Aller à la navigationAller à la recherche
Aucun résumé des modifications
Aucun résumé des modifications
Ligne 715 : Ligne 715 :
|
|
|}
|}
== Cahier des charges général ==
* logiciel libre
* production de code HTML
** accessible
** 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)
== User stories ==
Interviewer:
* <s>Fred</s>
* <s>Étienne</s>
* <s>Isabella</s>
* 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 ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!Joomla
!Commentaire
|-
|Citation du moment: affichage d'un article de type citation pris au hasard
|'''Obligatoire'''
|
|
|
|
|-
|Flux RSS: configurables à partir de l'interface d'administration ou du template (LinuxFR, AdL, Lolix, ...)
|'''Obligatoire'''
|
|
|
|
|-
|Bandeaux de campagnes: idéalement configurables à partir de l'interface de type citation pris au hasard
|'''Obligatoire'''
|
|
|
|
|-
|Dernière vidéo: dernier article de type video, avec métadonnées affichées (chapo) + vignette
|'''Obligatoire'''
|
|
|
|
|-
|Nuage de tags: chaque article doit pouvoir être taggué
|'''Obligatoire'''
|
|
|
|
|-
|Revue de presse, actualités, communiqués: derniers articles de type presse, actualités, communiqués
|'''Obligatoire'''
|
|
|
|
|-
|}
=== Taxonomie ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!Joomla
!Commentaire
|-
|Taxonomie: au moins thèmes, types de publication, catégories
|'''Obligatoire'''
|
|
|
|
|-
|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'''
|
|
|
|
|-
|Les taxonomies de type date doivent produire des calendriers web, ICAL, RSS, etc.
|'''Bien'''
|
|
|
|
|-
|Structures d'articles différente en fonction du type d’article : revue presse, évènements, etc.
|'''Obligatoire'''
|
|
|
|
|-
|}
=== Workflow de publication ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!Joomla
!Commentaire
|-
|États de publication : au moins publié, en validation, en cours d’écriture, retiré (si possible)
|'''Obligatoire'''
|
|
|
|
|-
|Programmer la publication d'un contenu.
|'''Bien'''
|
|
|
|
|-
|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'''
|
|
|
|
|}
=== Fonctions d’édition ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!Joomla
!Commentaire
|-
|Édition par saisie uniquement via formulaire web de code HTML et/ou markup, éventuellement en mode wysiwyg si production de code propre et récupération de l'existant.
|'''Obligatoire'''
|
|
|
|
|-
|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'''
|
|
|
|
|-
|Upload de plusieurs fichiers par article, insertion dans le corps de l'article, éventuelle vignette.
|'''Bien'''
|
|
|
|
|-
|L'administration du site (contenu, page de garde, configuration…) doit être possible au maximum juste avec le navigateur web
|'''Bien'''
|
|
|
|
|}
=== Suivi des révisions ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!Joomla
!Commentaire
|-
|Revert traçable des objets éditoriaux
|'''Obligatoire'''
|
|
|
|
|-
|Afficher les différences des révisions des objets éditoriaux
|'''Obligatoire'''
|
|
|
|
|-
|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'''
|
|
|
|
|}
=== Mise en page ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!Joomla
!Commentaire
|-
|Faciliter la mise en page d'images par le formulaire éditorial sans saisir d’HTML.
|'''Bien'''
|
|
|
|-
|Citation, italique, gras, boutons, etc. Directement en HTML ou langage de markup.
|'''Obligatoire'''
|
|
|
|
|-
|Possibilité de créer des galleries dans la page
|'''Bien'''
|
|
|
|
|-
|Versions alternatives des articles : mode impression
|'''Bien'''
|
|
|
|
|-
|Versions alternatives des articles : mode mobile
|'''Obligatoire'''
|
|
|
|
|}
=== Multi-linguisme ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!Joomla
!Commentaire
|-
|Fonctionnalité de traduction : les traductions sont attachées à l’objet éditorial.
|'''Obligatoire'''
|
|
|
|
|-
|Vue visiteur: passer d'une version à l'autre simplement
|''Bien'''
|
|
|
|}
=== Medias ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!Joomla
!Commentaire
|-
|Pouvoir « attacher un fichier » à l’article.
|'''Bien'''
|
|
|
|
|-
|Disposer d’un gestionnaire de médias, les classer, les référencer et les réutiliser.
|'''Bien'''
|
|
|
|
|}
=== SEO, web sémantique, réseaux sociaux ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!Joomla
!Commentaire
|-
|Positionner les métas (<meta property="og:xxx"/>) correctement pour gérer les partages dans les réseaux sociaux.
|'''Bien'''
|
|
|
|
|-
|Ajouter des boutons de partages Twitter, Mastodon, …
|'''Si possible'''
|
|
|
|
|-
|Permettre de changer facilement l'url d'une page, définir plusieurs alias.
|'''Obligatoire'''
|
|
|
|
|-
|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'''
|
|
|
|
|-
|Disposer d’un type de contenu podcast avec un flux RSS particulier pour les lecteurs de podcast.
|'''Bien'''
|
|
|
|
|-
|Gérer dynamiquement le fichier robots.txt.
|'''Si possible'''
|
|
|
|
|-
|Possibilité de remonter les backlinks.
|'''Si possible'''
|
|
|
|
|-
|Gérer les parcours de visite, clics par article, etc.
|'''Si possible'''
|
|
|
|
|}
=== Structure du site ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!Joomla
!Commentaire
|-
|Modifier facilement les menus. Pouvoir ranger facilement les élements d'un menu par ordre alphabétique, le cas échéant.
|'''Bien'''
|
|
|
|
|-
|Reprendre les vues de Drupal dans une certaine mesure: configurer le nombre d'articles, la taille du contenu de prévisualisation, etc.
|'''Obligatoire'''
|
|
|
|
|-
|Gestion des campagnes/bannières, exclusion sur certaines pages.
|'''Bien'''
|
|
|
|
|-
|Reprendre des flux RSS sur la page d'accueil
|'''Obligatoire'''
|
|
|
|
|}
=== Intéractions ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!Joomla
!Commentaire
|-
|Disposer d’un formulaire de contact paramétrable avec adresses de courriel en fonction des thèmes, plus antispam (accessible, paramétrable).
|'''Obligatoire'''
|
|
|
|
|-
|Bloquer l'enregistrement de comptes sans validation, bloquer les commentaires.
|'''Obligatoire'''
|
|
|
|
|}
=== Intégration à gDTC ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!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'''
|
|
|
|
|-
|
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'''
|
|
|
|
|-
|Une page permet de se renvoyer le mot de passe
|'''Obligatoire'''
|
|
|
|
|-
|Le formulaire d'adhésion est intégré au CMS
|'''Obligatoire'''
|
|
|
|
|-
|Trombinoscope, équipe, page des personnes morales Ces pages sont intégrées au CMS tout comme /my/.
|'''Bien'''
|
|
|
|
|-
|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'''
|
|
|
|
|}
=== Recherche ===
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!Joomla
!Commentaire
|-
|Avoir un moteur de recherche textuelle performant
|'''Bien'''
|
|
|
|
|-
|Idéalement, pouvoir restreindre par type de contenu, trier par pertinence, par date, filtrer sur les articles disponibles en multilingue.
|'''Si possible'''
|
|
|
|
|}
== Besoins admin sys ==
{| class="wikitable"
!|Fonction
!Importance
!Spip
!Wordpress
!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'''
|
|
|
|
|-
|Pouvoir développer des modules persos
|'''Bien'''
|
|
|
|
|-
|Pouvoir mettre en place une version d'intégration/dév
|'''Bien'''
|
|
|
|
|-
|Faciliter l'utilisation de sélecteurs CSS pour la mise en page pour des pages particulières
|'''Si possible'''
|
|
|
|
|-
|Conserver les URLs actuels
|'''Obligatoire'''
|
|
|
|
|-
|Pouvoir mettre le site en blackout
|'''Bien'''
|
|
|
|
|-
|Le CMS doit pouvoir fournir des pages 404 personnalisées, éventuellement adaptatives (outil de recherche, proposition de contenu).
|'''Bien'''
|
|
|
|
|-
|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'''
|
|
|
|
|-
|Fonctionne en Debian stable (stretch au 13/03/2018), en 100% libre
|'''Obligatoire'''
|
|
|
|
|-
|Sauvegarde du corpus dans une base MySQL
|'''Obligatoire'''
|
|
|
|
|-
|Support full HTTPS
|'''Obligatoire'''
|
|
|
|
|-
|Supervision possible des nouvelles versions disponibles, des alertes de sécurité.
|'''Bien'''
|
|
|
|
|-
|Facilité d'application des patches de sécurité.
|'''Obligatoire'''
|
|
|
|
|-
|Supervision du fonctionnement nominal, envoi d'alertes par le CMS en cas de besoin, journal d'évènements.
|'''Obligatoire'''
|
|
|
|
|}
== Besoins remontés par Fred ==
{{todo}} à classer:
- Création d'une page :
  - pouvoir créer une page sans avoir recours à des tags htmls
    compliqués (autres que a, p ...)
  - présence d'un éditeur html pour aider, qui génère du html qui
    valide
  - gestion de révisions, avec affichage des révisions, pouvoir faire
    un diff, un retour à une révision
  - gestion mode non publié puis publié
  - paramétrage du chemin d'url pour avoir des urls parlantes
  - gestion possible de commentaires pour une page spécifique
  - ajout automatique de la page dans le flux rss
  - désactivation possible de l'ajout automatique d'une page dans le
    flux rss
  - pouvoir joindre des fichiers (images, document bureautique...)
  - avoir une version imprimable propre de la page une fois publiée
  - avoir une version PDF propre de la page une fois publiée
  - avoir une taxonomie / un vocabulaire à associer à du contenu
 
      - pour indiquer la liste des thèmes traités par
        l'article
      - pour indiquer une type de publication : Communiqué de
        presse, transcriptions, décryptualité …
       
  - avoir des flux RSS spécifique à chaque type de contenu
  - avoir un mode prévisualisation
 
- Pouvoir créer du contenu spécifique (avec des champs dédiés) :
  - bibliographie
  - transcription
  - événement, avec gestion d'un flux rss et d'un lien ical
  - lexique
  - position
  - revue de presse
  - ...
- Avoir des views personnalisables (type de contenu affiché, longueur
  des accroches, nombre d'éléments par page...) genre
  https://www.april.org/actualites
- Avoir un formulaire de contact avec différentes entrées associées à
  différentes adresses courriel
- Avoir un moteur de recherche performant, voir avec une version
  avancée avec recherche en filtrant par catégories, thèmes...
- Alinks ?
- Les fonctionnalités essentielles du site doivent être disponibles
  via le core du logiciel et non pas via des modules externes
 
- Présence d'un gestionnaire de médias permettant d'uploader des
  fichiers, les renommer, les mettre dans des dossiers, les déplacer
- Pouvoir créer du contenu de type podcast avec flux RSS dédidé et
  compatible lecteurs de podcast (pour décryptualité)
- Gestion multilangue du site avec des pages uniquement dans une
  langue
 
- Voir avec echarp pour la revue de presse
- Gestion des images pour un un lien web et réseaux sociaux (Twitter
  Cards) dans les meta tags
- boutons partage sur réseaux sociaux
- ajout de bannières sur toutes les pages voire en mettant des
  exceptions
- permettre la mise en place d'enrichissements HTML/CSS :
https://www.april.org/sauvons-le-partage-de-code-appel-signature-de-la-lettre-ouverte-save-code-share
- gestion d'un sitemap footer presque automatique ?
- l'affichage de contenu de flux rss externes, sur la page d'accueil
- doit être compatible version téléphones mobiles
=====
- SEO
- site accessible

Version du 26 juin 2018 à 12:42

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)


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 Joomla Commentaire
Citation du moment: affichage d'un article de type citation pris au hasard Obligatoire
Flux RSS: configurables à partir de l'interface d'administration ou du template (LinuxFR, AdL, Lolix, ...) Obligatoire
Bandeaux de campagnes: idéalement configurables à partir de l'interface de type citation pris au hasard Obligatoire
Dernière vidéo: dernier article de type video, avec métadonnées affichées (chapo) + vignette Obligatoire
Nuage de tags: chaque article doit pouvoir être taggué Obligatoire
Revue de presse, actualités, communiqués: derniers articles de type presse, actualités, communiqués Obligatoire


Taxonomie

Fonction Importance Spip Wordpress Joomla Commentaire
Taxonomie: thèmes, types de publication, catégories Obligatoire
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
Les taxonomies de type date doivent produire des calendriers web, ICAL, RSS, etc. Bien
Structures d'articles différente en fonction du type d’article : revue presse, évènements, etc. Obligatoire


Workflow de publication

Fonction Importance Spip Wordpress Joomla Commentaire
États de publication : au moins publié, en validation, en cours d’écriture, retiré (si possible) Obligatoire
Programmer la publication d'un contenu. Bien
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

Fonctions d’édition

Fonction Importance Spip Wordpress 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
Pouvoir prévisualisation un contenu avant publication Obligatoire
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
Upload de plusieurs fichiers par article, insertion dans le corps de l'article, éventuelle vignette. Bien
L'administration du site (contenu, page de garde, configuration…) doit être possible au maximum juste avec le navigateur web Bien


Suivi des révisions

Fonction Importance Spip Wordpress Joomla Commentaire
Retour possible et traçable des objets éditoriaux aux anciennes révisions Obligatoire
Afficher les différences des révisions des objets éditoriaux Obligatoire
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


Mise en page

Fonction Importance Spip Wordpress Joomla Commentaire
Faciliter la mise en page d'images par le formulaire éditorial sans saisir d’HTML. Bien
Citation, italique, gras, boutons, etc. Directement en HTML ou langage de markup. Obligatoire
Possibilité de créer des galleries dans la page Bien
Versions alternatives des articles : mode impression propre Bien
Versions alternatives des articles : mode mobile Obligatoire


Multi-linguisme

Fonction Importance Spip Wordpress Joomla Commentaire
Avoir plusieurs sites, chacun dans sa langue avec des pages disponibles uniquement dans un site Obligatoire
Fonctionnalité de traduction : les traductions sont attachées à l’objet éditorial. Obligatoire
Vue visiteur: passer d'une version à l'autre simplement Bien'


Medias

Fonction Importance Spip Wordpress Joomla Commentaire
Pouvoir « attacher un fichier » à l’article. Bien
Disposer d’un gestionnaire de médias, les classer, les renommer, les référencer, les déplacer et les réutiliser. Bien


SEO, web sémantique, réseaux sociaux

Fonction Importance Spip Wordpress 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
Implémenter un mécanisme de meta dans l'esprit de alinks Si possible
Ajouter des boutons de partages Twitter, Mastodon, … Si possible
Permettre de changer facilement l'url d'une page, définir plusieurs alias. Obligatoire
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
Disposer d’un type de contenu podcast avec un flux RSS particulier pour les lecteurs de podcast. Bien
Gérer dynamiquement le fichier robots.txt. Si possible
Possibilité de remonter les backlinks. Si possible
Gérer les parcours de visite, clics par article, etc. Si possible


Structure du site

Fonction Importance Spip Wordpress Joomla Commentaire
Modifier facilement les menus. Pouvoir ranger facilement les élements d'un menu par ordre alphabétique, le cas échéant. Bien
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
Gestion des campagnes/bannières, ajout sur toutes les pages, exclusion sur certaines pages. Bien
Ajouter automatiquement les pages dans le flux RSS global Bien
Pouvoir désactiver l'ajout automatique d'une page dans le flux RSS Bien
Reprendre des flux RSS sur la page d'accueil Obligatoire
Gestion du footer sitemap la plus automatisée possible Si possible


Interactions

Fonction Importance Spip Wordpress 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
Bloquer l'enregistrement de comptes sans validation, bloquer les commentaires sauf sur certaines pages spécifiques. Obligatoire


Intégration à gDTC

Fonction Importance Spip Wordpress 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

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
Une page permet de se renvoyer le mot de passe Obligatoire
Le formulaire d'adhésion est intégré au CMS Obligatoire
Trombinoscope, équipe, page des personnes morales Ces pages sont intégrées au CMS tout comme /my/. Bien
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


Recherche

Fonction Importance Spip Wordpress Joomla Commentaire
Avoir un moteur de recherche textuelle performant Bien
Idéalement, pouvoir restreindre par type de contenu, thème, trier par pertinence, par date, filtrer sur les articles disponibles en multilingue. Si possible



Besoins admin sys

Fonction Importance Spip Wordpress 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
Pouvoir développer des modules persos Bien
Pouvoir mettre en place une version d'intégration/dév Bien
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
Permettre d'ajouter des enrichissements CSS inline Bien
Conserver les URLs actuels Obligatoire
Pouvoir mettre le site en blackout Bien
Le CMS doit pouvoir fournir des pages 404 personnalisées, éventuellement adaptatives (outil de recherche, proposition de contenu). Bien
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
Fonctionne en Debian stable (stretch au 13/03/2018), en 100% libre Obligatoire
Sauvegarde du corpus dans une base MySQL Obligatoire
Support full HTTPS Obligatoire
Supervision possible des nouvelles versions disponibles, des alertes de sécurité. Bien
Facilité d'application des patches de sécurité. Obligatoire
Supervision du fonctionnement nominal, envoi d'alertes par le CMS en cas de besoin, journal d'évènements. Obligatoire