[spip-dev] Interface spip-dev

Hello,

J'ai commencé à reprendre l'interface de la version de dev.
=> J'ai allégé l'interface, à la fois du bandeau, des formulaires et des pavés.
=> J'ai déplacé les effets basés sur les images colorisées dans la skin. De ce fait, si on n'active pas la skin, on obtient une interface plus sobre. J'ai essayé d'installer une skin basée sur spip-bonux, ça fonctionne presque.

=> Évidemment, on peut aller plus loin, mais je n'ai pas trop voulu mettre le foutoir pour cette première journée. :-))

En revanche, il y a un souci: les /images sont forcément dans la skin. La fonction find_in_skin ne cherche que dans la skin active. Ce qui obligerait, pour chaque skin, à livrer l'intégralité du dossier /images (qui est très lourd), avec un autre inconvénient: si on ajoute une icone quelque part dans l'interface, une skin qui ne contient pas cette nouvelle image devient soudainement défaillante. Alors qu'on n'a pas la même logique pour la feuille de style, qui se contente de compléter style_prive (si dans le développement de SPIP on ajoute un nouveau style quelque part, les skins qui précèdent ne sont pas défaillantes).

Du coup, j'ai ajouté une ligne dans utils.php, qui, si on ne trouve pas le fichier dans la skin, lance alors un find_in_path.
=> Ça nous permettrait illico de repasser toutes les nouvelles skin/spip/images dans /prive/images. Et alors, pour faire une nouvelle skin, on se contenterait de livrer le complément de feuille de style et les quelques images (sans doute les grosses icones principales) nécessaires pour personnaliser le bidule.

ARNO*

Hello,

J'ai commencé à reprendre l'interface de la version de dev.
=> J'ai allégé l'interface, à la fois du bandeau, des formulaires et des pavés.
=> J'ai déplacé les effets basés sur les images colorisées dans la skin. De ce fait, si on n'active pas la skin, on obtient une interface plus sobre. J'ai essayé d'installer une skin basée sur spip-bonux, ça fonctionne presque.

=> Évidemment, on peut aller plus loin, mais je n'ai pas trop voulu mettre le foutoir pour cette première journée. :-))

En revanche, il y a un souci: les /images sont forcément dans la skin. La fonction find_in_skin ne cherche que dans la skin active.

Non : skin active + skin par defaut
Il y a deux notions de 'skin par defaut' :
- la 'skin par defaut de SPIP', ou skin de base, qui doit etre complète
- la 'skin par defaut des utilisateurs', qui est en fait la skin active par defaut, qui peut etre differente de la premiere.

Ce qui obligerait, pour chaque skin, à livrer l'intégralité du dossier /images (qui est très lourd), avec un autre inconvénient: si on ajoute une icone quelque part dans l'interface, une skin qui ne contient pas cette nouvelle image devient soudainement défaillante. Alors qu'on n'a pas la même logique pour la feuille de style, qui se contente de compléter style_prive (si dans le développement de SPIP on ajoute un nouveau style quelque part, les skins qui précèdent ne sont pas défaillantes).

Du coup, j'ai ajouté une ligne dans utils.php, qui, si on ne trouve pas le fichier dans la skin, lance alors un find_in_path.
=> Ça nous permettrait illico de repasser toutes les nouvelles skin/spip/images dans /prive/images. Et alors, pour faire une nouvelle skin, on se contenterait de livrer le complément de feuille de style et les quelques images (sans doute les grosses icones principales) nécessaires pour personnaliser le bidule.

Non, non tu n'as pas bien vu le mécanisme :

On a une skin SPIP complète, qui est celle par défaut.
Et lorsque c'est une autre skin active, et qu'un element y manque, il est pris dans la skin SPIP.
On peut donc tout a fait fournir une skin alternative qui ne contient que les grosses icones du bandeau, donc.

Cédric

Comme je l'indiquais dans mon mail sur spip-core :

