Discussion modèle:Indexation/Bug MW 1.13

De Oniropædia
Aller à la navigationAller à la recherche

Bonjour les copains,

Vous n'avez peut-être pas remarqué, mais j'ai mis à jour MediaWiki vers la dernière version, la 1.13.2, et je me rends compte d'un bogue qui est peut-être lié : lorsqu'une page est nouvellement indexée, elle prend l'index {, même si on spécifie le paramètre index=. Voir pour exemple l'indexation de Oniropædia:Bac à sable dans la catégorie Catégorie:Oniropædia.

Est-ce que l'un des créateurs de ce modèle pourrait jeter un œil au code pour voir d'où ça pourrait venir ? Sinon je le ferai, mais j'ai peur de perdre pas mal de temps à essayer de comprendre le modèle avant de pouvoir agir pour corriger le problème.

Merci d'avance.

--Xiloynaha 2 novembre 2008 à 22:37 (UTC)


en transformant le code d'indexation comme suis :

{{indexation|

index=a|

{{SITENAME}}

}}

au lieu de {{indexation|index=a|{{SITENAME}}}}

j'obtient ceci :

[[Catégorie: Oniropædia

|

{{Expansion depth limit exceeded}}

]]

--Narcian le Grand Rêvant 3 novembre 2008 à 10:53 (UTC)


Schématiquement l'appel au modèle {{indexation}} consomme 1 niveau d'expansion.

le modèle {{indexation}} peut se résumer comme étant l'appel imbriqué de :

  1. la fonction #ifeq
  2. la fonction #if
  3. le modèle {{Désaccentuation}}
  4. le modèle {{Catégorisation/Catégorisation/Module de base/Indexation dans catégorie/Configuration}}

ce qui consomme 4 niveaux d'expension.

le modèle {{Désaccentuation}} contient 37 appels à la fonction #replace, puis 1 appel à la fonction lc ce qui consomme 38 niveaux d'expension.

le modèle {{Catégorisation/Catégorisation/Module de base/Indexation dans catégorie/Configuration}} peut se résumer comme étant l'appel imbriqué de :

  1. la fonction #ifeq
  2. la fonction #switch
  3. une des fonctions PAGENAME/SUBPAGENAME/SITENAME/FULLPAGENAME

ce qui consomme 3 niveaux d'expension.

De manière très simpliste, et très minimaliste, j'abouti à un total de 46 niveaux d'expension.

Question : combien de niveaux d'expensions sont autorisés par la version "1.13.2" ?

--Narcian le Grand Rêvant 3 novembre 2008 à 11:22 (UTC)


Bien vu Narcian !

Un nouveau paramètre dans la config limite le nombre d'appels à 40. Je l'ai passé à 49, et ça semble marcher, sauf pour l'utilisation du paramètre index= (cf. toujours le même exemple, j'ai essayé d'indexer le bac à sable sous "sable", il reste à la place qu'il occupait avant, à savoir "bac à sable").

En faisant le même test que toi, j'obtiens ça (quel que soit le mot après index=) :

[[Catégorie: Oniropædia

|bac a sable]]

C'est-à-dire le code d'indexation « normal » si on omet l'index… Vois-tu d'où ça peut venir ?

Question subsidiaire : la complexité de ce modèle est vraiment énorme ; n'y a-t-il pas moyen de la réduire ?

--Xiloynaha 3 novembre 2008 à 13:31 (UTC)


Ho que oui; puisque c'est la règle pour les pages méta voir Discussion Modèle:Catégorisation/Catégorisation/Module de base/Indexation dans catégorie/Configuration #Règles d'indexation des catégories.

Quand à la complexité du modèle, il est du au fait il implémente de façon automatique plusieurs règles différentes.

On peut simplifier le modèle, mais alors le travail de maintenance peut devenir monstrueux s'il faut repasser sur l'indexation de chaque page. --Narcian le Grand Rêvant 3 novembre 2008 à 15:06 (UTC)