Projets Suggestions de fonctions Divers

Des idées pour 2009

En prévision de la réunion du comité de version demain, le 19 janvier 2009, j'ai compilé quelques notes pour partager mes souhaits et mes rêves pour la prochaine version majeure de Yacs.

Dans les grandes lignes, je souhaiterais d'abord qu'on poursuive l'excellent boulot accompli avec la version Macnana sur ces deux points :

  • la flexibilité du paramétrage pour les designers web
  • la facilité de contribution pour les usagers de Yacs

et j'aimerais qu'on progresse davantage dans les directions suivantes :

  • le support à la collaboration interactive
  • le support à l'internationalisation des sites

avec peut-être aussi certaines attentes au sujet de l'architecture de Yacs.

Flexibilité de paramétrage pour les designers web

Les composants

En ce qui concerne le paramétrage, la chose la plus formidable dans les nouveautés de Macnana est certainement la capacité d'ordonnancer à volonté les "composants" dans les colonnes.

J'aimerais qu'on fasse du pouce sur cette notion et qu'on développe :

  • des codes Yacs pour placer les composants n'importe où dans les pages
  • un panneau de contrôle réorganisé par composant (par exemple, tout ce qui concerne les fils de nouvelles à la même place)
  • une façon d'activer et de désactiver en bloc un composant (y compris l'affichage de tout ce qui y réfère)

J'aimerais qu'on étende cette notion de composant à certaines choses qui n'en sont peut-être pas à proprement parler. Par exemple, les sondages :

  • on active ou non
  • on trouve tous les réglages dans un seul onglet du panneau de configuration
  • on a un code yacs pour l'afficher n'importe où
  • si c'est désactivé, on n'en voit jamais mention dans l'affichage

Si on s'oriente davantage vers la programmation objet, chaque composant pourrait devenir un objet...

Les pages globales

Voilà une autre notion qui a beaucoup de puissance. J'aimerais voir encore plus de pages globales, configurables par le designer (dans le sens de créateur, auteur du site, pas seulement de graphiste) :

  • la page de bienvenue
  • la page d'aide
  • et pourquoi pas le bas de page (on pourrait en avoir plusieurs)
  • et même le bandeau d'en-tête

Les skins

Le souhait d'avoir des skins plus faciles à personnaliser est quelque chose qui revient constamment. Pour ma part, je crois comme Bernard que l'avenir de Yacs n'est pas dans les skins configurables en 3 clics par l'usager lambda. Laissons ça à d'autres.

Je crois cependant qu'il serait bon de :

  • convenir d'un certain nombre de "containers" type et d'harmoniser tous les skins pour leur usage (e.g. header_panel est un container)
  • créer une certaine correspondance entre ces containers et les composants (voir ci-dessus)
  • réviser les templates pour les harmoniser en utilisant ces containers (ce qui ne veut pas dire que tous les templates devront utiliser tous les containers, ni toujours de la même façon)
  • réorganiser les feuilles de style par thèmes et les séparer en fichiers distincts : par exemple, tout ce qui vise à annuler les réglages par défaut devrait être un fichier reset.css, classé dans skins/_reference/ où se trouve déjà yacs.css d'ailleurs
  • de la même façon, on pourait avoir d'autres feuilles de style spécialisées, comme yacs_codes.css, par exemple, qu'on appelerait à partir de la feuille de style principale du style, mon_style.css, et qu'on pourrait modifier à partir de cette feuille principale (mêm principe que les extensions de classe rendu possible par la cascade)
  • la feuille de style principale, quant à elle, serait structurée selon le layout des containers et non par ordre alphabétique
  • cela rendrait la feuille de style prinicipale beaucoup plus lisible, facile à modifier, facile à entretenir (d'une version à l'autre)

Cette façon de faire serait conforme aux Pratiques exemplaires en matière de CSS.

Panneau de contrôle

