Dokumentacja modułu [zobacz] [edytuj] [historia] [odśwież]

Moduł do odczytywania i prezentowania wartości cech z wikidanych powiązanych z bieżącym artykułem.

Funkcja do odczytu i prezentacji wartości cechy.

parametry

edytuj
Pole Do czego służy? Jak wypełnić?
1 Numer cechy Np. 94 (herb) lub 395 (tablice rejestracyjne).
id Opcjonalny identyfikator danych z Wikidanych. Domyślnie odczytywane są cechy z danych powiązanych z bieżącą stroną. Np. Q42.
separator Separator wartości, gdy dostępna jest więcej niż jedna (zbiór):
i
przecinek oraz spójnik i przed ostatnią wartością
lub
przecinek oraz spójnik lub przed ostatnią wartością
inny
jawnie podany inny separator
brak
przecinek (wartość domyślna)
Np. lub aby wyświetlić więcej niż jedną datę urodzin.
linkuj Wartość logiczna do sterowania generowaniem linków:
tak
generuj link zawsze (jeśli możliwy)
nie
generuj tylko opis
brak
generuj w zależności od typu, tj. tak dla artykułów i koordynat, nie dla dat
Np. tak dla daty urodzin lub śmierci
procesor Wtyczka do formatowania wartości Pełna nazwa modułu, który w jest odpowiedzialny za formatowanie zawartości cechy.
bez wartości Treść wartości specjalnej oznaczająca brak danej cechy. Zaleca się podawanie odpowiedniej treści, gdyż zależy ona silnie od kontekstu cechy. Domyślna treść bez wartości raczej nie oddaje jasno informacji i dlatego artykuły, które korzystają z domyślnego tekstu umieszczane są w kategorii technicznej Kategoria:Cecha bez wartości.
ile Maksymalna liczba wartości do odczytania. Cecha może zawierać więcej niż jedną wartość oraz domyślnie zwracane są wszystkie najlepsze wyniki. Tym polem można ten zbiór dodatkowo ograniczyć. Pole musi mieć wartość nie mniejszą niż 1.
ranga Filtr cech względem rangi Dopuszczalne wartości:
najlepsza
domyślna wartość wczytująca cechę oznaczoną jako „preferowana” albo zbiór cech oznaczonych jako „zwykła”
preferowana lub zwykła
zbiór cech oznaczonych zgodnie z opisem
dowolna
cecha oznaczona jako „preferowana”, albo zbiór cech oznaczonych jako „zwykła”, albo zbiór cech oznaczonych inaczej
preferowana
cecha oznaczona zgodnie z opisem
zwykła
zbiór cech oznaczonych zgodnie z opisem
przestarzała
zbiór cech oznaczonych zgodnie z opisem
wszystkie
zbiór wszystkich dostępnych cech
P518 Filtr kwalifikatora „odnosi się do części Lista akceptowanych wartości w formacie QNNN. Dopuszczalne są też wartości specjalne novalue, somevalue i missing. Elementy należy oddzielać spacją.
P548 Filtr kwalifikatora „rodzaj wersji Lista akceptowanych wartości w formacie QNNN. Filtr jest używany przez szablon {{wersja oprogramowania}}. Przykład: P548=Q2122918 Q3295609.
P580 Filtr kwalifikatora „od Zbiór z wartości missing, after lub before.
P582 Filtr kwalifikatora „do Zbiór z wartości missing, after lub before.
P625 Filtr kwalifikatora „współrzędne geograficzne Wartość globe oznacza, że wymagana jest obecność kwalifikatora z jakimikolwiek współrzędnymi.
TYP Filtr typu wartości cechy Zbiór z wartości value, novalue lub somevalue. Pozwala na filtrowanie względem rzeczywistej wartości, braku wartości lub nieznanej wartości.
format sposób formatowania wyniku inny niż domyślny zobacz Moduł:Wikidane/format

Funkcja do sprawdzenia obecności cechy.

parametry

