Modèle:WikidataTable/Documentation

De Wikiromandie.org
Aller à la navigation Aller à la recherche

Le gros je ne sais pas mais voici comment ajouter un lien cliquable.

Colonnes cliquables (suffixe _link)

Par défaut, chaque colonne du résultat SPARQL est affichée comme du texte brut. Pour qu'une valeur devienne un lien cliquable avec un texte personnalisé, ajouter une seconde colonne nommée NOM_link à côté de la colonne NOM :

  • NOM : le texte affiché (par exemple un identifiant) ;
  • NOM_link : l'adresse (URL) vers laquelle le lien pointe. Cette colonne n'est pas affichée dans le tableau.

Règles :

  • NOM_link n'est prise en compte que si la colonne NOM existe aussi dans le SELECT ;
  • l'URL doit commencer par http:// ou https://, sinon le texte reste non cliquable ;
  • le lien s'ouvre dans un nouvel onglet ;
  • les colonnes sans suffixe _link s'affichent comme avant (images Commons, éléments Wikidata Q… liés à wikidata.org, texte brut).

Exemple : numéro ESID lié à swisstopo

exemple : Liste des rues biennoises
L'URL est construite à partir de l'URL de formatage (P1630) de la propriété, ce qui évite de l'écrire en dur :

{{#invoke:WikidataTable|render|title = Rues biennoises|sparql = SELECT ?item ?itemLabel (SAMPLE(?image) AS ?oneImage) ?ESID ?ESID_link WHERE {
  ?item wdt:P31 wd:Q79007.
  ?item wdt:P131 wd:Q1034.
  OPTIONAL { ?item wdt:P18 ?image. }
  OPTIONAL {
    ?item wdt:P11571 ?ESID.
    wd:P11571 wdt:P1630 ?formatter.
    BIND(IRI(REPLACE(?formatter, "\\$1", STR(?ESID))) AS ?ESID_link)
  }
  SERVICE wikibase:label { bd:serviceParam wikibase:language "fr,de,it,en". }
}
GROUP BY ?item ?itemLabel ?ESID ?ESID_link}}

Avec GROUP BY, les deux colonnes doivent figurer dans le regroupement (ou être passées dans un SAMPLE).

Note technique

Le module Lua ne génère qu'un élément <div class="wikidata-sparql-table">. Le tableau est construit côté navigateur par le JavaScript de MediaWiki:Common.js (fonction renderTable), qui gère cette convention _link.