مۆدیوول:پێکهاتەی ویکیدراوە/هەڵبژاردنەکان

لە ئینسایکڵۆپیدیای ئازادی ویکیپیدیاوە
بەڵگەدارکردنی مۆدیوول[دروست بکە]
-- أدوات مشتركة لبناء قوالب infobox
local localdata = require( 'مۆدیوول:پێکهاتەی مۆدیوول/زانیارییەکان' )
local wikidata = require 'Module:Wikidata/fr'
local item = localdata.item

local p = {}

function p.title(args) --icon, style, subtitleparam, subtitlequery)
	return {
		type = 'title',
		value = function() 
			return localdata['ناو'] or localdata['ناو'] or localdata.title or localdata.name 
				or (type(localdata.item) == 'table' and type(localdata.item.id) == 'string'
				   and mw.wikibase.label(localdata.item.id) and mw.language.getContentLanguage():ucfirst( mw.wikibase.label(localdata.item.id) ) )
				or mw.title.getCurrentTitle().text
		end,
		subtitle = function() return args and localdata[args.subtitleparam] end,
		wikidatasubtitle = args and args.subtitlequery,
		icon = args and args.icon,
		style = args and args.style,
	}
end
function p.mainimage(args, defaultimage)
	if type( args ) ~= 'table' then
		args = { cat = args, defaultimage = defaultimage }
	end
	return {
		type = 'images',
		imageparameters =  {'image','وێنە','ڕەسم'},
		defaultimages = args.defaultimage,
		defaultimagelink = 'ویکیپیدیا:وێنەکان',
		sizeparameter = {'قەبارەی وێنە','قەبارەی_وێنە','پیشاندانی_وێنە'},
		uprightparameter = 'upright',
		defaultupright = args.upright,
		defaultsize = 	args.size,
		maintenancecat = args.cat or 'ئەو وتارانەی پێویستیان بە وێنەیە',
		captionparameter = {'دەق', 'دەقی_وێنە','لێدوانی وێنە','ناونیشانی وێنە','ژێرنووسی وێنە','لێدوان','caption','image_caption'},
		altparameter = args.altparameter or 'جێگری وێنە' or 'image_alt',
		defaultalt = args.alt,
		defaultimagealt = args.defaultimagealt,
		wikidata = args.wikidata or {property = 'P18'},
		numval = 1,
	}
end

function p.logo(upright)
	return {
		type = 'images',
		imageparameters =  {'لۆگۆ','logo'},
	--	defaultimage = {},
	--	maintenancecat =
		captionparameter = {'لێدوانی لۆگۆ','لێدوانی_لۆگۆ'},
		property = 'P154',
		defaultupright = upright or '0.6',
		uprightparameter = 'upright logo',
		sizeparameter = {'قەبارەی لۆگۆ','پیشاندانی_لۆگۆ'},
		numval = 1,
	}
end

function p.blason(upright)
	return {
		type = 'images',
		imageparameters =  {'blason', 'sceau'},
	--	defaultimage = {},
	--	maintenancecat =
		captionparameter =  {'légende blason', 'légende sceau'},
		property = {'P94', 'P158'},
		defaultupright = upright or '0.8',
		uprightparameter = {'upright blason', 'upright sceau'},
		sizeparameter = {'taille blason', 'taille sceau'},		
		numval = 1,
	}
end

function p.flag(upright)
	return {
		type = 'images',
		imageparameters =  {'ئاڵا','عەلەم','flag'},
	--	defaultimage = {},
	--	maintenancecat =
		captionparameter = 'لێدوانی ئاڵا',
		property = 'P41',
		defaultupright = upright or '0.6',
		uprightparameter = 'upright drapeau',
		sizeparameter = {'قەبارەی ئاڵا','flag_size'},
		numval = 1,
	}
end

function p.sign(upright)
	return {
		type = 'images',
		imageparameters =  {'بانەر'},
	--	defaultimage = {},
	--	maintenancecat =
		captionparameter = 'لێدوانی بانەر',
		property = 'P14',
		defaultupright = upright or '0.4',
		uprightparameter = 'upright signalisation',
		sizeparameter = 'قەبارەی بانەر',
		numval = 1,
	}
end

function p.icon(upright)
	return {
		type = 'images',
		imageparameters =  {'icône','icon','وێنۆچکە'},
	--	defaultimage = {},
	--	maintenancecat =
		captionparameter = {'légende icône','لێدوانی وێنۆچکە'},
		property = 'P2910',
		defaultupright = upright or '0.4',
		uprightparameter = 'upright icon',
		sizeparameter = 'icon_size',
		numval = 1,
	}
end

function p.scheme(upright)
	return {
			type = 'images',
			imageparameters =  {'خشتە','scheme'},
			captionparameter = 'لێدوانی خشتە',
			property = 'P5555',
			defaultupright = upright,
			uprightparameter = 'upright scheme',
			sizeparameter = 'قەبارەی خشتە',
			numval = 1,
		}
end

function p.bathymetricmap(upright)
	return {
		type = 'images',
		imageparameters =  {'خريطة قياس الأعماق'},
	--	defaultimage = {},
	--	maintenancecat =
		captionparameter = 'تعليق خريطة قياس الأعماق',
		property = 'P207',
		defaultupright = upright or '1',
		uprightparameter = 'upright carte bathymétrique',
		sizeparameter = 'حجم خريطة قياس الأعماق',
		numval = 1,
	}
end