edytuj
Pole Do czego służy? Jak wypełnić?
1 Numer cechy Np. 94 (herb) lub 395 (tablice rejestracyjne).
id Opcjonalny identyfikator danych z Wikidanych. Domyślnie odczytywane są cechy z danych powiązanych z bieżącą stroną. Np. Q42.
ranga Filtr cech względem rangi Dopuszczalne wartości:
najlepsza
domyślna wartość wczytująca cechę oznaczoną jako „preferowana” albo zbiór cech oznaczonych jako „zwykła”
preferowana lub zwykła
zbiór cech oznaczonych zgodnie z opisem
dowolna
cecha oznaczona jako „preferowana”, albo zbiór cech oznaczonych jako „zwykła”, albo zbiór cech oznaczonych inaczej
preferowana
cecha oznaczona zgodnie z opisem
zwykła
zbiór cech oznaczonych zgodnie z opisem
przestarzała
zbiór cech oznaczonych zgodnie z opisem
wszystkie
zbiór wszystkich dostępnych cech
P518 Filtr kwalifikatora „odnosi się do części Lista akceptowanych wartości Qnnn. Dopuszczalne są też wartości specjalne novalue, somevalue i missing. Elementy należy oddzielać znakiem odstępu.
P548 Filtr kwalifikatora „rodzaj wersji Lista akceptowanych wartości Qnnn. Filtr jest używany przez szablon {{wersja oprogramowania}}.
P580 Filtr kwalifikatora „od Zbiór z wartości missing, after lub before.
P582 Filtr kwalifikatora „do Zbiór z wartości missing, after lub before.
P625 Filtr kwalifikatora „współrzędne geograficzne Wartość globe oznacza, że wymagana jest obecność kwalifikatora z jakimikolwiek współrzędnymi.
TYP Filtr typu wartości cechy Zbiór z wartości value, novalue lub somevalue. Pozwala na filtrowanie względem rzeczywistej wartości, braku wartości lub nieznanej wartości.

etykieta

edytuj

Funkcja do nazwy elementu (domyślnie z bieżącej strony). Jeśli nazwa nie istnieje to zwracana jest nazwa strony bez prefiksów.

parametry

edytuj
Pole Do czego służy?
1..N Kod języka, w którym nazwę chcemy uzyskać. Jeśli podane jest więcej kodów niż jeden (w kolejnych parametrach) to zwracana jest pierwsza znaleziona nazwa. Brak parametrów oznacza domyślnie wybór nazwy w języku polskim.
id Opcjonalny identyfikator danych z Wikidanych. Domyślnie odczytywane są cechy z danych powiązanych z bieżącą stroną.

Funkcja do odczytu identyfikatora strony na wikidanych.

parametry

edytuj
Pole Do czego służy?
1 Opcjonalny tytuł strony. Domyślnie brana jest strona bieżąca.
idwiki Globalny identyfikator danej wiki. Domyślnie ta wartość jest ustawiona na lokalną wiki.

Funkcja do odczytu nazwy elementu w Wikidanych.

parametry

edytuj
Pole Do czego służy?
1 Identyfikator elementu w Wikidanych. Identyfikator musi się zaczynać na P lub Q, po których następuje ciąg cyfr dziesiętnych.

Funkcja do odczytu nazwy strony na Wikipedii.

parametry

edytuj
Pole Do czego służy?
1 Identyfikator elementu w Wikidanych. Identyfikator musi się zaczynać na P lub Q, po których następuje ciąg cyfr dziesiętnych.
site Opcjonalny identyfikator wiki, z której nazwę strony chcemy czytać.

V i Dump

edytuj

Funkcje techniczne do odczytu dowolnej gałęzi lub liścia z drzewa danych. V zwraca wartość liścia, jeśli istnieje. Dump robi zrzut diagnostyczny wybranej gałęzi.

parametry

edytuj
Pole Do czego służy?
1..N Nazwa lub indeks coraz bardziej zagnieżdżonej gałęzi danych. Interesujące identyfikatory dla pierwszego poziomu to:
  • id z identyfikatorem Qid
  • claims ze zbiorem cech
  • labels ze zbiorem etykiet w różnych językach
  • sitelinks z interwiki i „medalami”
  • bestclaims ze zbiorem odfiltrowanych cech, który można zawęzić parametrami opisanymi w funkcji P
id Opcjonalny identyfikator danych z Wikidanych. Domyślnie odczytywane są cechy z danych powiązanych z bieżącą stroną.

przykłady

