Discussion Modèle:Lien AdQ

Un article de Wikipédia, l'encyclopédie libre.

Ce modèle sert à mettre une petite etoile à côté d'un interwiki pour mettre en valeur les liens de qualité. (AdQ : Article de Qualité)

Sommaire

[modifier] Usage de ce modèle

Si j'ai bien compris, ce modèle sert à marquer les liens interwikis pointant vers un article de qualité (dans l'autre langue). Remplace-t-il l'interwiki ou doit-on l'ajouter en plus ?

Il s'utilise comme ça : {{lien AdQ|it}} (pour l'italien)

Quand vous faites des nouveaux modèles pensez à les documenter, merci. Fred.th 7 septembre 2005 à 14:05 (CEST)

Ce modèle est en étude, il ne remplace pas l'interwiki, vue que le nom de page n'est pas a fournir. ~ þayo ♪♫ 7 septembre 2005 à 16:01 (CEST)

[modifier] Dans d'autre langue

Serai-il possible d'avoir les correspondances de ce modèle dans les autres Wikipédia ? Il me semble en avoir déjà vue, mais je ne lies retrouve pas. Ce serai bien pratique. merci. ~ þayo ♪♫ 25 août 2005 à 12:15 (CEST)

celle d'it est dans le modèle)
d'ialleurs, je connaissait pas le tag noinclude, ça a l'air sympa. Darkoneko () 10 septembre 2005 à 22:46 (CEST)
C'est claire que c'est sympatoche ! avant yavait une sorte d'interwiki dans les pages de discussionsdes modèles, ça n'a jamais vraiment marché. Avec se on peut même catégoriser les modèles... que demande le peuple !D ~ þayo ♪♫ 10 septembre 2005 à 22:59 (CEST)
j'ai d'ayeur faiiii remercier Utilisateur:M7, mais c'est un estranger :/ ~ þayo ♪♫ 10 septembre 2005 à 23:00 (CEST)

[modifier] Template use at English Wikipedia

Excuse my non-French, but can yall help me on trying to get this template to work at http://en.wikipedia.org/wiki/Template:Link_FA? en:User:Zscout370 11 septembre 2005 à 08:45 (CEST)

Seem to already working, isn't it? Aineko 12 septembre 2005 à 03:35 (CEST)

[modifier] Petit bug

Il arrive quelquefois — ça ne devrait pas, c'est un scandale ;D — que plusieurs liens interwikis vers la même wikipédia soient présents dans les articles. C'est à dire qu'à un article en français correspondent deux articles en allemand, deux autres en japonais, deux en anglais, etc. Lorsque le modèle {{lien AdQ|de}} est ajouté sur une telle page, par exemple, on se retrouve avec une étoile à coté de chacun des liens Deutsch, même si l'un des deux articles n'est en fait pas estampillé Lesenswerten Artikel. Exemple concret sur cette page.

— Wiz  (Discuter) <mail> 10 novembre 2005 à 23:31 (CET)

Ah ouais, bien vu :) Probot est un peu idiot et ne regardait pas encore cela. C'est un bug que j'ai à corriger (il ajoutait aussi un lien AdQ sans que l'interwiki existe, l'article allemand ayant un lien vers :fr), je n'ai plus relancé ce bot depuis un moment, il faudra que je règle ces problèmes avec de faire une nouvelle passe. Dake - @ 23:54, 10 novembre 2005 (CET)

[modifier] Lesenswerte Artikel

Pour les liens vers de:, j'ai noté que ce modèle était utilisé pour les « lesenswerte Artikel ». Je ne pense pas qu'ils soient vraiment comparables aux AdQ. Faut-il faire le ménage ? R 24 février 2006 à 01:31 (CET)

[modifier] Conflit étoile orange

Sur la page commons, ya eu une baston concernant la couleur de l'étoile.

Quesqu'on fait ? Personnellement je préfère la orange. Ce que je pense c'est que si certain wiki ne souhaite pas cette étoile il peuvent utiliser une autre image ; Cette image était initialement orange, autant qu'elle le reste. Ъayo 28 mars 2006 à 03:04 (CEST)

