[SPIP Zone] [Spip-zone-commit] r107572 - _plugins_/polyhierarchie/branches/v2.0

Salut,

Le 24/03/2018 à 00:34, RastaPopoulos a écrit :

Le 22/03/2018 à 04:47, David Prévot a écrit :

Le 15/11/2017 à 05:18, RastaPopoulos a écrit :

Connexion · GitLab
Connexion · GitLab

On me signale seulement maintenant que cette modification a cassé le
multirubrique pour les sites utilisant le squelette Sarka-SPIP
3.2.36.

Est-ce que tu peux détailler ? Parce que ce commit fait un OR donc
teste les deux, donc aucune suppression de fonctionnalité.

Sur un site SPIP 3.0, utilisant le squelette Sarka-SPIP 3.2.36
(_squelettes_/sarkaspip/branches/v_32 en dernière révision), un article
appartenant à deux rubriques apparaît correctement dans la première
rubrique de l’espace public. Avec le plugin polyhierarchie
(_plugins_/polyhierarchie/branches/v2.0), jusqu’à la révision 107574 (y
compris avant et après le commit 107572), l’article apparaît aussi dans
la seconde rubrique de l’espace public. En revanche, après le commit
107574 (c’est-à-dire à partir de la révision 107575 : svn up -r107575 et
au-delà), il n’apparaît plus côté public sur la page de la seconde rubrique.

Est-ce que je pourrais donner des informations de debug (lesquelles)
pour aider à comprendre ce qui se passe ?

Amicalement

David

Le 24/03/2018 à 16:34, David Prévot a écrit :

Sur un site SPIP 3.0, utilisant le squelette Sarka-SPIP 3.2.36
(_squelettes_/sarkaspip/branches/v_32 en dernière révision), un article
appartenant à deux rubriques apparaît correctement dans la première
rubrique de l’espace public. Avec le plugin polyhierarchie
(_plugins_/polyhierarchie/branches/v2.0), jusqu’à la révision 107574 (y
compris avant et après le commit 107572), l’article apparaît aussi dans
la seconde rubrique de l’espace public. En revanche, après le commit
107574 (c’est-à-dire à partir de la révision 107575 : svn up -r107575 et
au-delà), il n’apparaît plus côté public sur la page de la seconde rubrique.

Est-ce que je pourrais donner des informations de debug (lesquelles)
pour aider à comprendre ce qui se passe ?

Le code de la boucle dont le résultat a changé ?
Un lien vers le source en ligne par exemple,
peut être qqpart dans ce dossier :

mais je ne sais pas si c'est la bonne version.

JL

Salut,

Le 24/03/2018 à 06:25, JLuc a écrit :

Le 24/03/2018 à 16:34, David Prévot a écrit :

Sur un site SPIP 3.0, utilisant le squelette Sarka-SPIP 3.2.36
(_squelettes_/sarkaspip/branches/v_32 en dernière révision), un article
appartenant à deux rubriques apparaît correctement dans la première
rubrique de l’espace public. Avec le plugin polyhierarchie
(_plugins_/polyhierarchie/branches/v2.0), jusqu’à la révision 107574 (y
compris avant et après le commit 107572), l’article apparaît aussi dans
la seconde rubrique de l’espace public. En revanche, après le commit
107574 (c’est-à-dire à partir de la révision 107575 : svn up -r107575 et
au-delà), il n’apparaît plus côté public sur la page de la seconde
rubrique.

Est-ce que je pourrais donner des informations de debug (lesquelles)
pour aider à comprendre ce qui se passe ?

Le code de la boucle dont le résultat a changé ?
Un lien vers le source en ligne par exemple,

Merci pour les conseils.

C’est la boucle _article_dates(ARTICLES)

{branche_complete #ID_RUBRIQUE}{par date}{inverse}{pagination
#CONFIG{sarkaspip_rubrique/pas_pagination,5}}

Le code généré depuis la révision 107575 (la version cassée, qui renvoie
38 résultats) :

SELECT articles.date, articles.id_article, articles.id_rubrique,
articles.id_article, articles.lang, articles.titre
FROM spip_articles AS `articles`
WHERE (articles.statut = 'publie')
  AND (((articles.id_rubrique IN (157))) OR (articles.id_article IN
(SELECT * FROM(
SELECT rl.id_objet
FROM spip_rubriques_liens as rl
WHERE 0=1 AND rl.objet='article') AS subquery)))
ORDER BY articles.date DESC

Le code généré avant la révision 107575 (la version foncitonnelle, qui
renvoyait 51 résultats) :

SELECT articles.date, articles.id_article, articles.id_rubrique,
articles.id_article, articles.lang, articles.titre
FROM spip_articles AS `articles`
WHERE (articles.statut = 'publie')
  AND (((articles.id_rubrique IN (157))) OR (articles.id_article IN
(SELECT * FROM(
SELECT rl.id_objet
FROM spip_rubriques_liens as rl
WHERE ((rl.id_parent IN (157))) AND rl.objet='article') AS subquery)))
ORDER BY articles.date DESC

Je vois qu’un « 0=1 » à remplacé « ((rl.id_parent IN (<no_rub>))) »
dans le WHERE, normal que ça donne moins de résultats…

Amicalement

David

Salut,

Je crois avoir enfin mis le doigt sur le problème :
_plugins_/polyhierarchie/branches/trunk utilise \$in_rub alors que
_plugins_/polyhierarchie/branches/v2.0 utilise \$b, ce qui n’a pas été
pris en compte dans [107575] (report de [107574]).

Un simple s/in_ru// dans
_plugins_/polyhierarchie/branches/v2.0/polyhier_fonctions.php résout le
problème.

Merci d’avance si quelqu’un peut intégrer la correction jointe
rapidement. Je vais avoir un peu de mal à retrouver mes identifiant et
mot de passe de connexion pour Subversion…

Amicalement

David

phfix.diff (1.51 KB)

Le 31/03/2018 à 04:41, David Prévot a écrit :

Merci d’avance si quelqu’un peut intégrer la correction jointe
rapidement. Je vais avoir un peu de mal à retrouver mes identifiant et
mot de passe de connexion pour Subversion…

Voilà la correction pour la branche 2

Merci d'avoir repéré la différence !

--
RastaPopoulos