Hello,
Matthieu Marcillaud a écrit :
C'était justement pour cela que je n'avais pas utilisé "rang" car
j'avais peur d'un effet de bort (j'imaginais que "rang" était plutôt sur
la table de l'objet éditorial, plutôt que sur une table de liens).En regardant le code, je pense que tant qu'un champ "rang" n'est pas
créé sur spip_documents directement, ça marcherait de mettre "rang" sur
la table de liens. Mais est-ce que rang n'est pas fait pour aller
directement un jour sur l'objet éditorial ? (plutôt que de mettre des
numéros devant les titres ?).
en effet il faut faire là attention à ce que le schema qu'on retient soit générique et généralisable.
Pour les documents on peut en effet se dire que le rang n'a pas de sens pour les documents en eux-même mais uniquement par rapport à chacun de leur lien. Et on pourrait être tenté de mette la balise range sur la table de lien.
Mais on va alors se heurter à un problème avec les mots clés par exemple pour lequel le rang est plus généralement utilisé pour classer les mots-clés dans un groupe. Cela veut dire que si on veut utiliser un ordre par lien, on sera obligé de le nommer autrement et ça sera tout incohérent avec les documents.
3 approches possibles donc :
1/ pour chaque type d'objet on implémente rang sur la table (principale ou liens) qui nous parait le plus pertinente et correspondre à l'usage général.
+ On a un truc qui globalement introduira peu de régression à la migration et fonctionnera "comme avant" ou presque pour les squelettes.
- on est coincé sur le nommage de l'autre cas (lien ou principal selon les cas)
- on a un truc bancal
2/ on implémente 'rang' sur la table de l'objet et rang_lien sur la table des liens quand il y en a une.
+ c'est cohérent, généralisable
+ ça va casser les squelettes lors de la migration, typiquement sur les documents
3/ on implémente un autre nom en base : ordre et ordre_lien par exemple, et on modifie le compilateur pour qu'il compile 'rang' selon l'usage généralement admins (donc sur ordre la plupart des cas et sur ordre_lien les cas où il faut)
+ c'est cohérent et généralisable
+ on casse pas (ou quasiment pas) les squelettes existants
- on ajoute une nouvelle terminologie et de la confusion possible entre rang, ordre et ordre_lien
A vous les studios