Bah, les discussions sur Commons ne valent que pour Commons. Personnellement, la couleur orange de cette étoile ne me dérange aucunement. :D Hégésippe | ±Θ± 28 mars 2006 à 03:05 (CEST) – P.S. : et comme l'image, chez nous, est rangée dans Image:Icone etoile.png, soit dans l'espace de stockage de FR, nous sommes à l'abri de leurs bagarres. Hégésippe | ±Θ± 28 mars 2006 à 03:12 (CEST)

[modifier] german problem

Comment l'utiliser ?

En supposant que l'article de:Promethium sur wikipédia germaphone soit un article de qualité. Il suffit alors d'ajouter le code {{Lien AdQ|de}} sur la page Prométhium. Et ainsi une étoile apparaîtra en face de l'habituel interwiki vers l'article de:Promethium ainsi :

Deutsch

I don´t speak france, but i think this is about the german-"problem", now isn´t a problem. We are back in business. --81.173.185.170 12 avril 2006 à 14:29 (CEST)

I dont realy understand, you can speak english if you want.
What the problem ? Deutsch use 2 "featured articles" categories ? de:Wikipedia:Exzellente Artikel and de:Wikipedia:Lesenswerte Artikel, thats the problem ? Can you explain ? thanks. Ъayo 12 avril 2006 à 15:53 (CEST)

[modifier] Recommandation pour la position du modèle

On peut constater que comme ce sont des robot qui place ces modèles, s'ils ne sont pas d'accord sur la position des ces modèles ils peuvent se faire une guerre de robot :) et flooder les historique.

Ce serait bien je pense de trouver une recommendation sur la position de ces modèles si ce n'est pas déjà fait.

  • en face de chaque interwiki,
  • en colonne au dessus des interwiki,
  • en colonne au dessus des catégories,

Peut être me pose-je un problème qui n'en est pas un. bayo 17 mars 2007 à 12:31 (CET)

[modifier] Interrogation

Est-ce que quelqu'un pourrait me donner le lien de l'image avec l'étoile?--Tilla 20 mai 2007 à 21:01 (CEST)

[modifier] Wrong interwiki

The sv intewiki is incorrect. It shouldn't be sv:Mall:Utmärkt (used for featured articles on the sv wiki) but sv:Mall:UA (featured articles in interwikis). 82.155.100.23 10 novembre 2007 à 01:09 (CET) vo:Geban:Malafaya

[modifier] Catégorisation

Depuis la suppression pour doublon de {{FA}} en PàS, les articles de qualité « étrangers » ne sont plus catégorisé. Pourtant, les catégories utilisées par FA existent toujours (Catégorie:Article de qualité dans une autre langue) mais sont vides. Elles servaient à repérer les traductions potentielles. Pourquoi ne pas remettre en route cette catégorisation avec des catégories cachées. Elles seraient ainsi maintenues à jour par les bots interwikis et ne gênerait pas la cosmétique des articles. Ice Scream -_-' 31 mars 2008 à 13:08 (CEST)


[modifier] Performance

Le script qui gère ce système a un petit probleme : des que la liste d'interwiki est un peu longue, il prend un temps de malade. En clair, plus d'un seconde, voir deux. Avoir un script qui mobilise, pour chaque page 95% des ressources du client, c'est un peu exagéré. J'ai réfléchi, essayé de l'optimisé, et ai finalement trouver la solution, mis ca va impliquer un peu de changement. Aujourdhui, le script utilise l'algo suivant :

pour tous les liens interwiki
  recherche si le modèle BA est mis pour cette langue
    si oui, changer le lien interwiki en BA
  recherche si le modèle ADQ est mis pour cette langue
    si oui, changer le lien interwiki en ADQ
  recherche si le modèle PDQ est mis pour cette langue
    si oui, changer le lien interwiki en PDQ

