Discussion modèle:Indexation/Bug MW 1.13

De Oniropædia
< Discussion modèle:Indexation
Révision datée du 3 novembre 2008 à 17:23 par Narcian le Grand Rêvant (discussion | contributions) (De la problématique des règles automatiques)

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)


Le problème, c'est que le comportement est le même pour une page de l'espace (Main) indexée dans une catégorie quelconque. Regarde la page Test et la Catégorie:Test (je ne fais pas de liens ici pour éviter de polluer la page des pages les plus demandées avec des pages inexistantes).

Au sujet de la complexité du modèle, je sais bien qu'il fait beaucoup de choses, j'entendais par là : n'est-il pas possible de réduire la complexité du modèle en gardant ses fonctionnalités ? Je suppose que non…

--Xiloynaha 3 novembre 2008 à 15:52 (UTC)


La règle est que l'indexation est automatiquement forcée par le modèle sauf dans les deux cas suivants :

  1. indexation dans une catégorie de scénario où il y a obligation de renseigner le paramètre index sinon pas d'indexation
  2. indexation d'une page d'aide, où l'on prend en compte le paramètre index s'il est renseigné, et où l'on applique une indexation forcée si le paramètre index n'est pas renseigné.

Les règles d'indexations n'ont pas à proprement parlé étées débattue, je les aie plus où moins déduites de ce qui ce faisait manuellement avant le recours à des modèles d'indexation.

Visiblement cela te pose problème; cela n'est d'ailleurs pas nouveau puisque JaI avait le même genre de problème avec le traitement des catégories de scénarios.

Je ne suis toutefois pas a cheval sur ces règles; ont peut les changer; et si ont trouve le modèle trop complexe pour le faire par soit même, il suffit de le demander sur l'une des pages suivantes :

  1. {{indexation}}
  2. {{Catégorisation/Catégorisation/Module de base/Indexation dans catégorie/Configuration}} (page la plus appropriée)
  3. Oniropædia:Requête aux administrateurs

Comme je consulte régulièrement la liste des dernières pages modifiées, je satisferait moi-même à la demande dès que je la verrai.

Comme tu le suppose bien, on ne peut pas à la fois réduire la complexité et garder ses fonctionnalités. On peut toutefois réduire le nombre de niveau d'expansion (de pas beaucoup toutefois), mais cela alourdira la maintenance du modèle, ainsi que sa complexité. De plus, c'est le modèle {{Désaccentuation}} qui est le plus consommateur, et celui-ci est extremement simple; on peut gagner en niveau d'expansion mais en réduisant le volant de caractères désaccentués; ce volant étant déjà fonctionnellement pas mal réduit. Ce qu'il nous faudrait, c'est une fonction média-wiki qui fasse la même chose; on gagnerait alors 37 niveaux d'expansion.

--Narcian le Grand Rêvant 3 novembre 2008 à 16:23 (UTC)