Module:Wikidata
![Documentation icon](http://upload.wikimedia.org/wikipedia/commons/thumb/4/43/Test_Template_Info-Icon_-_Version_%282%29.svg/50px-Test_Template_Info-Icon_-_Version_%282%29.svg.png)
Το κύριο module για εργασία με τα δεδομένα των Wikidata. Η βασική μορφή προέρχεται από test2wiki:Module:Wikidata, και έχει επεκταθεί με νέες δυνατότητες.
Το module διαιρείται σε υπό modules:
- Module: Wikidata/lib - βιβλιοθήκη λειτουργιών για όλα τα άλλα υπο modules.
- Module: Wikidata/i18n - διαμόρφωση με βάση την ελληνική Βικιπαίδεια
- Module: Wikidata/Filterers - φιλτράρισμα δηλώσεων, ορισμών κτλ.
- Module: Wikidata/Formatters - μορφοποίηση δεδομένων
- Module: Wikidata/Sorters - ταξινόμηση δεδομένων (αλφαβητικά, ανά ημερομηνία κτλ)
- Module: Wikidata/cite - μορφοποίηση παραπομπών
Δείτε επίσης τη λίστα των προτύπων που χρησιμοποιούν αυτό το module.
Χρήση
Τοποθετείστε το πρότυπο {{#invoke:Wikidata|λειτουργία|παράμετρος}}.
Οι παράμετροι και οι λειτουργίες που σημειώνονται με έναν αστερίσκο (*) δεν υποστηρίζονται πλήρως και δεν συνιστάται η χρήση τους. Αντίθετα, οι παράμετροι ή οι λειτουργίες που σημειώνονται με ένα σταυρό (†) είναι ξεπερασμένα και μπορεί σύντομα να αφαιρεθούν.
Λειτουργία | Περιγραφή λειτουργίας | Παράμετρος | Απαιτείται | Περιγραφή παραμέτρου |
---|---|---|---|---|
formatStatements | ανακτά τα δεδομένα, επιλέγει αξιώσεις, φιλτράρει, ταξινομεί και μορφοποιεί τις τιμές τους και επιστρέφει τη λίστα τους | id | όχι | ένα αναγνωριστικό του αντικειμένου (το γράμμα "q" που ακολουθείται από ψηφία) ή τις ιδιότητες (το γράμμα "p" ακολουθούμενο από ψηφία) στα Wikidata, ποια δεδομένα θα πρέπει να ληφθούν για περαιτέρω εργασία μαζί του (σιωπηρά ένα στοιχείο που συνδέεται με αυτή τη σελίδα) |
of | όχι | το αναγνωριστικό των ιδιοτήτων στις Wikidata (το γράμμα "p" που ακολουθείται από ψηφία) από το οποίο η οντότητα που πραγματικά χρησιμοποιεί το στοιχείο αποκτάται χρησιμοποιώντας την πρώτη προτιμώμενη τιμή της ιδιότητας | ||
page* | όχι | το όνομα της σελίδας της οποίας το αντικείμενο πρόκειται να χρησιμοποιηθεί για την ανάκτηση των δεδομένων | ||
property | ναι | αναγνωριστικό ιδιότητας Wikidata (το γράμμα "p" που ακολουθείται από ψηφία) της οποίας οι τιμές θα μορφοποιηθούν και θα εμφανιστούν | ||
value* | όχι | εάν αυτή η παράμετρος έχει οριστεί, εμφανίζονται τα περιεχόμενά της | ||
over* | όχι | αν είναι «αληθής», η κενή τιμή του «value» δεν θεωρείται καταχωρημένη | ||
compare* | όχι | εάν είναι «αληθής» και η παράμετρος «value» έχει καθοριστεί, το module συγκρίνει το περιεχόμενό της και τα δεδομένα στα Wikidata σύμφωνα με τις άλλες παραμέτρους που καθορίζονται για το φιλτράρισμα δεδομένων και τις επισημαίνει με την κλάση CSS σύμφωνα με τη συνέπεια των δεδομένων | ||
addlink | όχι | αν «αληθής», ένα (e) εμφανίζεται απευθείας στην ιδιότητα στο τέλος των δεδομένων από το χώρο αποθήκευσης | ||
addclass | όχι | αν είναι «ψευδής», καταστέλλει την ταξινόμηση δεδομένων της κλάσης CSS </ span> (χρήση μόνο σε σπάνιες περιπτώσεις) | ||
value-formatter | όχι | το υπό module του Module:Wikidata/Formatters (της υποσελίδας) που χρησιμοποιείται για τη μορφοποίηση των τιμών εάν το προεπιλεγμένο υπό module δεν είναι ικανοποιητικό | ||
limit | όχι | ο μέγιστος αριθμός τιμών που εμφανίζονται στη λίστα | ||
rank | όχι | η απαιτούμενη κατάσταση της τιμής σε μια δήλωση: μπορεί να είναι «all» - θα χρησιμοποιηθούν όλες οι δηλώσεις, best - θα χρησιμοποιηθούν είτε οι δηλώσεις που έχουν προτιμώμενη βαθμίδα είτε μόνο όσοι έχουν κανονική βαθμίδα αν δεν χρησιμοποιείται η προτιμώμενη. valid (προεπιλογή) - χρησιμοποιούνται τόσο οι δηλώσεις με προτιμώμενες όσο και με κανονικές βαθμίδες. preferred, normal, deprecated - μόνο δηλώσεις με την κατάλληλη βαθμίδα | ||
withqualifier | όχι | Αναγνωριστικό ιδιότητας Wikidata (το γράμμα "p" που ακολουθείται από ψηφία), το οποίο πρέπει να αντιστοιχιστεί στη δεδομένη τιμή της δήλωσης ως ένας ορισμός | ||
withlang | όχι | ο κώδικας γλώσσας, στον οποίο πρέπει να είναι οι τιμές του μονογλωσσικού κειμένου | ||
date | όχι | ημερομηνίας σε μορφή ΕΕΕΕ-ΜΜ-ΗΗ ή #now (σημερινή ημερομηνία) στην οποία θα πρέπει να ισχύει η δήλωση | ||
sort | όχι | ο τρόπος αλλαγής της προεπιλεγμένης σειράς κάθε τιμής. Η τιμή της παραμέτρου αντιστοιχεί σε δευτερεύουσες σελίδες που χωρίζονται με κόμματα του υπό module Module:Wikidata/Sorters | ||
invert | όχι | αν έχει οριστεί «αληθής» και έχει οριστεί «sort», η ταξινόμηση θα είναι πτωτική, όχι η προεπιλεγμένη αύξουσα | ||
pattern | όχι | αν ο τύπος συμβολοσειράς είναι string (κείμενο), αυτή η μορφή είναι για μορφοποίηση, με το "$1" να αντικαθιστά το string | ||
autoformat† | όχι | εάν είναι «αληθής» και ο τύπος συμβολοσειράς είναι string (κείμενο), το module θα προσπαθήσει να βρει αντικαταστάτη για την ιδιότητα (P1630) στη σελίδα ιδιοτήτων και να την εφαρμόσει | ||
precision | όχι | προσαρμογή της μορφής του χρόνου (εάν η πραγματική ακρίβεια είναι μικρότερη, η μορφή προσαρμόζεται σε αυτήν). 11 – 25. Ιουνίου 2024, 10 – Ιουνίου 2024, 9 – 2024 κ.λπ. | ||
somevalue | όχι | εάν συμπληρωθεί, το module θα εμφανίσει επίσης την ειδική τιμή "άγνωστη τιμή" μαζί με το κείμενο | ||
novalue | όχι | εάν συμπληρωθεί, το module θα εμφανίσει επίσης την ειδική τιμή "καμία τιμή" μαζί με το κείμενο | ||
showqualifier | όχι | τα αναγνωριστικά των προσδιοριστών της ιδιότητας στα Wikidata (το γράμμα "p" που ακολουθείται από ψηφία ή "time"), τα οποία χωρίζονται με κόμματα, που εμφανίζονται σε παρένθεση μετά την εκχώρηση της τιμής στην τιμή αυτή ως ορισμός | ||
showtargetdata* | όχι | παρόμοια με το "showqualifier", αλλά τα δεδομένα αντλούνται από το αντικείμενο στόχο | ||
targetdate* | όχι | παρόμοια με την "date", αναφέρεται στα στοιχεία του αντικειμένου στόχου | ||
showsource | όχι | αν είναι "αληθής", οι αναφορές προστίθενται στα δεδομένα | ||
showmore | όχι | pokud je hodnota „true“, tak se v případě, že existuje více hodnot, než kolik povoluje limit, zobrazí na konci jejich seznamu text „… více na Wikidatech“ s odkazem přímo na vlastnost | ||
separator | όχι | znaky, jimiž se v seznamu oddělí jednotlivé hodnoty, kromě předposlední a poslední (implicitně čárka) | ||
conjunction | όχι | znaky, jimiž se v seznamu oddělí předposlední a poslední hodnota (implicitně spojka „a“) | ||
formatStatementsFromLua | funkce, kterou používají pouze jiné moduly a která je jinak shodná s „formatStatements“ | entity | όχι | tabulka s entitou, s níž má modul pracovat |
dumpWikidataEntity | zobrazí entitu v čitelné podobě, užitečná pro ladění a zavádění nových funkcí, nepoužívá se v šablonách nebo článcích | id | όχι | identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž entita se zobrazí (implicitně je to položka propojená s danou stránkou) |
getSitelink | vrátí odkaz na článek daného projektu | site / první nepojmenovaný | όχι | zkratka projektu (implicitně „cswiki“) |
pattern | όχι | vzor pro zformátování odkazu, kde „$1“ je název odkazovaného článku (implicitně „$1“) | ||
id | όχι | identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž data se mají získat pro další práci s nimi (implicitně je to položka propojená s danou stránkou) | ||
of | όχι | identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), ze kterého se získá entita, kterou modul skutečně využije, tak, že se použije první nejlepší hodnota vlastnosti | ||
addclass | όχι | pokud je „true“, odkaz bude obalen CSS třídou | ||
getLabel | vrátí štítek položky v daném jazyce | lang | όχι | zkratka jazyka (implicitně „cs“) |
id | όχι | identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž data se mají získat pro další práci s nimi (implicitně je to položka propojená s danou stránkou) | ||
of | όχι | identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), ze kterého se získá entita, kterou modul skutečně využije, tak, že se použije první nejlepší hodnota vlastnosti | ||
addclass | όχι | pokud je „true“, štítek bude obalen CSS třídou | ||
getDescription | vrátí popisek položky v daném jazyce | lang | όχι | zkratka jazyka (implicitně „cs“) |
id | όχι | identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž data se mají získat pro další práci s nimi (implicitně je to položka propojená s danou stránkou) | ||
of | όχι | identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), ze kterého se získá entita, kterou modul skutečně využije, tak, že se použije první nejlepší hodnota vlastnosti | ||
addclass | όχι | pokud je „true“, popisek bude obalen CSS třídou | ||
getAliases | vrátí aliasy položky v daném jazyce | lang | όχι | zkratka jazyka (implicitně „cs“) |
limit | όχι | maximální počet aliasů, který se má zobrazit | ||
id | όχι | identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž data se mají získat pro další práci s nimi (implicitně je to položka propojená s danou stránkou) | ||
of | όχι | identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), ze kterého se získá entita, kterou modul skutečně využije, tak, že se použije první nejlepší hodnota vlastnosti | ||
separator | όχι | znaky, jimiž se v seznamu oddělí jednotlivé aliasy, kromě předposledního a posledního (implicitně čárka) | ||
conjunction | όχι | znaky, jimiž se v seznamu oddělí předposlední a poslední alias (implicitně spojka „a“) | ||
getBadges | vrátí štítek odznaku přiřazeného danému odkazu na článek | site | ναι | zkratka projektu |
id | όχι | identifikátor položky (písmeno „q“ následované číslicemi) nebo vlastnosti (písmeno „p“ následované číslicemi) na Wikidatech, jejíž data se mají získat pro další práci s nimi (implicitně je to položka propojená s danou stránkou) | ||
of | όχι | identifikátor vlastnosti na Wikidatech (písmeno „p“ následované číslicemi), ze kterého se získá entita, kterou modul skutečně využije, tak, že se použije první nejlepší hodnota vlastnosti | ||
getCount | vrátí počet tvrzení podle daných kritérií | všechny parametry pro filtrování | ||
getCurrentId | vrátí id položky, se kterou je stránka propojena | |||
getId* | Vrátí id položky propojené se zadanou stránkou. Není-li propojená a jedná se o Βικιπαίδεια:Ανακατεύθυνση, následuje jej (i rekurzivně). Nepodaří-li se, zkusí další stránky, pokud jich bylo zadáno víc. Nedostane-li parametry přímo, zpracuje parametry předané volající šabloně. (funkčnost závisí na phab:T74815) | první, druhý, ... nepojmenovaný | όχι | název stránky na této wiki (implicitně aktuální stránka) |
getRawValue | použije stejná kritéria jako „formatStatements“, ovšem vrátí strojově čitelný (nezformátovaný) údaj | všechny parametry pro filtrování | ||
field | όχι | pokud je typ hodnoty souřadnice, toto je její část, která se zobrazí; jedno z „latitude“, „longitude“, „precision“ a „globe“ | ||
getRawValueFromLua | jako „getRawValue“, pro použití v jiném modulu | entity | όχι | tabulka s entitou, s níž má modul pracovat |
getQualifier* | qualifier | ναι | ||
getRawQualifier* | qualifier | ναι | ||
formatEntity | lokalizuje položku zadanou pomocí jejího identifikátoru (pokusí se vytvořit lokální odkaz a zobrazit štítek) | id | όχι | id položky, která se má zformátovat (jinak id položky, se kterou je stránka propojena) |
Πρότυπο:Dlouhodobě polozamčenoKategorie:Wikipedie:Moduly
--require "Module:No globals"local p = {}local lib = require 'Module:Wikidata/lib'local i18n = mw.loadData('Module:Wikidata/i18n')local getArgs = (require 'Module:Arguments').getArgslocal function getEntityIdFromStatements(statements)for _, statement in ipairs(statements) doif lib.IsSnakValue(statement.mainsnak) thenif statement.mainsnak.datavalue.type ~= 'wikibase-entityid' thenreturn error(lib.raiseInvalidDatatype('getEntityIdFromStatements',statement.mainsnak.datatype, {'wikibase-item', 'wikibase-property'}))endlocal Formatters = require 'Module:Wikidata/Formatters'return Formatters.getRawValue(statement.mainsnak)endendreturn nilendlocal function getEntityIdFromEntity(entity, prop)local prop = mw.ustring.upper(prop)local statements = entity:getBestStatements(prop)return getEntityIdFromStatements(statements)endlocal function getEntityIdFromId(id, prop)local prop = mw.ustring.upper(prop)local statements = mw.wikibase.getBestStatements(id, prop)return getEntityIdFromStatements(statements)endlocal function getIdFromTitle(titleString)local title = mw.title.new(titleString)while title dolocal id = mw.wikibase.getEntityIdForTitle(title.prefixedText)if id thenreturn idendtitle = title.redirectTargetendreturn nilendlocal function findEntityId(options)local idif options.entity and type(options.entity) == 'table' thenid = options.entity.idendif not id and options.page thenid = getIdFromTitle(options.page)if not id thenreturn nilendendif not id thenid = options.id or p.getCurrentId()endif id and options.of thenid = getEntityIdFromId(id, options.of)endreturn idendlocal function findEntity(options)local entityif options.entity and type(options.entity) == 'table' thenentity = options.entityendif not entity thenif options.id thenlocal id = options.id:upper()entity = mw.wikibase.getEntity(id)if entity and entity.id ~= id thenmw.log(id .. ' je přesměrování na ' .. entity.id)endelseif options.page thenlocal id = getIdFromTitle(options.page)if id thenentity = mw.wikibase.getEntity(id)endelseentity = mw.wikibase.getEntity()endendendif options.of thenif entity thenlocal id = getEntityIdFromEntity(entity, options.of)if id thenreturn mw.wikibase.getEntity(id)endendreturn nilendreturn entityendlocal function getSitelink(options)local id = findEntityId(options)if not id thenreturn nilendlocal site = options.site or options[1]local sitelink = mw.wikibase.sitelink(id, site)if not sitelink thenreturn nilendif options.pattern thensitelink = lib.formatFromPattern(sitelink, options.pattern)endif lib.IsOptionTrue(options, 'addclass') thensitelink = lib.addWdClass(sitelink)endreturn sitelinkendlocal function formatStatement(statement, options)if not statement.type or statement.type ~= 'statement' thenreturn error(lib.formatError('unknown-claim-type', statement.type or '[neznámý]'))endlocal Filterers = require 'Module:Wikidata/Filterers'local Formatters = require 'Module:Wikidata/Formatters'local mainsnak = Formatters.getFormattedValue(statement.mainsnak, options)if options.isQualifier == true thenreturn mainsnakendlocal qualifiers, targetdata, referencesif statement.qualifiers and options.showqualifier thenlocal PropList = lib.textToTable(options.showqualifier)local Snaks = {}for _, property in ipairs(PropList) dolocal Values = {}local property = mw.ustring.upper(property)local format_options = {autoformat = true,isQualifier = true,label = 'short', precision = options['qualifiers precision'] or 9,property = property}if statement.qualifiers[property] thenlocal Qualifiers = mw.clone(statement.qualifiers[property])Filterers.filterQualifiers(Qualifiers, options)for _, snak in ipairs(Qualifiers) doif lib.IsSnakValue(snak) thentable.insert(Values, Formatters.getFormattedValue(snak, {}))endendelseif property == 'TIME' thenlocal Data = {}-- todo: factor outfor key, array in pairs(lib.props) dofor _, prop in ipairs(array) dofor _, snak in ipairs(statement.qualifiers[prop] or {}) doData[key] = snakbreakendendendif Data.begin or Data.ending thentable.insert(Values, lib.formatDateRange(Data, format_options))endendif #Values > 0 thentable.insert(Snaks, mw.text.listToText(Values))endendif #Snaks > 0 thenqualifiers = table.concat(Snaks, options['qualifiers separator'] or i18n['qualifiers separator'])endendif not qualifiers and options.showtargetdata thenlocal entityif lib.IsSnakValue(statement.mainsnak) thenif statement.mainsnak.datavalue.type == 'wikibase-entityid' thenentity = mw.wikibase.getEntity(Formatters.getRawValue(statement.mainsnak))elsereturn error(lib.formatError('invalid-datatype', statement.mainsnak.property, statement.mainsnak.datatype, 'wikibase-item/wikibase-property'))endendif entity thenlocal PropList = lib.textToTable(options.showtargetdata)local datelocal rank = 'best'if options.targetdate thenif lib.isPropertyId(options.targetdate) thendate = p.getRawValueFromLua{ entity = options.entity, property = options.targetdate }elsedate = options.targetdateendif date thenrank = 'valid'endendlocal options = {addclass = false,autoformat = true,date = date,entity = entity,isQualifier = true,label = 'short',precision = 9,rank = rank,sort = {'date'},}local Snaks = {}for _, property in ipairs(PropList) dolocal resultif mw.ustring.lower(property) == 'time' thenlocal Data = {}for key, array in pairs(lib.props) dofor _, prop in ipairs(array) dooptions.property = proplocal Statements = Filterers.filterStatementsFromEntity(entity, options)for _, statement in ipairs(Statements) doData[key] = statement.mainsnakbreakendendendif Data.begin or Data.ending thenresult = lib.formatDateRange(Data, options)endelseoptions.property = propertyresult = p.formatStatementsFromLua(options)endif result thentable.insert(Snaks, result)endendif #Snaks > 0 thentargetdata = table.concat(Snaks, '; ')endendendif statement.references and lib.IsOptionTrue(options, 'showsource') thenlocal Module = require 'Module:Wikidata/cite'references = Module.formatReferences(statement.references, options)endif qualifiers or targetdata thenif options.delimiter thenmainsnak = mainsnak .. options.delimiter .. (qualifiers or targetdata)elsemainsnak = mainsnak .. ' (' .. (qualifiers or targetdata) .. ')'endendif references and references ~= '' thenreturn mainsnak .. references .. lib.category('references')endreturn mainsnakendlocal function formatStatements(statements, options)local formattedStatements = {}for _, statement in ipairs(statements) doif not statement.type or statement.type ~= 'statement' thenreturn error(lib.formatError('unknown-claim-type', statement.type or '[neznámý]')) -- fixme: i18nendlocal formatted = formatStatement(statement, options)local add = truefor _, fmt in ipairs(formattedStatements) doif formatted == fmt thenadd = falsebreakendendif add then -- not in_arraytable.insert(formattedStatements, formatted)endendreturn formattedStatementsendlocal function getStatements(id, options)if not id thenreturn {}endlocal statements = mw.wikibase.getAllStatements(id, options.property:upper())local Filterers = require 'Module:Wikidata/Filterers'Filterers.filterStatements(statements, options)return statementsendlocal function prepareShowMore(options)if options.limit and lib.IsOptionTrue(options, 'showmore') thenoptions.limit = options.limit + 1return trueendreturn falseendlocal function handleShowMore(values, limit, add_more)if add_more thenif #values == limit thentable.remove(values)elseadd_more = falseendendreturn add_moreendlocal function makeList(values, options, add_more)if add_more thentable.insert(values, mw.ustring.format(i18n['more-on-Wikidata'], options.id, options.property))endreturn mw.text.listToText(values, options.separator, options.conjunction)endlocal function getFormattedStatements(options)local value = options.valueif value thenif value == '' and lib.IsOptionTrue(options, 'over') thenvalue = nilendif value and not lib.IsOptionTrue(options, 'compare') thenreturn valueendend--Get entitylocal options = lib.common.cleanArgs(options)options.limit = tonumber(options.limit) --TODO default?local add_more = falseif not lib.IsOptionTrue(options, 'compare') thenadd_more = prepareShowMore(options)endlocal id = findEntityId(options)local statements = getStatements(id, options)options.property = mw.ustring.upper(options.property)if value thenlocal compare = require 'Module:Wikidata/compare'local marked, category = compare.compareValues(value, statements, {catbase = options.catbase,property = options.of or options.property})if tostring(options.addclass) ~= 'false' and marked thenvalue = markedendif lib.IsOptionTrue(options, 'addcat') and category thenreturn value .. categoryendreturn valueendif #statements == 0 then return nil endadd_more = handleShowMore(statements, options.limit, add_more)options.id = id-- Format statements and concat them cleanlylocal formattedStatements = formatStatements(statements, options)value = makeList(formattedStatements, options, add_more)if lib.IsOptionTrue(options, 'addlink') thenvalue = mw.ustring.format('%s <sup class="wd-link">([[d:%s#%s|e]])</sup>', value, id, options.property)endif lib.IsOptionTrue(options, 'addcat') thenvalue = value .. lib.category('used-property', options.property)endif tostring(options.addclass) ~= 'false' thenreturn lib.addWdClass(value)endreturn valueendlocal function getRawValue(options)if options.rank ~= 'best' and options.rank ~= 'preferred' thenlocal byRank = mw.ustring.match(options.sort or '', 'rank') and trueoptions.sort = lib.textToTable(options.sort or '')if not byRank thentable.insert(options.sort, 1, 'rank')endendfor _, statement in ipairs(p.getStatements(options)) dolocal Formatters = require 'Module:Wikidata/Formatters'return Formatters.getRawValue(statement.mainsnak, options)endreturn nilendlocal function getQualifiers(args)if not args.qualifier thenreturn error(lib.formatError('param-not-provided', 'qualifier'))endlocal all_qualifiers = {}for _, statement in ipairs(p.getStatements(args)) doif statement.qualifiers thenlocal qualifiers = mw.clone(statement.qualifiers[mw.ustring.upper(args.qualifier)] or {})local Filterers = require 'Module:Wikidata/Filterers'Filterers.filterQualifiers(qualifiers, args)for _, q in ipairs(qualifiers) dotable.insert(all_qualifiers, q)endendif not lib.IsOptionTrue(args, 'all') thenreturn all_qualifiersendendreturn all_qualifiersend----- API pro šablony -----function p.dumpWikidataEntity(frame)local args = getArgs(frame, { removeBlanks = true })return mw.dumpObject( mw.wikibase.getEntity( args.id ) )endfunction p.getBadges(frame)local args = getArgs(frame, { removeBlanks = true })local site = args.siteif not site thenreturn error(lib.formatError('param-not-provided', 'site'))endlocal entity = findEntity(args)local Badges = {}if entity and entity.sitelinks and entity.sitelinks[site] thenlocal Formatters = require 'Module:Wikidata/Formatters'for _, badge in ipairs(entity.sitelinks[site].badges) dotable.insert(Badges, Formatters.formatRawValue(badge, 'wikibase-entityid'))endendreturn table.concat( Badges, ', ' )endfunction p.getLabel(frame)local args = getArgs(frame, { removeBlanks = true })local id = findEntityId(args)if not id thenreturn nilendlocal lang = args.langlocal code = mw.language.getContentLanguage():getCode()if not lang or lang == code thenlocal label, _ = lib.getLabelInLanguage(id, { code })if label and lib.IsOptionTrue(args, 'addclass') thenlabel = lib.addWdClass(label)endreturn labelendlocal entity = mw.wikibase.getEntity(id)if entity and entity.labels and entity.labels[lang] thenlocal label = entity.labels[lang].valueif label and lib.IsOptionTrue(args, 'addclass') thenlabel = lib.addWdClass(label)endreturn labelendreturn nilendfunction p.getDescription(frame)local args = getArgs(frame, { removeBlanks = true })local id = findEntityId(args)if not id thenreturn nilendlocal lang = args.langif not lang or lang == mw.language.getContentLanguage():getCode() thenlocal description = mw.wikibase.description(id)if description and lib.IsOptionTrue(args, 'addclass') thendescription = lib.addWdClass(description)endreturn description endlocal entity = mw.wikibase.getEntity(id)if entity and entity.descriptions and entity.descriptions[lang] thenlocal description = entity.descriptions[lang].valueif description and lib.IsOptionTrue(args, 'addclass') thendescription = lib.addWdClass(description)endreturn description endreturn nilendfunction p.getAliases(frame)local args = getArgs(frame, {removeBlanks = true,frameOnly = true,})local lang = args.langlocal entity = findEntity(args)if not lang thenlang = mw.language.getContentLanguage():getCode()endif not entity or not entity.aliases or not entity.aliases[lang] thenreturn nilendargs.limit = tonumber(args.limit)local add_more = prepareShowMore(args)local Aliases = {}for i, alias in ipairs(entity.aliases[lang]) doif not args.limit or i <= args.limit thentable.insert(Aliases, alias.value)else break endendadd_more = handleShowMore(Aliases, args.limit, add_more)local list = makeList(Aliases, args, add_more)return lib.addWdClass(list)endfunction p.getId(frame)local args = getArgs(frame, {removeBlanks = true,frameOnly = false,parentFirst = false})if not args[1] thenreturn mw.wikibase.getEntityIdForCurrentPage()endfor _, titleString in ipairs(args) dolocal id = getIdFromTitle(titleString)if id thenreturn idendendreturn nilendfunction p.getSitelink(frame)return getSitelink(getArgs(frame, {removeBlanks = true,frameOnly = true,}))endfunction p.formatStatements(frame)local args = getArgs(frame, {removeBlanks = false, -- todoframeOnly = true,})local parent_args = getArgs(frame:getParent(), { removeBlanks = true })local addif parent_args.item and not args.id thenargs.id = parent_args.itemadd = lib.category('arbitrary-data')endlocal value = getFormattedStatements(args)if add and value thenreturn value .. addendreturn valueendfunction p.formatStatementsFromTemplate(frame)local args = getArgs(frame, {frameOnly = false,parentOnly = false,parentFirst = false,})return getFormattedStatements(args)endfunction p.getCount(frame)local args = getArgs(frame, {removeBlanks = true,frameOnly = true,})args.limit = nilreturn #p.getStatements(args)endfunction p.getRawValue(frame)return getRawValue(getArgs(frame, {removeBlanks = true,frameOnly = true,}))endfunction p.getQualifier(frame)local args = getArgs(frame, {removeBlanks = true,frameOnly = true,})args.limit = tonumber(args.limit)local add_more = prepareShowMore(args)local limit = args.limitargs.limit = 1args.isQualifier = trueif not args['qualifiers limit'] thenargs['qualifiers limit'] = limitendlocal qualifiers = getQualifiers(args)if #qualifiers == 0 thenreturn nilendadd_more = handleShowMore(qualifiers, limit, add_more)local Formatters = require 'Module:Wikidata/Formatters'local formattedQualifiers = {}for _, qualifier in ipairs(qualifiers) dotable.insert(formattedQualifiers, Formatters.getFormattedValue(qualifier, args))endlocal value = makeList(formattedQualifiers, args, add_more)return lib.addWdClass(value)endfunction p.getRawQualifier(frame)local args = getArgs(frame, {removeBlanks = true,frameOnly = true,})local limit = args.limit and tonumber(args.limit)args.limit = 1for _, qualifier in ipairs(getQualifiers(args)) dolocal Formatters = require 'Module:Wikidata/Formatters'return Formatters.getRawValue(qualifier)endreturn nilendfunction p.formatEntity(frame)local args = getArgs(frame, {removeBlanks = true,frameOnly = true,})args.id = args.id or p.getCurrentId()if args.id thenlocal Formatters = require 'Module:Wikidata/Formatters'return Formatters.formatRawValue(args.id, 'wikibase-entityid', args)endreturn nilendfunction p.compareStatements(frame)local args = getArgs(frame, {removeBlanks = true,frameOnly = true,})if not args.value thenreturn nilendlocal statements = p.getStatements(args)local compare = require 'Module:Wikidata/compare'return compare.compareValues(args.value, statements, args)end----- API pro moduly -----p.getCurrentId = mw.wikibase.getEntityIdForCurrentPagefunction p.formatStatementsFromLua(options)return getFormattedStatements(options)endfunction p.getSitelinkFromLua(options)return getSitelink(options or {})endfunction p.getStatements(args)local id = findEntityId(args)return getStatements(id, args)endfunction p.getRawValueFromLua(options)return getRawValue(options)endp.formatStatementsTable = formatStatementsreturn p
🔥 Top keywords: Πύλη:ΚύριαΕυρωπαϊκό Πρωτάθλημα ποδοσφαίρουΕιδικό:ΑναζήτησηΜιχάλης ΔημητρακόπουλοςΕυρωπαϊκό Πρωτάθλημα Ποδοσφαίρου 2024Σερζ ΙμπάκαΘανάσης ΠαπακωνσταντίνουΣεβίτσεΛορένζο ΜπράουνΆμλετΑλέξης ΚούγιαςΠαναθηναϊκός (καλαθοσφαίριση ανδρών)ΣλοβακίαΝηλ ΆρμστρονγκΚιλιάν ΕμπαπέΠρωτάθλημα Ελλάδας καλαθοσφαίρισης ανδρώνΚώστας ΣλούκαςΕυρωπαϊκό Πρωτάθλημα Ποδοσφαίρου 2020Ιβάν ΓιοβάνοβιτςΝατάσα ΓιάμαληΔημήτρης ΣταρόβαςΕυρωπαϊκό Πρωτάθλημα Ποδοσφαίρου 2004Τζεφ ΜπέζοςΕυρωλίγκα ανδρώνΠαλαιών Πατρών Γερμανός Γ΄Ρόμελου ΛουκάκουΕλλάδαΕθνική Γαλλίας (ποδόσφαιρο ανδρών)Λένα ΜαντάΔημήτρης ΓιαννακόπουλοςΟλυμπιακός Σ.Φ.Π. (καλαθοσφαίριση ανδρών)Τα Μυαλά που Κουβαλάς 2Παγκόσμιο Κύπελλο ΠοδοσφαίρουΠαγκόσμιο Κύπελλο Ποδοσφαίρου 2026Πρωτάθλημα Ελλάδας χειροσφαίρισης ανδρώνΟλυμπιακός Σ.Φ.Π. (ποδόσφαιρο)Ν'Γκολό ΚαντέΕθνική Ελλάδας (ποδόσφαιρο ανδρών)Ορθογραφία της Γαλλικής γλώσσας