- la skin principale (qui sert de rechange aux skins supplementaires) peut etre redefinie par tout plugin avec define('_SPIP_SKIN','nomdemaskinimposee');
- la skin par defaut des utilisateurs est la skin principale sauf si elle est definie par $GLOBALS['skin_defaut'] = 'maskinpardefaut';

Pour le moment il faut donc utiliser la globale pour tester.
Je pense qu'on va aller vers une préférence utilisateur qui choisira sa skin parmi celles dispos.

Cédric

Oui. Comme je l’ai indiqué dans un autre mail, je pense que pour l’instant la façon de procéder est propre: je déplace le bling-bling dans le css de la skin “standard”. Quand on sera prêt, il suffira de transférer dans un autre dossier pour le rendre totalement optionnel. Pour l’instant, pour tester «sans bling-bling», je me contente de déplacer le fichier de CSS à la racine de skin/spip/ et ça le désactive illico.

Sinon, au sujet des préférences, on a des incohérences et des lourdeurs.

  • les préférences du site, elles, sont accessibles de manière particulièrement abondantes: dans la barre gris foncé du haut, dans le sous-menu «Configuration», et encore via les onglets une fois qu’on est dans une des pages;
  • pour l’utilisateur, il n’y a qu’un moyen: passer par son nom dans la barre grise et cliquer sur les onglets. Or, on s’était battu avec la 1.8 pour que presque tout soit accessible en un clic, et en limitant le recours aux onglets vraiment quand on ne pouvait pas faire autrement. Avec le nouveau système de sous-menus, on peut imaginer regagner de ce côté.

Ou: considérer que les onglets sont utiles pour n’avoir qu’une entrée de sous-menu, pour les actions qu’on ne fait pas souvent (par exemple: configuration du site). Là, en revanche, il y a des endroits où l’on a l’impression d’avoir découpé un peu artificiellement les pages pour forcer la nouvelle logique: on veut des pages de configuration (mais, pour l’utilisateur, il n’y a pas grand chose à configurer de plus qu’avant, quand c’était accessible depuis le bandeau coloré). Je suis d’accord sur l’évolution vers la config utilisateur, qui permettra de plus facilement se pluguer dessus, mais il faut qu’on parvienne à rationnaliser un peu plus (il y a déjà un gros effort de rationnalisation, hein, je ne dis pas le contraire).

Par ailleurs, il y a les pages «navigation» qu’il va falloir traiter. Je ne sais pas ce que tu as prévu, mais je pense qu’il faut que ces pages soient des sortes de tableaux de bord, presque exactement dans la même logique que la page «accueil». Pages de tableaux de bord alimentées par plugins, évidemment. Un résumé très condensé de l’activité, un résumé des possibilités de config… Et du coup, la page «Accueil» aurait vocation à devenir elle-même une page «navigation» pluguée pour y insérer ce qui doit s’y trouver.

Du coup, désolé de revenir sur ce sujet que tu as déclaré clos: je verrais tout de même bien un sous-menu pour accueil, accueillant simplement les entrées qui concerne directement l’utilisateur. Notamment: accès directs à ses pages de config perso (Qui suis-je, Ma langue, Mes préférences d’affichage), éventuellement Mes articles… Et sa messagerie tant qu’à faire si on remet cette partie de SPIP au goût du jour (la base est là, ça ne doit pas être impossible). Ce qui permettrait donc de remettre dans la même cohérence que les préférences du site les options de configuration de l’usager.

A*

Un des objectifs du remaniement du bandeau était d’évacuer le problème des pages d’admin accessibles par le clic sur les grosses icônes et que les utilisateurs ne trouvent pas, de manière récurrente.

Si l’on remet des pages sur ces icônes, on perd tout cela. C’est donc volontaire et non transitoire, que toutes les pages de navigations sont vides et ne donnent aucune info en plus. Ces pages sont redondante avec la navigation déroulante, qui peut ne pas marcher dans certains contextes.