J'y ai déjà fait allusion ci-dessus : je souhaiterais une réorganisation du panneau de contrôle, quoiqu'il se soit déjà baucoup amélioré avec ses onglets. Je souhaiterais que :

  • l'aperçu soit une liste de liens directs vers les commandes les plus utilisées (comme la purge du cache, par exemple)
  • tout ce qui a rapport à la base de données (l'aperçu actuel,  les Paramètres système, la Maintenance) soit dans un même onglet, et pas le premier
  • de la même façon, qu'on regroupe ensemble tout ce qui règle une même fonctionnalité (e.g. Fils d'information dans l'onglet Contenu et fils d'information dans l'onglet Configuration)

Et si on rêvait...

C'est plus un fantasme qu'une proposition, mais je rêve d'un usage beaucoup plus intensif d'Ajax, tant au niveau de l'usager qu'au niveau de la configuration. Pour vous rincer l'oeil, je vous invite à visiter http://www.squarespace.com/

Facilité de contribution pour l'usager Yacs

Codes Yacs

Je suis un fan des codes Yacs. J'ai proposé ci-dessus d'en créer d'autres et c'est sûrement quelque chose auquel je vais contribuer cette année. C'est d'ailleurs par çà que je me suis initié aux contributions à Yacs.

Les usagers en redemandent, profitons du momentum. Il y a plusieurs suggestions intéressantes qui attendent d'être implémentés, et de nouvelles idées sont régulièrement proposées, dont le récent Nouveau code texte.

Il serait bon de réviser l'architecture du script shared/codes.php pour permettre facilement l'ajout de codes personnalisés. Peut-on songer à une extension de la classe un peu à la façon dont Skin extensionne Skin_Skeleton ?

Éditeurs embarqués

Je ne m'y connais pas sur ce sujet et je vais avoir l'air de me plaindre alors qu'on a la chance d'avoir, non pas un, mais 3 éditeurs de texte embarqués dans Yacs.

Pourtant, j'ai encore de la difficulté avec ça. Surtout quand je passe d'un éditeur à l'autre. Je ne sais pas s'il faut en chercher la cause dans les fonctionnalités, dans la documentation ou dans ma caboche, mais je ne suis pas capable de "vendre" à mes clients la facilité de contribution au site grâce à ces éditeurs. C'est acceptable, mais pas vendeur.

On peut y faire quelque chose ?

Traitement des images

Là encore, on a une fonctionnalité qui fait le travail, mais ce n'est pas particulièrement ergonomique. L'impossibilité de traiter le texte et l'image dans la même opération d'édition n'est pas intuitive et mène à bien des frustrations.

Et puis, il y a la question des multiples façons d'ajouter (et d'enregistrer) une image dans Yacs, qui peut créer de la confusion (et le risque de ne pas tout sauvegarder) : la méthode "classique" met les images dans images/ mais on peut aussi les ajouter comme des collections; si on les ajoute par un outil de blogue, c'est autre chose, et en les copiant du web avec TinyMCE, c'est une simple référence.

Pas sûr du tout que ça nous serve, cet arrangement...

Ergonomie générale

On a déjà parlé du problème sur ce site mais on n'a pas pris des mesures systématiques pour l'éradiquer. Et il vient d'être rappellé à notre attention récemment au sujet de l'Ergonomie de visualisation des commentaires.

Le problème dont je parle, c'est le nombre de clics excessifs qui est requis pour de nombreuses opérations avec Yacs.

Dans mon fantasme ajaxien, ce problème n'existe pas, mais c'est le propre des fantasmes d'être idylliques, n'est-ce pas ? Si on était plus terre-à-terre et qu'on ouvrait un chantier "anti-clics" ?

Un autre fantasme

Je mets ça dans la section de facilité de contribution pour l'usager, mais ça irait tout aussi bien dans la section suivante traitant de collaboration interactive : à quand les posts par courrier électronique au format HTML ?

Support à la collaboration interactive

Fonctionnalités existantes

