En ajoutant des auteurs dans une zone d’accès restreint, j’ai constaté un bug que je croyais d’abord lié à ce plugin. L’ayant ensuite retrouvé dans une page «article», je pense qu’il est plutôt lié à la pagination.
Voilà de quoi il s’agit:
je veux ajouter un auteur à un article. Sur la page ad-hoc, je clique sur «Ajouter un auteur». Un cadre s’ouvre avec la liste (paginée) des auteurs;
si j’ajoute un auteur de la première page, tout se passe bien. L’auteur est ajouté et la (1re) page se rafraîchit.
idem si j’ouvre la liste complète et que je choisis un auteur, n’importe lequel. Sauf que la liste d’auteurs n’affiche plus que sa 1re page, tout en continuant à pointer le bouton «infini»…
si maintenant j’affiche une autre page que la première, lorsque je choisis un auteur, la liste disparaît. Rafraîchir la page ne suffit pas pour la retrouver, il faut quitter la page et la rappeler.
Ça tombe bien, je viens justement de mettre au propre ma proposition de refonte de ces paginations, et j’en ai fait une PR :
Pour l’instant c’est sur SPIP 5 et ça ne porte que sur les auteurs, pour que l’équipe teste et valide, et si c’est bon (pour moi ça l’est), on peut l’appliquer partout et reporter sur SPIP 4.
Tu peux tester le fix (sur auteurs et mots) en installant la version de dev.
_nicod planche sur une amélioration (cf branche issue_83 ) pour rendre cela plus générique : un fichier que l’on pourrait copier/coller aisément pour tout nouvel objet.
Pour installer SPIP 5 en mode dev (avec les sources en git) :
git clone https://git.spip.net/spip/spip.git
cd spip
composer install
composer run post-create-project-cmd
# basculer sur les sources git
composer local config "preferred-install.spip/*" source
composer local config "preferred-install.spip-league/*" source
# installer les nouvelles sources depuis les repos git
rm -rf plugins-dist prive squelettes-dist ecrire vendor/spip/security
composer local install
# passer les repos git de https à ssh
composer local mode-dev
Par contre attention, les dépôts sont clonés sur un tag, et pas sur une branche, donc chacun est dans un état « detached » :
git status
HEAD detached at 70e8109a8
Il faut revenir sur la branche principale, par exemple dans /ecrire : git checkout 5.x
Je ne sais pas s’il y a moyen de checkout sur les branches plutôt que sur les tags, je ne crois pas que composer le permette. @marcimat peut être ?
Et pour la mise à jour de cette installation de SPIP 5 :
git pull
rm composer.local.*
composer --no-interaction local mode-dev
composer local install
En même temps, ce que je comprends pas dans ce composer.json c’est pourquoi "spip/sites": "^5.0@dev" alors qu’il n’y a pas de branche ni de tag 5.0 dans ce plugin…
Pourquoi "spip/dump": "^2.3" aboutit à ce qu’on ait un checkout sur master, et pas sur le tag 2.3.0 (il n’y a pas de branche 2.3.0) ?
Pourquoi "spip/mediabox": "^4.0@dev" par exemple, alors qu’il n’y a pas de branche ni de tag 4.0 ?
Idem pour "spip/sites": "^5.0@dev"
Et pourquoi "spip/ecrire": "^5.0@dev" et "spip/prive": "^2.0@dev" font qu’on a ces répos en detached head : si je comprends bien, c’est parce qu’on checkout un tag et pas la branche 5.x ou 2.x ?
Et de façon plus générale, est ce que la méthode que j’ai collée plus haut pour installer SPIP 5 en mode dev/git est bien la bonne ?
Ou bien il y a mieux ?
Je réponds au moins sur les « alors qu’il n’y a ni branche » : lorsqu’une branche est en dev (main, master), tu peux dire à composer que cette branche est comme une branche avec un numéro de version dans le nom (2.x, 2.3), et tu fais ça avec branch-alias, comme dans le composer.json de spip/sites :
ça évite de faire des require sur main ou master directement, qui pourraient casser sur un upgrade, en restreignant comme habituellement à une version : si l’alias change dans le dépot pour 6.0.x-dev alors que tu as require 5.0 dans ton projet, composer ne mettra pas à jour, et tu sauras que tu dois vérifier ou adapter quelque chose dans ton code