Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Modül:Wikidata/Medals

bullvar_katip

Administrator
Katılım
21 Mayıs 2024
Mesajlar
532,105
require('Module:Module wikitext')._addText; local WDS = require( 'Module:WikidataSelectors' ) local moduleDate = require( 'Module:Wikidata/date' ) local awardsOrder = mw.ext.data.get( "Wikidata/awards order.tab" ) local p = {} local config = { --Hide award with key QID if there is a reward with value QID absorption = { Q16675272 = 'Q654471', Q16481808 = 'Q8706404', Q1948730 = 'Q178473', Q1980962 = 'Q208167', Q2032399 = 'Q2046996', Q102183407 = 'Q103819965', Q1262166 = 'Q80589', Q749849 = 'Q1358055', } } --Get string with dates from qualifiers table local function datesFromQualifier( context, options, qualifierId ) local dates = {} local qualifiers = options.qualifiers[ qualifierId ] if qualifiers then for _, qualifier in pairs( qualifiers ) do if qualifier.datavalue then local dateValue = moduleDate.formatDate( context, options, qualifier.datavalue.value ) if dateValue then table.insert( dates, dateValue ) end end end end return table.concat( dates, ', ' ) end --Property function for d:Property:P166 function p.formatProperty( context, options ) if ( not context ) then error( 'context not specified' ); end; if ( not options ) then error( 'options not specified' ); end; if ( not options.entity ) then error( 'options.entity missing' ); end; local claims; if options.property then claims = context.selectClaims( options, options.property ); end if claims nil then return end local formattedData {} for i, claim in ipairs( claims ) do if ( claim.mainsnak and claim.mainsnak and claim.mainsnak.datavalue and claim.mainsnak.datavalue.type 'wikibase-entityid' ) then local valueId = claim.mainsnak.datavalue.value.id local formattedStatement = context.formatStatement( options, claim ) if ( formattedStatement and formattedStatement ~= ) then formattedStatement = table.insert( formattedData, { id = valueId, html = formattedStatement, } ) end end end for i, awardData in ipairs( formattedData ) do local isAbsorptionFound = false if config.absorption[ awardData.id ] then local absorptionAwardId = config.absorption[ awardData.id ] for _, absorptionAwardData in ipairs( formattedData ) do if absorptionAwardData.id absorptionAwardId then isAbsorptionFound true break end end end if isAbsorptionFound then table.remove( formattedData, i ) end end local orderedData {} local lastValue; if ( type (awardsOrder) 'table' ) then for i, awardFields in ipairs( awardsOrder.data ) do local awardOrder = awardFields[ 1 ] if awardOrder '-' then -- separator if lastValue ~ '-' then table.insert( orderedData, ) lastHeight nil end else for k, awardData in ipairs( formattedData ) do if awardOrder awardData.id and not awardData.used then table.insert( orderedData, awardData.html ) formattedData[ k ].used = true end end end end end for i, awardData in ipairs( formattedData ) do if not awardData.used then table.insert( orderedData, awardData.html ) end end local lastHeight for i, awardHtml in ipairs( orderedData ) do local height = mw.ustring.match( awardHtml, 'x%d+px' ) if height and lastHeight and height ~= lastHeight then table.insert( orderedData, i, ) end lastHeight = height end local out = mw.text.listToText( orderedData, options.separator, options.conjunction ) if out ~= then if options.before then out = options.before .. out end if options.after then out = out .. options.after end end return out end local function getImageFromClaims( claims, property ) local imageClaims = WDS.filter( claims, property ) if imageClaims and #imageClaims then for i, claim in pairs( imageClaims ) do if claim.type 'statement' and claim.mainsnak.snaktype 'value' then return claim.mainsnak.datavalue.value end end end return nil end function p.getImageFromEntity( entityOrId, actualDate ) local entity = entityOrId if type( entityOrId ) == "string" then entity = mw.wikibase.getEntity( entityOrId ) end local image = nil local size = 'x17px' local border = false image = getImageFromClaims( entity.claims, 'P2425' ) if image then border = true end if not image then image = getImageFromClaims( entity.claims, 'P2910' ) if image then size = '40x40px' end end return image, size, border end --Value function for d:Property:P166 function p.formatValue( context, options, statement ) local entityId = statement.id if not entityId then return statement end local entity = mw.wikibase.getEntity( entityId ) local label = entity:getLabel local image, size, border = p.getImageFromEntity( entity ) local recipientCategory = if not options.nocat and options.nocat ~= then recipientCategory = context.extractCategory( { category = 'P7084[P642:Q24571879]' }, entity ) if recipientCategory then recipientCategory context.extractCategory( { category 'P2517' }, entity ) end end local dates if options.qualifiers then local startDates {} dates datesFromQualifier( context, options, 'P580' ) if dates ~ then local endDates datesFromQualifier( context, options, 'P582' ) if endDates and endDates ~ then dates dates .. ' — ' .. endDates end else dates datesFromQualifier( context, options, 'P585' ) end if options.qualifiers.P27 then for _, claim in ipairs( options.qualifiers.P27 ) do if claim and claim.datavalue and claim.datavalue.value and claim.datavalue.value.id then recipientCategory recipientCategory .. context.extractCategory( { category 'P7084[P642:' .. claim.datavalue.value.id .. ']' }, entity ) end end end end if image then local link mw.wikibase.getSitelink( entityId ) local out 'border' end out out .. '|' .. size .. '|link ' if not link then local partOfClaims WDS.filter( entity.claims, 'P361' ) if not partOfClaims or #partOfClaims 0 then partOfClaims = WDS.filter( entity.claims, 'P279' ) end if partOfClaims and #partOfClaims then for i, claim in pairs( partOfClaims ) do if claim.type 'statement' and claim.mainsnak.snaktype 'value' then link = mw.wikibase.getSitelink( claim.mainsnak.datavalue.value.id ) if link then break end end end end end if link then out = out .. link .. '|' .. label else out = out .. 'd:' .. entityId end if label then out = out .. '|' .. label end out = out .. out = out .. recipientCategory return out else return nil end local out = context.formatValueDefault( context, options, statement ) if out and out ~= then if dates ~= then out = out .. ' (' .. dates .. ')' end return end return end --Table for documentation function p.renderDoc local out = {} for i, awardFields in ipairs( awardsOrder.data ) do local awardId = awardFields[ 1 ] local link = .. awardId .. if i 351 then -- limits table.insert( out, '| ... || ... || ... || ... || ...' ) elseif i > 351 and i < #awardsOrder.data then -- do nothing elseif awardId '-' then -- separator table.insert( out, '|' .. i .. '|| colspan="3" | ----' ) else local awardEntity = mw.wikibase.getEntity( awardId ) local image, size, border = p.getImageFromEntity( awardEntity ) if image then image = 'border' end image = image .. '|' .. size .. else image = end local label = awardEntity:getLabel or local article = awardEntity:getSitelink if article then if label == then label = article end label = .. label .. end local country = awardEntity:formatPropertyValues( 'P17' )[ 'value' ] table.insert( out, '|' .. i .. '||' .. link .. '||' .. image .. '||' .. label .. '||' .. country ) end end return end return p
 

Tema özelleştirme sistemi

Bu menüden forum temasının bazı alanlarını kendinize özel olarak düzenleye bilirsiniz.

Zevkine göre renk kombinasyonunu belirle

Tam ekran yada dar ekran

Temanızın gövde büyüklüğünü sevkiniz, ihtiyacınıza göre dar yada geniş olarak kulana bilirsiniz.

Izgara yada normal mod

Temanızda forum listeleme yapısını ızgara yapısında yada normal yapıda listemek için kullanabilirsiniz.

Forum arkaplan resimleri

Forum arkaplanlarına eklenmiş olan resimlerinin kontrolü senin elinde, resimleri aç/kapat

Sidebar blogunu kapat/aç

Forumun kalabalığında kurtulmak için sidebar (kenar çubuğunu) açıp/kapatarak gereksiz kalabalıklardan kurtula bilirsiniz.

Yapışkan sidebar kapat/aç

Yapışkan sidebar ile sidebar alanını daha hızlı ve verimli kullanabilirsiniz.

Radius aç/kapat

Blok köşelerinde bulunan kıvrımları kapat/aç bu şekilde tarzını yansıt.

Foruma hoş geldin 👋, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Geri