On a dans Yacs des fonctionnalités tout simplement extraordinaires pour la collaboration ! J'ai bien l'intention de les appliquer davantage, de les tester à fond et d'aider à les faire évoluer en 2009. Au premier rang :

  • le clavardage dans les pages privées
  • l'invitation par courriel
  • le partage d'écran
  • les formulaires

Gestion des droits

C'est un sujet maintes fois abordé ici et qu'on hésite à reprendre car il est très ccomplexe. Il faudra pourtant y travailler encore si on veut que Yacs devienne un véritable outil de collaboration au sein des entreprises.

En fait, Bernard a déjà fait beaucoup en 2008 en révisant la cascade des droits mais il reste de nombreux besoins à considérer comme nous le rappelle [user=561]  à l'occasion (il faudra retrouver ses posts).

Pour ma part, je considère essentiel d'ajouter la gestion des droits par groupe. On devra pouvoir assigner une personne à un groupe et assigner des droits sur une page à ce groupe.

Je viens de créer un intranet pour un cours et j'aurais eu besoin d'un groupe pour les "élèves", un autre pour les "coachs", un autre pour les "superviseurs". J'ai géré ça avec des droits d'éditeurs mais ce n'est pas suffisant.

J'aurais des propositions à faire en la matière si on veut bien ouvrir la discussion sur le sujet.

Calendrier et agenda

Un élément essentiel de la collaboration en groupe, c'est la gestion du temps : évènements, échéances, etc.

J'aimerais voir Yacs évoluer rapidement en ce domaine :

  • à quand un agenda sur Yacs ?
  • et un agenda partagé avec d'autres membres ?
  • un synchronisation avec Google agenda ?
  • des fonctionnalités de gestion de projet ?
  • des fonctionnalités de GTD ?

Connexion à d'autres logiciels (API)

Gestion du workflow

Autres fonctionnalités avancées

J'aimerais bien pouvoir faire les choses suivantes avec Yacs :

  • voir mon calendrier Google Calendar directement dans une page Yacs (ce qui implique que la page se connecte avec mon mot de passe pour récupérer mon calendrier)
  • voir une carte MindMeister directement dans une page web (même concept, différent site)
  • régler les options d'affichage de Freemind quand Yacs m'affiche le contenu de ma section sous forme de carte Freemind (c'est la seule condition pour que cet affichage soit vraiment utile, et ce le serait vraiment alors!)
  • intégrer Wikicalc (je l'ai fait !) ou un autre système de feuille de calcul directement dans Yacs (encore une fois, il serait possible d'afficher Google Spreadsheet directement dans une page Yacs)

Sont-ce encore des fantasmes ? J'aimerais pouvoir un jour utiliser Yacs comme outil de gestion de projet où :

  • les sous-projets sont des sections présentées sous forme de carte Freemind
  • les tâches sont des articles qui enregistrent les temps estimés, les échéances, les dépendances entre les tâches
  • on peut visualiser les tâches d'un projet sous forme de liste, de calendrier, de Gantt chart...
  • et tout cela avec un système de gestion du workflow (approbation , etc...)

Je sais que c'est faisable, ça prend juste du temps. Et ça dépend des priorités. Mais je vous lance des idées... et vous fait part de mon intérêt pour les faire avancer...

Support à l'internationalisation des sites

Je manque de temps pour faire des suggestions aussi détaillées que ci-dessus mais je désire souligner deux points :

  • il faut se débarasser définitivement de la "babelisation" du site Yetanoz (affichage mi-français mi-anglais) si on veut être pris au sérieux sur ce sujet
  • comme les solutions à la problématique des sites multilingues sont nombreuses mais pas toujours compatibles (je pense en particulier à un article posté ici il y a quelques temps présentant diverses stratégies), je crois qu'on devrait ouvrir une discussion de fond sur les choix stratégiques à faire en la matière

Et pour terminer : Bonne année 2009 à Yacs et à toute son équipe !