AnythingSlider pour Aveline - commentaires AnythingSlider pour Aveline 2011-04-14T15:22:42Z https://contrib.spip.net/AnythingSlider-pour-Aveline#comment444328 2011-04-14T15:22:42Z <p>On peut sans problème, après réflexion, déplacer ces noisettes dans Aveline pour éviter ce mini-plugin. Je l'ajoute à ma TO DO liste.</p> <p>Amicalement</p> AnythingSlider pour Aveline 2011-04-14T14:44:51Z https://contrib.spip.net/AnythingSlider-pour-Aveline#comment444326 2011-04-14T14:44:51Z <p>Peut-être que ta dernière proposition est pas mal. Je n'ai pas d'avis tranché pour l'instant.</p> <p>Tout ce que je me suis dit, c'est que si pour chaque noisette possible qui correspond à UNE fonctionnalité, et bien on fait un nouveau sous-plugin <strong>pour chaque</strong> squelette (ici Aveline, mais il pourrait alors y avoir un plugin Slider pour un, deux, trois autres squelettes), et bien ça va vite faire beaucoup, non<small class="fine d-inline"> </small>?</p> <p>Après c'est à chaque mainteneur de squelettes de faire comme il l'entend, bien entendu. Mais peut être qu'on peut trouver une solution pour simplifier un peu et que ce soit ensuite la même manière de faire pour les autres squelettes qui utilisent des noisettes.</p> AnythingSlider pour Aveline 2011-04-11T11:08:07Z https://contrib.spip.net/AnythingSlider-pour-Aveline#comment444106 2011-04-11T11:08:07Z <p>Ton commentaire appelle plusieurs questions pour lesquelles je n'ai pas forcément de réponse.</p> <p>En tout premier lieu, qu'appelles-t-on une <strong>noisette générique</strong><small class="fine d-inline"> </small>? C'est déjà une partie du débat. Si on considère qu'une noisette générique doit fonctionner seulement avec les fonctionnalités du plugin qui l'embarque et natives de SPIP, alors les noisettes d'Aveline ne sont pas génériques.</p> <p>Au tout début, le noiZetier incorporait le mécanisme de gestion des noisettes, un vidage des contenus de Zpip et des noisettes. Au début du projet, y a eu tout un débat sur le fait que le noiZetier ne devait pas forcément vider le contenu de base de Zpip, mais que les noisettes devaient pouvoir venir compléter un contenu de base non débrayable. Cela a entraîné un premier découpage en deux avec le noiZetier d'un côté et Aveline de l'autre qui vidait les contenus de Zpip et fournissait des noisettes.</p> <p>Mais cela entraînait le fait qu'on ne pouvait utiliser les noisettes d'Aveline en complément d'un contenu non débrayable. D'où un nouveau découpage : Zpip-vide d'un côté qui fournit une structure Z vide de contenus et Aveline de l'autre qui est un ensemble de noisettes.</p> <p>Concernant Aveline, certains lui ont reproché de prendre en compte certains plugins comme Notation ou Agenda. C'est vrai, et cela est dû au fait qu'Aveline doit se voir comme une collections de noisettes évoluées à la manière d'un gros squelette généraliste (comme Sarka ou SoyezCréateurs) et non comme une collection de noisettes de base (à la manière d'une dist).</p> <p>Pour pouvoir gérer un certain nombre de mécanismes avancés dans Aveline sans avoir à dupliquer le code dans chaque noisette, Aveline définit ses propres balises et ses propres critères qui ne de sens qu'associés à certaines variables d'environnement. Les YAML de description des noisettes sont eux même découpés en plusieurs inclusions de sous-fichiers en YAML. Ainsi, si je rajoute une option sur les résumés d'articles, je ne modifie qu'un seul fichier YAML et un seul squelette, mais touche ainsi plus d'une douzaine de noisettes. L'ensemble de ces mécanismes font qu'il est difficile de considérer les noisettes d'Aveline comme génériques.</p> <p>Pour AnythingSlider, il était évident qu'il fallait faire un plugin séparé pour fournir la lib, puisqu'elle peut servir dans d'autres contextes. Par contre, il est vrai que je n'ai pas préparé de noisettes directement dans ce plugin. Pourquoi<small class="fine d-inline"> </small>? D'une part par manque de temps, mais surtout parce que les noisettes dont j'avais besoin nécessitait le code commun d'Aveline (pour la sélection des articles par branche, pour les options de paramétrage des résumés d'articles, etc.). Les noisettes du plugin <i>AnythingSlider pour Aveline</i> utilisent beaucoup de code et d'inclusions propres à Aveline. Faire des noisettes génériques directement dans le plugin incorporant la lib aurait voulu dire faire des noisettes ne reposant pas sur ce code commun.</p> <p>C'est toujours possible. Mais c'est quoi une noisette générique de liste d'articles. Elle doit avoir quoi comme option<small class="fine d-inline"> </small>? Elle doit avoir quoi comme fonctionnalités<small class="fine d-inline"> </small>? Personnellement, je n'en sais rien. C'est facile de voir ce qu'est une noisette générique pour un plugin comme Menus ou Formidable. Mais y a pas de réponse évidente pour un slider générique (qui peut théoriquement embarquer n'importe quoi, textes, images, etc.), un plugin comme Sélections d'Articles ou encore un plugin comme Agenda. Et notamment par ce ces noisettes ne reposent pas que sur cette fonctionnalité. AnythingSlider permets de produire un slider sur une liste. Mais ce ne dit rien sur les autres fonctionnalités de la noisettes : quels objets à sélectionner<small class="fine d-inline"> </small>? dans tout le site, une rubrique, une branche<small class="fine d-inline"> </small>? quels critères de tri<small class="fine d-inline"> </small>? quelles options d'affichage et de mise en forme des objets (un résumé, une liste simple, avec ou sans logo, affiche-t-on la date<small class="fine d-inline"> </small>? les auteurs<small class="fine d-inline"> </small>? les mots-clés<small class="fine d-inline"> </small>? etc.)<small class="fine d-inline"> </small>?</p> <p>Reste une autre question : est-ce que les noisettes reposant sur le code d'AnythingSlider et le code d'Aveline devraient être embarqués dans un plugin séparé (comme c'est le cas ici) ou bien directement dans Aveline<small class="fine d-inline"> </small>? Les deux se tiennent. On peut supprimer le présent plugin et déporter dans Aveline. Ce n'est pas vraiment un problème et ça évite un plugin de plus.</p> AnythingSlider pour Aveline 2011-04-11T08:45:34Z https://contrib.spip.net/AnythingSlider-pour-Aveline#comment444082 2011-04-11T08:45:34Z <p>Il y a un truc que je ne comprends vraiment pas et qui donne l'impression que tu multiplies les plugins et sous-plugins comme des petits pains. Tu veux gonfler tes stats, hein, avoues<small class="fine d-inline"> </small>! :)</p> <p>Maintenant que le noisetier existe, les noisettes sont censées être génériques. Le but de ce système c'est bien le partage de composants, non<small class="fine d-inline"> </small>? Donc pourquoi est-ce qu'il y a :</p> <ol class="spip"><li> le noisetier</li><li> puis Aveline</li><li> puis AnythingSlider qui fournit juste la lib</li><li> puis ce plugin qui ajoute uniquement une noisette<small class="fine d-inline"> </small>?</li></ol> <p>Pourquoi est-ce que AnythingSlider ne fournit pas juste une noisette correspondant à sa fonctionnalité<small class="fine d-inline"> </small>? Alors utilisable par tous dans le noisetier, qu'on ait Aveline ou pas, peu importe.</p> <p>D'après moi, chaque plugin ayant une fonctionnalité précise (Formidable, Menus, un slider, une galerie, etc) devrait pouvoir fournir une « noisettes/ » en rapport avec sa fonctionnalité, ainsi qu'une « saisies/ » quand c'est pertinent aussi. Au final, seuls les plugins Noisetier et AnythingSlider devraient être nécessaires.</p>