#DATE dans boucle RUBRIQUES calculer_rubriques_publiees
#2570
Closed
opened 11 years ago by JLuc
·
7 comments
No Branch/Tag Specified
1.8
1.9.1
1.9.2
2.0
2.1
3.0
3.1
3.2
4.0
4.1
4.2
boutons-danger
coquille_doc
debug_ecrire_fichier
dev-sortable
dev/autoloader
dev/hasard_fixe
dev/instituer_ergo
dev/issue_4626_menu_squelettes
dev/issue_5447_exporter_csv
dev_infos_image
fix/valider_url_distante
fix_issue_5454
fix_modifier_login
issue_4101
issue_4678
issue_4705
issue_4717
issue_4836
issue_4946
issue_5258
issue_5344
issue_5427_bis
issue_5483_find_script_jquery
issue_5487_info_maj
master
v1.8.3+b
v1.9.1+i
v1.9.2+f
v1.9.2+g
v1.9.2+h
v1.9.2+i
v1.9.2+j
v1.9.2+k
v1.9.2+m
v1.9.2+n
v1.9.2+o
v1.9.2+p
v2.0.0
v2.0.1
v2.0.10
v2.0.11
v2.0.12
v2.0.13
v2.0.14
v2.0.15
v2.0.16
v2.0.17
v2.0.18
v2.0.19
v2.0.2
v2.0.20
v2.0.21
v2.0.22
v2.0.23
v2.0.24
v2.0.25
v2.0.26
v2.0.3
v2.0.5
v2.0.6
v2.0.7
v2.0.8
v2.0.9
v2.1.0
v2.1.1
v2.1.10
v2.1.11
v2.1.12
v2.1.13
v2.1.14
v2.1.15
v2.1.16
v2.1.17
v2.1.18
v2.1.19
v2.1.2
v2.1.20
v2.1.21
v2.1.22
v2.1.23
v2.1.24
v2.1.25
v2.1.26
v2.1.27
v2.1.28
v2.1.29
v2.1.3
v2.1.30
v2.1.4
v2.1.5
v2.1.6
v2.1.7
v2.1.8
v2.1.9
v3.0.0
v3.0.0-alpha.1
v3.0.0-beta
v3.0.0-beta.2
v3.0.0-rc
v3.0.1
v3.0.10
v3.0.11
v3.0.12
v3.0.13
v3.0.14
v3.0.15
v3.0.16
v3.0.17
v3.0.18
v3.0.19
v3.0.2
v3.0.20
v3.0.21
v3.0.22
v3.0.23
v3.0.24
v3.0.25
v3.0.26
v3.0.27
v3.0.28
v3.0.3
v3.0.4
v3.0.5
v3.0.6
v3.0.7
v3.0.8
v3.0.9
v3.1.0
v3.1.0-alpha
v3.1.0-beta
v3.1.0-rc
v3.1.0-rc.2
v3.1.0-rc.3
v3.1.1
v3.1.10
v3.1.11
v3.1.12
v3.1.13
v3.1.14
v3.1.15
v3.1.2
v3.1.3
v3.1.4
v3.1.5
v3.1.6
v3.1.7
v3.1.8
v3.1.9
v3.2-alpha.1
v3.2.0
v3.2.0-alpha.1
v3.2.0-beta
v3.2.0-beta.2
v3.2.0-beta.3
v3.2.1
v3.2.10
v3.2.11
v3.2.12
v3.2.13
v3.2.14
v3.2.15
v3.2.16
v3.2.17
v3.2.2
v3.2.3
v3.2.4
v3.2.5
v3.2.6
v3.2.7
v3.2.8
v3.2.9
v4.0.0
v4.0.0-alpha
v4.0.0-beta
v4.0.1
v4.0.2
v4.0.3
v4.0.4
v4.0.5
v4.0.6
v4.0.7
v4.0.8
v4.0.9
v4.1.0
v4.1.0-alpha
v4.1.0-beta
v4.1.0-rc
v4.1.1
v4.1.2
v4.1.3
v4.1.4
v4.1.5
v4.1.6
v4.1.7
v4.2.0-alpha
v4.2.0-alpha2
Labels
Amélioration, nouvelle fonctionnalité APIs authentification base de données bug
Ca ne fonctionne pas code généré compilo css divers documentation doublon
Ce ticket est un doublon ergonomie espace privé filtres et balises formulaires Inscription installation invalide
Ticket invalide javascript langues LDAP plugin PostgreSQL refusé
Ignoré, c'est comme Ca... sécurité traduction
Apply labels
Clear labels
accessibilité
amélioration
Amélioration, nouvelle fonctionnalité APIs authentification base de données bug
Ca ne fonctionne pas code généré compilo css divers documentation doublon
Ce ticket est un doublon ergonomie espace privé filtres et balises formulaires Inscription installation invalide
Ticket invalide javascript langues LDAP plugin PostgreSQL refusé
Ignoré, c'est comme Ca... sécurité traduction
No Label
accessibilité
amélioration
APIs
authentification
base de données
bug
code généré
compilo
css
divers
documentation
doublon
ergonomie
espace privé
filtres et balises
formulaires
Inscription
installation
invalide
javascript
langues
LDAP
plugin
PostgreSQL
refusé
sécurité
traduction
Milestone
Set milestone
Clear milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
Assign users
Clear assignees
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.
No due date set.
Dependencies
This issue currently doesn't have any dependencies.
Reference in new issue
There is no content yet.
Delete Branch '%!s(MISSING)'
Deleting a branch is permanent. It CANNOT be undone. Continue?
No
Yes
calculer_rubriques_publiees ne fait pas bien son travail.
calculer_rubriques_publiees a une action erronée car les rubriques sont modifiées successivement si elles sont un article publié, une brève publiée, un site publié, un document publié, ou une rubrique fille publiée. C'est fait dans l'ordre, et une rubrique peut donc être publiée plusieurs fois de suite, c'est le dernier objet dans cette liste qui "publie" la rubrique et lui impose sa date de publication, même si la date de publication déjà enregistrée est plus récente. La date de publication d'une rubrique est donc totalement erronée.
calculer_rubriques_publiees n'est pas efficace puisque toutes les rubriques sont testées pour tous ces objets (articles, breves, sites, ...) même si la rubrique a déjà été trouvée comme publiée. Il y a plein de boulot fait pour rien.
Il faudrait si possible affiner les requêtes pour qu'elles ne concernent :
de manière à ce que
Dans SPIP2 c'est tout à la suite dans la fonction calculer_rubriques dans inc/rubriques.php
Dans SPIP3 c'est toujours appelé dasn inc/rubriques.php et les valeurs de statut_tmp sont successivement écrasées par les fontions prefixe_calculer_rubriques de chacune des extensions déclarant un objet, via le pipeline calculer_rubriques.
Version cible mise à 3.1
A priori la date de publication d'une rubrique est la plus ancienne date de publication d'un des objets contenus.
D'après http://www.spip.net/fr_article904.html#BOUCLE-RUBRIQUES-:
Donc ton commentaire http://core.spip.org/issues/2570#note-2 est en contradiction avec la doc.
Par ailleurs je constate ce jour que le comportement en SPIP 3 est aussi en contradiction: la date se met à jour lors de la publication d'un article, elle inscrite en base dans spip_rubriques mais elle n'est pas recalculée si on dépublie, déplace, etc.
On en a causé sur irc mais j'ai pas ctrl-c les arguments.
En résumé, soit:
Quoiqu'il en soit, en SPIP 307 le champs date de SPIP_RUBRIQUES est màj en cas de publication mais pas sur les modifs du type dépublication-déplacement-... d'objet.
Assigné à cedric
Le contenu descriptif de ce ticket qui accuse la fonction
calculer_rubriques_publiees
est pure calomnie :la fonction fait parfaitement son travail, que ce soit dans le core, ou dans les appels par pipeline.
Notamment, on balaye en effet un par un les objets editoriaux en cherchant ceux publies dont la date est plus recente que celle de la rubrique, pour mettre à jour cette date de rubrique conformément à la doc, soit la date du dernier objet publié dans la rubrique.
Puis la fonction boucle sur la table des rubriques pour faire remonter la date de publication plus récente d'une sous-rubrique vers ses rubrique mère.
Cf r21719
http://zone.spip.org/trac/spip-zone/changeset/85637
http://zone.spip.org/trac/spip-zone/changeset/85636
Donc maintenant la question qui est posée : le ticket vient-il d'une analyse erronée de la fonction auquel cas il est invalide, ou vient-il d'un dysfonctionnement constaté, auquel cas il reste valide et c'est l'analyse qu'il faut revoir. Mais en tout état de cause, dans ce cas, il serait bien de commencer par dire "1/ je constate tel bug 2/ j'ai enquêté, il me semble que cela vient de là". Là on ne sait pas à quoi s'en tenir.
Par ailleurs la doc http://www.spip.net/fr_article904.html#BOUCLE-RUBRIQUES est explicite:
Ce qui signifie bien la date de la dernière publication qui a eu lieu, ce qui ne veut pas dire qu'on revient en arrière en cas de dépublication (auquel cas on dirait "la date du plus récent objet publié dans la rubrique") C'est subtil mais correspond à une certaine logique.
Pour finir sur le sujet, la fonction "calculer_rubriques_publiees" n'est appelée que dans 2 scenari : après une restauration de base, ou lors de la réparation de la base, pour tout remettre d'equerre.
Statut changé à Fermé