L'étape longue, c'est la ligne recherche si le modèle XXX est mis pour cette langue . Imaginez une page ou y'a 100 interwiki, ca qui n'est pas rare pour les articles les plus consultés, ca fait 300 itérations de l'étape la plus longue...

Bref, la solution, c'est de prendre le probleme dans l'autre sens:

Pour tous les interwiki dans le modèle BA
  changer le lien inerwiki en BA
Pour tous les interwiki dans le modèle ADQ
  changer le lien inerwiki en ADQ
Pour tous les interwiki dans le modèle PDQ
  changer le lien inerwiki en PQD

La, on s'en fout du nombre d'interwiki, ce qui compte, c'est le nombre d'interwiki avec label. Ce que cela implique, c'est un chagement de ce modèle. En gros, au lieu d'avoir

{{Lien BA|cs}}
{{Lien BA|de}}
{{Lien BA|en}}
{{Lien BA|no}}
{{Lien AdQ|ru}}
{{Lien AdQ|pt}}

Il faut avoir :

{{Liens BA|cs|de|en|no}}
{{Liens AdQ|ru|pt}}

Je sais que ca va pas plaire aux dresseursde bot interwiki, mais je pense qu'on ne peut se permettre de d&foncer les perfs client pour nos articles les plus consulté, pour un point assez secondaire. Bref, si vous avez des questions ou suggstions, c'est le moment! Maloq causer 6 juin 2008 à 13:01 (CEST)

Je vais peut-être dire une bêtise, ne sachant pas exactement comment procèdent dans le détail les bots interwikis, mais une syntaxe de modèle du type:
<span id="itw_BA">
{{Lien BA|cs}}
{{Lien BA|de}}
{{Lien BA|en}}
</span>
leur simplifierait-elle les choses ou ne ferait-elle aucune différence ? --Lgd (d) 11 juin 2008 à 06:29 (CEST)
C'est une solution intermédiaire à laquelle j'avais pensé, mais je l'avais tout de suite abandonné pour la raison suivante. Ca compliquerai le wiki-code pour simplifier la vie des bots. Et en informatique, il y a un principe, c'est : la technique est au service de l'homme, et non l'inverse. De plus, ça compliquerai quand meme la tache des bots qui devraient trouver le bon endroit. Donc, quitte à faire un peu travailler les dresseurs, je préfère la solution la plus élégante. Maloq causer 11 juin 2008 à 09:32 (CEST)
Seconde réflexion : la syntaxe {{Lien BA|cs|de|en|no}} me semble emmerdante à coder en wikicode pour le modèle. Un truc du style {{Lien BA|cs,de,en,no}} me semble revenir au meme, et rendrai le modèle d'une simplicité désarmante, sans rajouter de complexité pour les dresseurs (un pipe ou une virgule, la différence est facile à faire...). Maloq causer 11 juin 2008 à 11:23 (CEST)
{{Liens AdQ}}. Je commence les test avec mon robot. Maloq causer 11 juin 2008 à 11:28 (CEST)
J'ai l'impression que le script sur en: est beaucoup plus rapide. Je n'y connait à peu près rien en Javascript donc je ne comprends pas la différence entre fr: et en:, mais s'il était possible d'améliorer les performances sans devoir toucher aux codes des articles, ce serait nettement préférable. R (d) 11 juin 2008 à 16:32 (CEST)
En fait, il st trois fois plus rapide : ils ne gèrent que les AdQ avec ce système, pas les BA, ni les PdQ, mais sinon, ils utilisent le même principe. Et meme avec cette restriction, ce script occupe plus de la moitié du temps de chargement dès qu'il y a un peu d'interwiki. Maloq causer 11 juin 2008 à 17:08 (CEST)
Bon, j'ai deja fait cette optimisation (sélection selon le namespace, et recherche de BA en premier, potentiellement plus souvent). Mais bon, sur Paris, ca prend 1,5 secondes encore... Maloq causer 11 juin 2008 à 17:24 (CEST)

[modifier] Tests

