الفرق بين المراجعتين لصفحة: «وحدة:بطاقة/ويكي.بيانات»
اذهب إلى التنقل
اذهب إلى البحث
ط (تصحيح id في addLinkBack) |
(لا فرق)
|
مراجعة ٢٢:١٦، ١٠ يونيو ٢٠٢١
يمكن إنشاء صفحة توثيق الوحدة في وحدة:بطاقة/ويكي.بيانات/شرح
local infowd = {} local function WikidataCa(id,query) local wd = require("Module:Wikidata.Ca") if not query.item then query.item = id end query.shownovalue = query.shownovalue or "false" if not query.conjtype and not query.conjunction then query.conjunction = ' — ' else query.conjunction = query.conjtype or query.conjunction end if (query.conjunction == '*' and query.formatting == nil) then query.conjunction = "LF" query.separator = "LF" query.formatting = "* $1" elseif (query.conjunction == '#' and query.formatting) then query.conjunction = "LF" ; query.separator = "LF"; query.formatting = "# $1" elseif query.conjunction == 'new line' then query.conjunction = "<br />" elseif query.conjunction == 'comma' then query.conjunction = "، " elseif query.conjunction == 'and' then query.conjunction = " و" elseif query.conjunction == 'or' then query.conjunction = " أو " end query.separator = query.separator or query.conjunction query.query='num' if type(query.property) == 'table' then query.property = mw.text.listToText(query.property , ' OR ' ,' OR ') end if query.references == nil then query.references = 3 end if type(query.formatting ~='raw') then local value, number = wd.claim(query) local before = query.before or '' local after = query.after or '' if(value) then value = before .. value .. after end return value, number end return wd.claim(query) end local function WikidataFr(item,query) local wd = require("Module:Wikidata/fr") local value, number -- valeur à retourner, nombre de valeurs pour accorder le libellé if not query.entity then query.entity = item end if not query.conjtype then query.conjtype = 'comma' end local claims = wd.getClaims(query) if (not claims) then return nil end return wd.formatAndCat(query), #claims end local function Wikidata2(item,query) local wd = require('وحدة:Wikidata2') local wd2formatStatements = wd.formatStatementsFromLua local function addLinkBack(str, id, property) if id == '-' then return str -- تعطيل wikidata end if not id then id = mw.wikibase.getEntityIdForCurrentPage() end if not id then return str end if type(property) == 'table' then property = property[1] end if type(id) == 'table' then id = id.id end local class = '' if property then class = 'wd_' .. string.lower(property) end local icon = '[[File:Blue pencil.svg|%s|10px|baseline|class=noviewer|link=%s]]' local title = wd.translate('see-wikidata-value') local url = mw.uri.fullUrl('d:' .. id, '') url.fragment = property -- ajoute une #ancre si paramètre "property" défini url = tostring(url) local v = mw.html.create('span') :addClass(class) :wikitext(str) :tag('span') :addClass('noprint wikidata-linkback') :css('padding-left', '0.5em') :wikitext(icon:format(title, url)) :allDone() return tostring(v) end local function addTrackingCat(prop, cat) -- doit parfois être appelé par d'autres modules if type(prop) == 'table' then prop = prop[1] -- devrait logiquement toutes les ajouter end if not prop and not cat then return '[[Category:Error-property-param-not-provided]]' end if not cat then cat = wd.translate('trackingcat', prop or 'P??') end if mw.title.getCurrentTitle().namespace ==0 then return '[[Category:' .. cat .. ']]' else return '' end end local function formatAndCat(args) if not args then return nil end args.linkback = args.linkback or true args.addcat = true if args.value then -- do not ignore linkback and addcat, as formatStatements do if args.value == '-' then return nil end local val = args.value .. addTrackingCat(args.property) val = addLinkBack(val, args.entity, args.property) return val end return wd2formatStatements( args ) end if not query.rank then query.rank = "best" end shownovalue=false if not query.entity then query.entityId = item.id end if not query.conjtype and not query.conjunction then query.conjunction = ' — ' query.separator = query.conjunction else query.conjunction = query.conjtype query.separator = query.conjunction end if query.conjunction == 'new line' then query.conjunction = "\n" query.separator = query.conjunction elseif query.conjunction == 'comma' then query.conjunction = "، " query.separator = query.conjunction elseif query.conjunction == 'and' then query.conjunction = " و" query.separator = query.conjunction elseif query.conjunction == 'or' then query.conjunction = " أو " query.separator = query.conjunction end if query.isinlang then query.langpref = query.isinlang end local qualifiers if query.showqualifiers then if type(query.showqualifiers)=='table' then qualifiers = query.showqualifiers elseif type(query.showqualifiers)=='string' then qualifiers = mw.text.split(query.showqualifiers, ",") end if type(qualifiers)=='table' then if #qualifiers >=1 then query.qual1 = qualifiers[1] end if #qualifiers >=2 then query.qual2 = qualifiers[2] end if #qualifiers >=3 then query.qual3 = qualifiers[3] end if #qualifiers >=4 then query.qual4 = qualifiers[4] end if #qualifiers >=5 then query.qual5 = qualifiers[5] end else query.qual1 = query.qualifier end end query.preferqualifier =query.preferqualifier or query.qualifier query.justthisqual = query.justthisqual or query.showonlyqualifier query.preferqualifiervalue = query.preferqualifiervalue or query.qualifiervalue query.avoidqualifier = query.avoidqualifier or query.excludequalifier --query. = query.excludequalifiervalue query.avoidvalue = query.avoidvalue or query.excludevalues if query.urlpattern then query.pattern = query.urlpattern end if query.sorttype then query.sortbytime = query.sorttype if not query.rank then query.rank=all end end if query.showdate then query.withdate = query.showdate query.bothdates = query.showdate end if query.text and displayformat and displayformat=='weblink' then query.urllabel = query.text end if not query.numberofreferences then query.numberofreferences = 3 end if type(query.property) == 'table' then query.property = query.property[1] end local claims =wd2formatStatements(query) --wd.getClaims(query) if (not claims) then return nil end query.numberofclaims = 'y' local nbres = wd2formatStatements(query) return formatAndCat({value=claims, property = query.property, entity = item.id}),nbres end function infowd.expandQuery(item,wikimod,query) local value, number -- نتيجة ، عدد النتائج للضبط الصرفي للعنوان if(type(query) ~= 'table') then return nil end if(type(item) ~= 'table' or type(item.id)~= 'string') then return nil end -- الوحدات المستعملة if wikimod == 'Wikidata.Ca' then if(type(item) == 'table') then return WikidataCa(item.id,query) else return WikidataCa(item,query) end end if wikimod == 'Wikidata/fr' then return WikidataFr(item,query) end --- else -- wikimod == 'Wikidata2' then return Wikidata2(item,query) end return infowd