Au même titre, mettre un menu déroulant sur le bouton accueil, qui est le seul à ne pas se dérouler, affaiblit beaucoup la compréhension que l’on peut avoir de ce bouton et réintroduit l’ambiguïté.
C’est une mauvaise idée

On peut aussi refaire toute la discussion si tu préfères…

Cédric

pour chaque skin,

...

une skin qui ne contient

...

les skins qui précèdent

...

dans la skin,

...

une nouvelle skin,

....

On a une skin

...

une autre skin

...

dans la skin

....

une skin alternative

...

une nouvelle skin, donc

....

sélection de skin

....

- la skin principale

...

skins supplementaires

...

- la skin par defaut

..

la skin principale

....

choisira sa skin

Il me semblait qu'on avait dit qu'on n'utiliserait plus ce mot, afin que SPIP retrouve son unité linguistique...

             Emmanuel

Il me semblait qu'on avait dit qu'on n'utiliserait plus ce mot, afin que
SPIP retrouve son unité linguistique...

le mot lèse-skin ?

-- Fil

Un des objectifs du remaniement du bandeau était d'évacuer le problème des pages d'admin accessibles par le clic sur les grosses icônes et que les utilisateurs ne trouvent pas, de manière récurrente.

Si l'on remet des pages sur ces icônes, on perd tout cela. C'est donc volontaire et non transitoire, que toutes les pages de navigations sont vides et ne donnent aucune info en plus. Ces pages sont redondante avec la navigation déroulante, qui peut ne pas marcher dans certains contextes.

Non, c'est pas une bonne solution. Arriver sur une page qui reprend exactement le menu que je viens voir, c'est pas possible. Certes il faut aider les débutants, mais ça n'est pas une raison pour donner aux utilisateurs confirmés l'impression qu'on les prend pour des billes.

D'abord, ce que je propose pour les pages «navigation» n'est pas qu'elles soient ultra-spécifiques, mais qu'elles soient des «tableaux de bord», c'est à dire un résumé des différentes informations qu'on trouvera, développées, dans les différentes pages du sous-menu. Si on ne voit pas le «tableau de bord», ça n'est pas un drame.

Par ailleurs, il suffit de mettre en début de chaque sous-menu une première entrée qui double le bouton principal. Du genre «Tableau de bord Publication», «Tableau de bord Édition». De cette façon, même les ceusses qui ne pensent pas à essayer de cliquer sur le gros bouton verront tout de même la première entrée du sous-menu, qui a le même effet que le gros bouton.

Je viens de commiter ça, histoire de montrer ce que ça donne: la redondance est très visible, l'intitulé «Tableau de bord» permet d'être très explicite (y compris pour les développeurs de plugins) sur ce qu'on va trouver sur cette page (c'est un tableau de bord...), ça permet aux débutants de ne pas avoir à comprendre qu'on «doit» cliquer sur le gros bouton, et ça nous permet de créer des pages réellement utiles aux utilisateurs.

J'insiste: la page d'accueil est déjà un «tableau de bord»: il récapitule de manière condensée un ensemble d'informations que l'on développe sur d'autres pages. On a tout intérêt à profiter de l'évolution pour généraliser ce principe. Cette logique est répandue dans la plupart des autres logiciels (généralement, c'est en plus paramétrable par l'usager, mais ça me semble moins pertinent) et offre un véritable bénéfice à l'usager: une vue d'ensemble, une introduction aux différentes fonctionnalités/possibilités, un contrôle rapide, et un accès plus évident à des fonctions (le sous-menu présuppose largement que je sais ce que je vais trouver derrière l'intitulé; dans un tableau de bord, une présentation condensée de l'information, accompagnée d'un lien vers la page exhaustive, me permet de comprendre illico ce qu'est cette information/fonctionnalité).