Résultats des test de performance (réalisé sur une page ayant 143 liens interwikis, et sur une copie de la page Paris)

Ancien système Nouveau système
Avec 3 liens BA et 3 liens AdQ 1058 ms 13 ms
Sans aucun lien "featured" 1120 ms 7 ms

Note : les résultat ne sont pas à prendre au bruts : d'un exécution à l'autre, selon le contexte, le temsp peut bouger de +/-30%

Concernant le nouveau système, s'agit-il de l'optimisation ou de l'utilisation des modèles du type {{Liens AdQ|en,de,...}} ? --CHristoPHE (d) 13 juin 2008 à 14:36 (CEST)
l'utilisation de {{Liens AdQ|en,de,...}} . L'optimisation a divisé par un peu moins de 2 le temps d'exécution deja, mais cà reste gros.

[modifier] Objections

  1. Totalement contre. Je ne vote non pas contre le statut de bot, mais contre la tâche demandée:
    • Une requête de statut de robot n'est pas le lieu selon moi pour requérir le consensus sur un changement global sur un modèle. Mais soit.
    • Après, sur la tâche en elle-même, la syntaxe {{Liens AdQ|en, de, fr}} ne me paraît pas non plus naturelle, je n'ai jamais vu ça.
    • Oui, les dresseurs de robots vont râler, tu l'a dit. Faire ce type de changements unilatéral vis-à-vis des autres projets de la fondation, c'est nous isoler, puisqu'aucun script interprojets ne marchera plus. (Et non, je ne vais pas m'amuser à coder des exceptions pour fr: dans featured.py)
    • Pour ce qui est du manque de performances, pourrait il y avoir plus d'infos ? Comment les mesures sont réalisées ? Es-tu bien sûr que la mise en cache, et pour ton browser et pour celle du côté wikimedia ne joue pas ?
    • Pour la solution technique apportée, quel est ce barbare <span id="itws_ADQ" dans {{Liens AdQ}} ?? Ou est-ce traité ? Du javascript ? Du CSS ? Où ? NicDumZ ~ 13 juin 2008 à 15:50 (CEST)
    Requérir le consensus, certes, je n'ai pas fait de pdd, mais j'ai laissé une annonce sur le bistro et les quelques rares personnes intéressée sont venues en discuter.
    la syntaxe, il faut bien en choisir une. J'aurais pu choisir {{Liens AdQ|en|de|fr}} mais ça complexifierai dramatiquement le modèle. Cela dit, c'est possible.
    Je ne vois pas trop en quoi ça isole. De plus, le changement n'est pas dramatique à implémenter. Et pour finir, ce bot est fait pour passer derrière et corriger, justement. Donc, en attendant, ce bot assurera la liaison le temps qu'il faudra. Et, comme je l'ai dit sur la pdd : ce système défonce (jusqu'a 95% du temps de chargement) les performance de l'interface sur les articles avec bcp d'interwikis. Or, les articles les plus consultés ont naturellement bcp d'interwikis. C'est un probleme qu'il faut regler, surtout si une solution idéale existe. On ne fait pas wikipédia pour faire plaisir aux dresseurs de bot, mais pour les lecteurs.
    Pour les infos, je les ai donné dans le lien que j'ai mis, j'ai placé la discussion sur Discussion_Modèle:Lien_AdQ ou tout y est expliqué en détails (tenants et aboutissants). Les mesures sont réalisé avec Firefox 2.0.0.13 et Firebug. La mise en cache n'as strictement rien à voir, c'est du temps d'execution de script dont il est question.
    Sinon, le barbare <span id="itws_ADQ" est basé sur le meme principe que le barbare <span id="ADQ-interwiki-{{{1}}}" deja présent sur {{lien AdQ}}. Ca marche, comme avant avec du JS, mais optimisé par un facteur 50.
    Voila, j'espère avoir répondu à ta question. Je copie colle ta question et ma réponse sur Discussion_Modèle:Lien_AdQ afin qu'on puisse discuter la bas, et centraliser le tout Sourire. Maloq causer 13 juin 2008 à 17:21 (CEST)