edytuj
  • {{#invoke:Wikidane|V|sitelinks|plwikivoyage|title}} – tytuł strony w Wikipodróżach
  • {{#invoke:Wikidane|V|sitelinks|commonswiki|title}} – tytuł strony w repozytorium multimediów
  • {{#invoke:Wikidane|V|bestclaims|P18|1|mainsnak|datavalue|value}} – nazwa pierwszego pliku z ilustracją w repozytorium multimediów
  • {{#invoke:Wikidane|V|bestclaims|P625|1|mainsnak|datavalue|value|latitude}} – szerokość geograficzna z pierwszych dostępnych współrzędnych
  • {{#invoke:Wikidane|V|bestclaims|P159|P625=globe|1|qualifiers|P625|1|datavalue|value|latitude}} – szerokość geograficzna z pierwszych dostępnych współrzędnych podanych jako kwalifikator dla siedziby przedsiębiorstwa

Błędy

edytuj
Błędy należy zgłaszać na stronie Wikipedia:Kawiarenka/Kwestie techniczne.
local moduleData = mw.loadData("Module:Wikidane/data")

local function loadArg(frame,id)
	local result = frame.args[id]
	if not result or (#result == 0) then
		result = frame.getParent and frame:getParent().args[id] or nil;
		if not result or (#result == 0) then
			return nil
		end
	end
 
	return result
end

local function getEntityData(frame)
	local qid = loadArg(frame, "id")
	local data = mw.wikibase.getEntity(qid)
	if not data then
		return
	end

	local f = frame.args[1] and frame or frame:getParent()
	local i = 1
	if f.args[1] == "bestclaims" then
		local pid = f.args[2]
		if not pid then
			return f, {}, 2
		end
		
		local sd = require("Module:Wikidane/select")
		local _, qid, prop = sd.selectProperty(pid, sd.prepareFilters(frame), qid, sd.prepareSnakFilter(frame))
		if not qid then
			return nil
		end
		
		data = prop
		i = 3
	end

	return f, data, i
end

return {

	T = function(frame)
		local qid = loadArg(frame, "id")
		local pid = loadArg(frame, 1)
		if not pid then
			return moduleData.errorMissingPropertyId
		end
		
		local sd = require("Module:Wikidane/select")
		local pid, qid, prop = sd.selectProperty(pid, sd.prepareFilters(frame), qid, false, loadArg(frame, "ranga"), sd.prepareSnakFilter(frame) )
		if qid then
			return #prop
		end
	end,
	
	P = function(frame)
		local qid = loadArg(frame, "id")
		local pid = loadArg(frame, 1)
		if not pid then
			return moduleData.errorMissingPropertyId
		end
		
		local sd = require("Module:Wikidane/select")
		local pid, qid, prop = sd.selectProperty(pid, sd.prepareFilters(frame), qid, tonumber(loadArg(frame, "ile")), loadArg(frame, "ranga"), sd.prepareSnakFilter(frame))
		if qid then
			return require("Moduł:Wikidane/format").run(frame, pid, prop)
		end
	end,
	
	etykieta = function(frame)
		local qid = loadArg(frame, "id")
		local entity = mw.wikibase.getEntity(qid)
		if entity then
			local i = 1
			local lang = true
			while lang do
				lang = frame.args[i]
				local result = entity:getLabel(lang)
				if result and (#result > 0) then
					return result
				end
				
				i = i + 1
			end
		end
	
		return mw.title.getCurrentTitle().text .. moduleData.itemWithoutLabelCat
	end,

	id = function(frame)
	    local title = loadArg(frame, 1)
		if(title)then
			return mw.wikibase.getEntityIdForTitle(mw.getContentLanguage():ucfirst(title), loadArg(frame, "idwiki") or mw.wikibase.getGlobalSiteId())
		else
			return mw.wikibase.getEntityIdForCurrentPage()
		end;
	end,
	
	label = function(frame)
		local id = loadArg(frame, 1)
		if id and string.match(id, "^[PQ]%d+$") then
			return mw.wikibase.getLabel(id)
		end
	end,
	
	page = function(frame)
		local id = loadArg(frame, 1)
		if id then
			return mw.wikibase.getSitelink(id, loadArg(frame, "site"))
		else
			return nil
		end
	end,

	V = function(frame)
		local f, data, i = getEntityData(frame)
		if not data then
			return nil
		end

		while true do
			local index = f.args[i]
			if not index then
				return tostring(data)
			end

			data = data[index] or data[tonumber(index)]
			if not data then
				return
			end

			i = i + 1
		end
	end,

	Dump = function(frame)
		local f, data, i = getEntityData(frame)
		if not data then
			return moduleData.warnDump
		end

		while true do
			local index = f.args[i]
			if not index then
				return "<pre>"..mw.dumpObject(data).."</pre>"..moduleData.warnDump
			end

			data = data[index] or data[tonumber(index)]
			if not data then
				return moduleData.warnDump
			end

			i = i + 1
		end
	end,
}