-- Liens externes
function p.website(localparam) -- texte libre [http://example.org example.org] ou url seule localparam est désigne le paramètre utilisé historiquement dans le modèle pour le site web (legacy)
	return { 
		type = 'mixed'
		,label = 'وێبگە' 
		,plurallabel = 'وێبگەکان'
        ,valueStyle = { ['text-align'] = 'left', ['direction'] = 'ltr', ['font-size'] = '0.9em'}
		,wikidata = function()
				if(localdata.item == nil or localdata.item.id == nil) then return nil end
				local values, num = wikidata.formatAndCat {
					entity = localdata.item,
					displayformat = 'weblink',
					conjtype = '<br />',
					property = 'P856',
					isinlang = 'ar',
					rank = 'valid',
					excludespecial = true, -- excludespecial car il peut y avoir marqué "aucune valeur" pour le français, mais y avoir un site en anglais
					returnnumberofvalues = true,
				}
				if not values then
					values, num = wikidata.formatAndCat {
						entity = localdata.item,
						displayformat = 'weblink',
						conjtype = '<br />',
						property = 'P856',
						showlang = true,
						excludespecial = true,
						returnnumberofvalues = true,
					}
				end
				return values, num
			end
		,value = 
			function()
				local siteurl = localdata[localparam] or localdata['وێبگە'] or localdata['ماڵپەڕ'] or localdata['وێبسایت'] or localdata['url']
				local sitename = localdata['ناوی وێبگە']
				if siteurl then
					if siteurl:find("url") then
					return siteurl
				else
					return require("Module:Weblink").makelink(siteurl, sitename)
					end
				end
			end,			
	}
end

-- Son, prononciation
function p.selectSound(prop)
	-- priorité au Arabe Q13955 / français Q150
	if(localdata.item == nil or localdata.item.id == nil) then return nil end
	if wikidata.getClaims{entity = localdata.item, property = prop, qualifier = {'P407'}, qualifiervalue  = {'Q13955'} } then
		return {property = prop, qualifier = {'P407'}, qualifiervalue  = {'Q13955'} }
	end
	return {property = prop}
end

function p.prononciation()
	return {
		type		     = 'images',
		style            = {['padding-top'] = '25px'},
		defaultcaption   = 'حونجەکردن',
		captionparameter = 'لێدوانی حونجەکردن',
		value		     = 'حونجەکردن',
		defaultsize      = '280',
		wikidata         = p.selectSound('P443'),
		numval           = 1,
	}
end


function p.dimensions(default)
	local function getDimensions(args)
	    local Dimensionsfunction  = require('Module:Dimensions').main
	
		local noerr,data, nb
		noerr,data = pcall(Dimensionsfunction,args)	
		if noerr 
			then return data 
			else 
				addMaintenanceCat('مقالات بها أخطاء مصدرها وحدة بطاقة')
				mw.log("WD Query Error : "..mw.dumpObject(data))
				return '<span class="error">' .. (data) .. '</span>' 
		end
	end

	return {
		type = 'mixed'
		,label = 'دووری' 
		,value = function() 
			return localdata['دووری'] or localdata['دووری'] or localdata.dimensions or localdata.dim 
				or (type(localdata.item) == 'table' and type(localdata.item.id) == 'string'
				   and getDimensions({
				   		item=localdata.item.id
				   		,diameter = localdata.diameter or localdata['تیرە']
						,height = localdata.height or localdata['بەرزی']
						,draft = localdata.draft or localdata['قووڵیی ژێر دەریا']
						,clearance = localdata.clearance or localdata['ڕوونی']
						,width = localdata.width or  localdata.beam or localdata['پانی']
						,length = localdata.length or localdata['horizontal depth'] or localdata['درێژی']
						,span = localdata.span or localdata['مەودا']
						,thickness = localdata.thickness or localdata['ئەستووری']}) ) 
		end,
	}
end

function p.awards(params)
	return 	{type = 'row', label = 'خەڵاتەکان', value = 'خەڵاتەکان'
				, wikidata = { wikimod = 'Wikidata.Ca'
					, property='P166', tablesort='1',sorting='-1', separator='<br />'
					, qualifier='P585', qualifier2='P1686'
					, qualifier3 ='P1027',qualifier4 ='P166/P2425'
					, formatting = 'table', rowformat='* $4&nbsp;$0 $1$2$3'
					, rowsubformat1='<small>($1)</small>'
					, rowsubformat2=", کاری ''«$2»''"
					, rowsubformat3='&nbsp;لەلایەن  $3'
					, rowsubformat4='[[file:$4|30px|link=]]'
				}}
end

-- Fonctions de géolocalisation
function p.country(default)
    local coordfunctions  = require 'مۆدیوول:پێکهاتەی ویکیدراوە/هەڵبژاردنەکان/شوێنی جوگرافی'
	return coordfunctions.country(default)	
end

function p.geoloc(params)
    local coordfunctions  = require 'مۆدیوول:پێکهاتەی ویکیدراوە/هەڵبژاردنەکان/شوێنی جوگرافی'
	return coordfunctions.geoloc(params)	
end

function p.coordinates(params)
    local coordfunctions  = require 'مۆدیوول:پێکهاتەی ویکیدراوە/هەڵبژاردنەکان/شوێنی جوگرافی'
	return coordfunctions.coordinates(params)
end

function p.locationmap(params)
    local coordfunctions  = require 'مۆدیوول:پێکهاتەی ویکیدراوە/هەڵبژاردنەکان/شوێنی جوگرافی'
	return coordfunctions.locationmap(params)	
end

return p