[modifier] Autre solution

Puisque le problème est de parcourir toute la page à la recherche de l'id *-interwiki-lang, pourquoi ne pas utiliser les classes AdQ ? getElementsByClassName est appellé deux fois en tout, ensuite la partie couteûse est la recherche dans une liste d'une vingtaine d'élèments, la liste des liens IW existants. En gros, je propose la nouvelle lienAdQouBAouPdQ :

function lienAdQouBAouPdQ() {
    // links are only replaced in p-lang
    var pLang = document.getElementById("p-lang");
    if (!pLang) return;
 
    if(wgNamespaceNumber==0)
    {
        var AdQs = document.getElementsByClassName('AdQ');
        var BAs = document.getElementsByClassName('BA');
        var BAl = BAs.length;
        var AdQl = AdQs.length;
        var className;
        var IW;
        var IWl;
        var i;
        var j;
        //For every {{Lien BA}}
        for (i=0; i<BAl; i++)
        {
            //The classname is BA-interwiki-lang, strip the leading "BA-"
            className = BAs[i].className.substring(3);
            //Get the corresponding interwiki link(s, but usually only one per language)
            IW = plang.getElementsByClassName(className);
            IWl = IW.length;
            //And on every link for the current language (usually one) add the icon
            for (j=0; j<IWl; j++)
            {
                IW[j].className += " BA";
                IW[j].title = "Lien vers un bon article";
            }
        }
        for (i=0; i<AdQl; i++)
        {
            //Strip the leading "ADQ-"
            className = AdQs[i].className.substring(4);
            IW = plang.getElementsByClassName(className);
            IWl = IW.length;
            //And on every link add the icon
            for (j=0; j<IWl; j++)
            {
                IW[j].className += " AdQ";
                IW[j].title = "Lien vers un article de qualité";
             }
        }     
    }
    else if(wgNamespaceNumber==100)
    {
        var PdQs = document.getElementsByClassName('PdQ');
        var PdQl = PsQs.length;
        var className;
        var IW;
        var IWl;
        for (var i=0; i<PdQl; i++) 
        {
            className = PdQs[i].className.substring(4);
            IW = plang.getElementsByClassName(className);
            IWl = IW.length;
            for (var j=0; j<IWl; j++)
            {
                IW[i].className += " AdQ";
                IW[i].title = "Lien vers un portail de qualité";
            }
        }
    }
}

Je suis loin d'être un pro du javascript, c'est en fait mon premier script : il y a sans doute des erreurs de syntaxe, des maladresses, mais algorithmiquement, pour le namespace 0, en posant NBiw le nombres d'interwikis, et NBadq, NBba le nombre de modèles Lien AdQ, Lien BA on troque NBiw*2 parcours complets de l'arbre DOM ENTIER contre (2 parcours de l'arbre DOM entier + (NBadq+NBba) parcours de l'arbre DOM reduit à celui de la div p-lang).

C'est mieux, non ? NicDumZ ~ 15 juin 2008 à 22:43 (CEST)

Sur le principe, oui, c'est infiniment mieux. Le seul gros probleme, c'est que la méthode getElementsByClassName n'est pas une méthode native, mais définie par mediawiki, sur le script wikibits.js, ligne 452. Et cette méthode est affreusement longue dès que la page est grosse. En fait, elle est meme la seconde cause de la lenteur (derrière le script des AdQ et BA des interwikis) des grosses pages, juste à cause d'un seul et unique appel à cette méthode. (et ce sera l'objet de ma prochaine tentative d'amélioration Sourire). Maloq causer 15 juin 2008 à 22:55 (CEST)
Note : Safari 3.1, Firefox 3 et Opera 9.5 implémentent en natif cette fonction. IE, on peut se fouiller pour un petit bout de temps, hélas... Merci Microsoft pour tous vos efforts pour faire avancer le web.
Note technique : getElementsByClassName est lent parce qu'elle parcourt l'arbre DOM en entier...