Au même titre, mettre un menu déroulant sur le bouton accueil, qui est le seul à ne pas se dérouler, affaiblit beaucoup la compréhension que l'on peut avoir de ce bouton et réintroduit l'ambiguïté.
C'est une mauvaise idée

Le fait d'avoir pour première entrée «Tableau de bord “Accueil”» résoud le problème du rôle du gros bouton.

En revanche, on a un _gros_ besoin de pouvoir proposer un sous-menu qui accueil «Mes trucs»: mes contacts, mes tickets, mes rendez-vous, mes messages dans les forums, mes abonnements à des mailing-lists, etc. Or, présenter des infos qui concernent directement l'utilisateur, c'est exactement le rôle de «Accueil». Même si ça va dérouter au début, je trouve la distinction «Édition», «Suivi», «Admin», «Config» très pertinente et très équilibrée. C'est la discussion que j'ai vue, et je trouve le résultat très convaincant.

Du coup, le seul manque dans cette division, c'est la possibilité d'insérer des pages personnelles de l'utilisateur. L'utilisateur est systématiquement au cœur de l'interface; sauf que quand on fait un plugin pour gérer de nouveaux objets, on peut très facilement s'insérer dans l'édition, dans la configuration, etc., mais pas insérer de manière logique un accès «moi j'ai fait ça et j'ai ça à faire». Si je prends le plugin «tickets», j'ai très facilement pu insérer une page «tickets en général» dans un sous-menu; mais, pour mettre en valeur «mes tickets», je suis obligé d'utiliser la même page (ou de créer un sous-menu au mauvais endroit) et de surcharger encore la page d'accueil (qui n'en demande pas tant).

Où est-ce que je peux mettre un sous-menu «Gérer mes abonnements aux listes», «Afficher mes tickets»? Logiquement: dans le menu «Accueil», qui correspond à l'activité propre à l'usager. (Sinon on va encore pourrir les autres menus avec des trucs pas très cohérents, comme l'entrée «Mes articles» dans «Édition», ou se casser les pieds à ajouter des onglets à «infos personnelles» après avoir cliqué sur son propre nom (là, certain que personne ne trouvera).

Je ne suis pas fan de l'effet redondance des tableaux de bord XXXX partout en sous menu, surtout en première place.

En première place j'aime bien des choses qui servent souvent, typiquement, modérer les forums, il faut voir comment je te clic ca en 2x2 avec un iphone depuis la salle des fêtes, pendant un mariage.

Si il était admis précédemment de mettre une page de répétition stricte du menu derrière le gros clic, je crois que ce n'est pas pire de mettre une page tableau de bord, qui est en fait la même chose en plus détaillée.

Mais alors on se passera bien je crois du lien redondant dans le sous menu car :

soit on ne pense pas à cliquer le gros bouton et on va directement dans le sous-menu sans rien perdre au passage.

Soit on y pense et on voit ledit tableau de bord, qui nous esbaudit, certes, mais n'est pas vital si on le loupe.

BoOz

Martin Arnaud a écrit :

Un des objectifs du remaniement du bandeau était d'évacuer le problème des pages d'admin accessibles par le clic sur les grosses icônes et que les utilisateurs ne trouvent pas, de manière récurrente.

Si l'on remet des pages sur ces icônes, on perd tout cela. C'est donc volontaire et non transitoire, que toutes les pages de navigations sont vides et ne donnent aucune info en plus. Ces pages sont redondante avec la navigation déroulante, qui peut ne pas marcher dans certains contextes.

Non, c'est pas une bonne solution. Arriver sur une page qui reprend exactement le menu que je viens voir, c'est pas possible. Certes il faut aider les débutants, mais ça n'est pas une raison pour donner aux utilisateurs confirmés l'impression qu'on les prend pour des billes.
D'abord, ce que je propose pour les pages «navigation» n'est pas qu'elles soient ultra-spécifiques, mais qu'elles soient des «tableaux de bord», c'est à dire un résumé des différentes informations qu'on trouvera, développées, dans les différentes pages du sous-menu. Si on ne voit pas le «tableau de bord», ça n'est pas un drame.

J'approuve, ce serait top d'avoir des tableaux de bord un peu plus détaillés que la page d'accueil dans chaque grande section.

Par ailleurs, il suffit de mettre en début de chaque sous-menu une première entrée qui double le bouton principal. Du genre «Tableau de bord Publication», «Tableau de bord Édition». De cette façon, même les ceusses qui ne pensent pas à essayer de cliquer sur le gros bouton verront tout de même la première entrée du sous-menu, qui a le même effet que le gros bouton.

Là par contre, c'est trop à mon avis, ça surcharge.

-Nicolas

Je rajouterais que “skins” est non seulement utilisé sur les commentaires des commits, mais aussi sur les noms de fichiers :
spip/prive/skins/spip/style_prive_skin.html
(pour spip-contrib aussi, me semble-t-il)

On avait opté pour “thème” : pourquoi être resté sur ce terme ?
Si ça continue il va devenir incontournable…

Je propose qu’on renomme déjà les fichiers, afin de partir sur une base plus seine.

.Gilles

+1

Pour cela, il faut renommer les fichiers de l’API utilisée, introduite à
http://trac.rezo.net/trac/spip-zone/changeset/29069
disponible sur la zone :
http://trac.rezo.net/trac/spip-zone/browser/core/plugins/skins

Les thèmes concernés actuellement sont celui de spip-contrib et ooCSS
http://trac.rezo.net/trac/spip-zone/browser/themes/ooCSS/css/skin
http://trac.rezo.net/trac/spip-zone/browser/galaxie/www.spip-contrib.net/themes/2009/css/skin

ainsi que le bandeau développé sur spip
http://trac.rezo.net/trac/spip/changeset/14240
http://trac.rezo.net/trac/spip/changeset/14221
qui se base sur l’API ‘skins’

Donc a priori, depuis la zone, on peut expérimenter le changement de dénomination.
Je me trompe ?

.Gilles

Heu ça vous embête pas qu’on fasse à notre rythme ?
Comme tout le monde j’ai plein de chantiers en cours, j’ai bien noté qu’on avait retenu themes/ plutot que skins/ (même si je reste persuadé que cela va entraîner des confusions dans les discussions)

Maintenant, je prends le temps de reflechir et de faire ça propre pour que ça se mélange le moins possible avec les themes/ du public dans les fonctions (genre qu’un find_in_path aille pas chercher des images du privé pour le theme public et reciproquement).

Il y a encore beaucoup de travail sur les themes/skins de l’espace privé avant que ce soit réellement exploitable.

Arno a joué un peu avec, et du coup à fait des découpages dans la css dont je ne sais pas si ils seront les plus adaptés à la fin.
Et forcèment, on a utilisé le terme actuel dans la discute.

Pour cela, il faut renommer les fichiers de l’API utilisée, introduite à
http://trac.rezo.net/trac/spip-zone/changeset/29069
disponible sur la zone :
http://trac.rezo.net/trac/spip-zone/browser/core/plugins/skins

Les thèmes concernés actuellement sont celui de spip-contrib et ooCSS
http://trac.rezo.net/trac/spip-zone/browser/themes/ooCSS/css/skin
http://trac.rezo.net/trac/spip-zone/browser/galaxie/www.spip-contrib.net/themes/2009/css/skin

rien à voir, tu mélanges tout là.

ainsi que le bandeau développé sur spip
http://trac.rezo.net/trac/spip/changeset/14240
http://trac.rezo.net/trac/spip/changeset/14221
qui se base sur l’API ‹ skins ›

Donc a priori, depuis la zone, on peut expérimenter le changement de dénomination.
Je me trompe ?

Je sais plus, y a aussi des morceaux dans le core.
Mais pas de panique, donc, et merci de pas tout casser plus que ça ne l’est déjà.

Cédric

Bon, c'était pas vraiment clair que tu étais d'accord, et d'ailleurs le bémol que tu mets montre que si finalement on revenait là-dessus ça te chagrinerait pas.
Je comprends tout à fait cette histoire de rythme en ce qui concerne les sources, mais au moins dans les discussions et les logs il faudrait que "theme" apparaisse: quand on voudra retrouver les discussions et envois à ce sujet, quand "skin" aura été oublié, si ça n'est pas le cas on va passer à côté.

Committo,Ergo:Sum

+1

Maintenant, je prends le temps de reflechir et de faire ça propre pour que ça se mélange le moins possible avec les themes/ du public dans les fonctions (genre qu’un find_in_path aille pas chercher des images du privé pour le theme public et reciproquement).

+1
Je pense que ça va pas aller dans le sens de la clarté d’utiliser le même terme pour le public et le privé. La notion de thème reflète d’abord le public dans l’insconscient collectif…

Je ne comprends pas que cet argument puisse avoir encore cours. La différence entre ces deux espaces est précisément l'un des points sur lesquels SPIP accuse le plus son age et qui doit à terme être dépassé. Les crayons et gribouille sont déjà des pas dans cette direction. L'interface "autoriser" aussi. La mise en squelette des formulaires utilisés dans ce qui s'appelle l'espace privé aujourd'hui, idem. Toute décision prise en fonction de cet existant provisoire, amènera du boulot supplémentaire pour la suite.

Committo,Ergo:Sum

Normalement j'ai procédé ainsi:
- dans spip/skin, les éléments d'interface correspondant à, disons, «mes goûts»;
- dans spip_prive et spip_prive_formulaires, l'interface «basique»: je n'ai pas sorti les styles nécessaires au bon fonctionnement de SPIP de ces squelettes, j'ai juste commencé à virer les éléments graphiques qui relèvent typiquement de l'accessoire. Les styles eux-mêmes sont donc présents et «complets», ils sont juste redéfinis de manière plus rigolote dans le fichier dans /skin/spip.

Évidemment, on peut certainement aller plus loin dans la simplification des squelettes basiques, mais c'est un travail en cours, qui pourra/devra être poursuivi et, pourquoi pas, rendu plus radicale. M'enfin actuellement, si on désactive le skin, on obtient une interface sans éléments graphiques, pas moche et parfaitement fonctionnelle.

De cette façon, quand ce sera plus avancé du côté de la gestion des thèmes/skins, ça prendra deux minutes de déplacer/renommer les fichiers pour que mes actuels développements «accessoires» deviennent bien un thème optionnel comme c'est prévu.

Pour répondre à ton commentaire: je n'ai pas fait de nouveaux découpages. Les éléments qui se trouvaient dans spip_prive et spip_prive_formulaires sont toujours là, sauf que graphiquement ils sont débarassés des effets graphiques spécifiques. Le seul élément structurel, ça a été de déplacer l'appel du CSS de «skin» à la fin du fichier (mais avant l'appel des plugins), parce que sinon on ne pouvait pas skiner les formulaires.

  C'est l'optique de mes interventions de ce côté:
- virer ce qui relève de l'accessoire et du discutable dans un fichier séparé, de façon à pouvoir mettre en place les différentes skins optionnelles quand le système pourra le gérer (perso, rien ne presse),
- essayer de rendre les CSS basiques aussi basiques (mais tout de même fonctionnels) que possible, de façon à pouvoir venir se greffer dessus sans trop de difficulté. J'ai fait un premier essai avec ceux de SPIP-Bonux, ça a donné du premier coup des résultats presque satisfaisants (c'est pas le rendu voulu au poil près, mais visiblement il ne faudra pas tellement de temps pour y parvenir).

ARNO*