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:WikidataTree

bullvar_katip

Administrator
Katılım
21 Mayıs 2024
Mesajlar
532,105
local p = {} local function getEntityFromId( id ) if id and id ~= then return mw.wikibase.getEntity( id ); end return mw.wikibase.getEntity; end function p.formatEntityId( entityId, options ) local label = nil if ( options and options.text and options.text ~= ) then label = options.text else label = mw.wikibase.label( entityId ) end local link = mw.wikibase.sitelink( entityId ) if link then if label then return .. label .. else return .. link .. end end if label then -- красная ссылка if not mw.title.new( label ).exists then return options.frame:expandTemplate{ title = 'tərcüməsiz 5', args = { label, , 'd', entityId } } end -- одноимённая статья уже существует - выводится текст и ссылка на ВД return end -- not good, but better than nothing return .. entityId .. .. -- .. categoryLinksToEntitiesWithMissingLabel end local function selectClaims( entity, propertySelector ) if ( not entity ) then error( 'entity is missing' ) end if ( not propertySelector ) then error( 'propertySelector not specified' ) end local WDS = require( 'Module:WikidataSelectors' ) local result = WDS.filter( entity.claims, propertySelector ) if ( not result or #result == 0 ) then return nil end return result end local function selectFirstClaim( entity, propertySelector ) local claims = selectClaims( entity, propertySelector ) if ( claims == nil ) then return nil end for i, claim in ipairs( claims ) do return claim end return nil end local function getProperty( frame, args ) local Wikidata = require( 'Module:Wikidata2' ) frame.args = args frame.args.references = 'false' return Wikidata.formatProperty( frame ) end local function itemString( frame, entityId, formatEntityId ) return formatEntityId( entityId, { frame = frame } ) end function p.parentTree( frame ) local entity = getEntityFromId( frame.args.from ); if not entity then return ; end local entityId = entity.id; local list = {}; local level = 1; local parentProperty = 'P279'; if frame.args.parent then parentProperty = string.upper( frame.args.parent ); end local formatterFunction = itemString; if frame.args[ 'value-module' ] then local formatter = require( 'Module:' .. frame.args[ 'value-module' ] ); formatterFunction = formatter[ frame.args[ 'value-function' ] ]; end while ( true ) do list[ level ] = formatterFunction( frame, entityId, p.formatEntityId ); level = level + 1; entity = getEntityFromId( entityId ); parentClaim = selectFirstClaim( entity, parentProperty ); if ( not parentClaim or not parentClaim.mainsnak or not parentClaim.mainsnak.datavalue or not parentClaim.mainsnak.datavalue.value or not parentClaim.mainsnak.datavalue.value.id ) then break end entityId = parentClaim.mainsnak.datavalue.value.id end local out = local maxLevel = level local tab = frame.args[ 'tab' ] if tab and tab ~= then for level, value in pairs( list ) do out = string.rep( tab, maxLevel - level ) .. value .. '\n' .. out end else for level, value in pairs( list ) do out = value .. '\n' .. out end end local before = frame.args[ 'before' ] if before and before ~= then out = before .. out; end local after = frame.args[ 'after' ] if after and after ~= then out = out .. after; end return out 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