وحدة:Identifiers
اذهب إلى التنقل
اذهب إلى البحث
local p = {} local wd = require('Module:Wikidata2').formatStatementsFromLua local wd2 = require('Module:Wikidata2').formatEntityId local Navbox = require('Module:Navbox') local Uses_Wikidata = require('Module:Uses_Wikidata')._usestable local props ={ --'P685' } local props2 ={ --'P685' } local propslabel ={ --['P685'] = 'NCBI' } local patterns ={ --['P2752'] = '[http://www.nzor.org.nz/names/$1 NZOR ID]' , } local url_labels ={ --['P1421'] = 'GRIN Taxonomy ID' } local i8 = { ["tracking"]='[[تصنيف:معرفات الأصنوفة]]', ["without"]= "[[تصنيف:معرفات الأصنوفة غير موجودة]]", ["g1"]= '[[d:Wikidata:WikiProject_Taxonomy|معرفات الأصنوفة]]', ["g2"]= '', ["name"]= 'Taxonomy bar', } function make_link( label, link ) if link then if label then --return '* ' .. label .. ': <span class="uid">' .. link .. '</span>\n' return '* <span style="font-style: italic;"><b>' .. label .. '</b></span>: ' .. link .. '\n' else return "* " .. link .. "\n" end else end end function P1629(property) local la = propslabel[property] or labelIn('en', property ) local text = wd({property = 'P1629', nolink = '', entityId = property, firstvalue= 'true', noref = 'true',enlabelcate ='true' , label = (la or '') , separator= ", ", conjunction= ", "}) if not text or text == '' then text = la end if text then return text end end function labelIn(langcode,id) -- returns item label for a given language local langcode = langcode --or 'ar' local label, lange = mw.wikibase.getLabelWithLang( id ) if lange == langcode then return label --else --return "" --return str end --[[local entity = mw.wikibase.getEntityObject(id) if entity and entity.labels and entity.labels[''..langcode..''] and entity.labels[''..langcode..''].value then local lang = entity.labels[''..langcode..''] if lang['language'] == langcode then return entity.labels[''..langcode..''].value else return nil end end ]] end function doo( prop, entityclaims, args , taxo ) pa, pattern, urllabel = '', nil, nil if args.noref then ref = '' else ref = '' end if args.noquall and args.noquall ~='' then quall = '' else quall = 't' end --pa = labelIn('en' ,prop ) pa = P1629(prop ) --paa = mw.wikibase.label( prop ) --wd2(prop, {nolink = 'true',enlabelcate ='t'}).value -- pe = wd({property = 'P1629', entityId = prop , firstvalue= 'true', noref = 'true', label = wd2(prop, {nolink = 'true'}).value}) if patterns[prop] then pattern = patterns[prop] pa = nil end if url_labels[prop] then urllabel = patterns[prop] pa = nil end po = wd( {property = prop, urllabel=urllabel or '' ,pattern =pattern or 'autourl2', stringpattern = pattern or "",addTrackingCat ='t',noicon='t', separator= ", ", conjunction= ", " }, entityclaims ) --formatStatement( statement, args ) if po and po ~='' then vaa = make_link(pa,po) end return vaa end function barexternal( entity, args , Table ) local external = {} for i, ss in pairs( entity.claims ) do finns = true for k, l in pairs(Table) do if i == l then finns = false end end if not finns then local entity1 = mw.wikibase.getEntityObject( i ) --if entity1.datatype == 'external-id' --then if args[1] and args[1] ~= '' then if i == args[1] then vaa = doo( i, entity.claims, args ) else vaa = '' end else vaa = doo( i, entity.claims, args ) end table.insert( external, vaa ) end --end end final = table.concat(external) if #final ~= 0 then final = final .. i8.tracking end return final end function taxStatement( options ) local bar2 = "" local id = options.entityId or options.id or options['صفحة'] if id and id ~= '' then entity = mw.wikibase.getEntityObject( id ) else entity = mw.wikibase.getEntityObject() end if not entity then return '' end --TODO error? if not entity.claims then return '' end local bar = barexternal( entity, options , props ) or '' if props2 and props2 ~= {} then bar2 = barexternal( entity, options , props2 ) or '' end local params = { name = i8.name , bodyclass = 'hlist', list1style = 'text-align:left;', list2style = 'text-align:left;', group1 = i8.g1 , group2 = i8.g2 } if (bar and bar ~='') or (bar2 and bar2 ~= "") then if bar and bar ~= "" then if options.list and options.list ~= '' then bar = bar .. options.list end params.list1 = bar end if bar2 and bar2 ~= "" then params.list2 = bar2 end fi = Navbox._navbox( params ) else fi = i8.without end return fi end function p.t( frame ) local args = frame.args return taxStatement( args ) end function p.Statement_from_lua( options , t ) i8 = t.I8 props = t.Props url_labels = t.Url_labels if t.props2 then props2 = t.props2 end patterns = t.Patterns propslabel = t.Propslabel return taxStatement( options ) end function p.make_list2( props ) local list = mw.html.create("table") list:addClass("wikitable sortable collapsible") local head = list:tag("tr") head:tag("th"):wikitext("الخاصية") head:tag("th"):wikitext("الاسم بالإنجليزية") head:tag("th"):wikitext("الموضوع") for v, o in pairs(props) do local va = P1629( o ) --local va = wd({property = 'P1629', entityId = o, firstvalue= 'true', noref = 'true'}) local row = list:tag("tr") local rr = row:tag("td") local rrr = row:tag("td") local rrrr = row:tag("td") local yu = labelIn('ar', o ) or labelIn('en', o ) or "" rr:tag("span"):wikitext( '[[d:Property:' .. o .. '|' .. '(' .. o .. ') ' .. yu .. ']]' ) rrr:tag("span"):wikitext( propslabel[o] or labelIn('en', o ) ) rrrr:tag("span"):wikitext( va ) end return list end function p.make_list( props ) props.newtrak = "s" props["newtrak"] = "s" return Uses_Wikidata(props) end function p.list( frame ) return p.make_list( props ) end return p