壬水是什么水| 处事不惊是什么意思| 卡替治疗是什么意思| 岁运并临是什么意思| 心跳的快是什么原因| 文替是什么意思| 反流性食管炎是什么症状| 法医是干什么的| 游车河什么意思| 劳宫穴在什么位置| 小确幸是什么意思| 木全读什么| 肝钙化灶什么意思| 宝宝手足口病吃什么药| 执业药师是干什么的| 浑身瘙痒是什么原因| 滋润是什么意思| 8月17号是什么日子| 武警是干什么的| 吃藕是什么意思| 口水多是什么原因| 丸吞是什么意思| 男性吃什么生精快| 骨皮质扭曲是什么意思啊| bmd是什么意思| 肚子疼挂什么科| 四肢百骸是什么意思| 黄毛什么意思| 晚上六点半是什么时辰| 虎毒不食子是什么意思| 最毒妇人心是什么意思| 吃什么帮助消化通便| 有对什么| 脑子瓦特了什么意思| 镇长属于什么级别| 霉菌有什么症状| 69什么意思| 6月15号是什么星座| 越五行属什么| smart是什么| 算什么男人歌词| 破相是什么意思| 枸杞加红枣泡水喝有什么功效| 脂肪瘤应该挂什么科| 美人鱼是什么动物| 日本是什么时候投降的| 嘴唇暗紫色是什么原因| 为什么做爱那么舒服| dwi是什么检查| 小孩发育迟缓是什么原因造成的| 鹞是什么意思| 阴囊湿疹是什么原因造成的| 中国国菜是什么菜| 人体缺钠会出现什么症状| 静脉穿刺是什么意思| 心脏疼痛挂什么科| 喉痹是什么意思| 肠系膜淋巴结炎吃什么药| 腋下疼痛是什么原因| 神疲乏力是什么症状| 中午12点是什么时辰| 眼睛发黑是什么原因引起的| 口是什么感觉| 属羊人佩戴什么旺自己| 护理是干什么的| 3月9日什么星座| 头热是什么原因| 什么是尿毒症啊| 眼袋浮肿是什么原因| 为什么眼皮会一直跳| 梦见谈恋爱很甜蜜是什么意思| 天津市市长是什么级别| 核载是什么意思| doris什么意思| 脸上突然长斑是什么原因引起的| 什么饮料解酒效果最好| 高铁上不能带什么东西| 提报是什么意思| 螺内酯片是什么药| 6月23日是什么节日| 河南话信球是什么意思| 月朔是什么意思| 八九不离十是什么意思| 急性胃炎吃什么食物好| 马赫是什么意思| 补充蛋白质吃什么食物| 女生排卵期有什么症状| 微博会员有什么功能| 尿道口流脓什么病| 火文念什么| 尿蛋白高不能吃什么食物| 八仙过海是什么意思| 割礼是什么| 孕妇吸氧对胎儿有什么好处| quake是什么意思| 夏天煲什么汤最好| 孕期吃什么| 一喝牛奶就拉肚子是什么原因| 宿便是什么颜色| 女真族现在是什么族| 脊椎侧弯挂什么科| 崽崽是什么意思| pms是什么意思| 厨房墙砖什么颜色好看| 肌酸激酶偏高说明什么| 炉甘石洗剂有什么作用| 映景是什么意思| mirror什么意思| 牛肉炒什么菜好吃| 结核有什么症状| 狼的天敌是什么动物| 蜗牛爱吃什么| 相濡以沫不如相忘于江湖是什么意思| 八月一日是什么日子| 西游记什么时候拍的| 缺钾吃什么食物补得最快| 眉茶属于什么茶| 阴阳失调是什么意思| 孕早期吃什么好| 84年什么命| 静脉曲张有什么表现| 月半是什么意思| 溶血性黄疸是什么原因引起的| 盆腔炎吃什么药最有效| 四面楚歌什么意思| 地贫和贫血有什么区别| 小孩感冒发烧吃什么药| ct挂号挂什么科| 降息是什么意思| 回民不吃什么| 转氨酶高对身体有什么影响| 支气管疾患是什么意思| 喝蒲公英根有什么好处| 西安属于什么省| 应收账款在贷方表示什么| 有因必有果什么意思| us检查是什么意思| 此地无银三百两什么意思| lch是什么病| 半夜醒是什么原因| 面部发红是什么原因| 豆蔻年华是什么意思| 乙肝25阳性什么意思| iv医学上什么意思| 硬度单位是什么| 渗透压是什么| mil是什么单位| 1月22号什么星座| 女人依赖男人说明什么| 绝非偶然是什么意思| 全麦粉和小麦粉的区别是什么| 错觉是什么意思| 男人断眉代表什么| 什么品种的狗最粘人| 忽什么忽什么| pola是什么牌子| 极有家是什么意思| 双侧乳腺小叶增生是什么意思| 国资委主任是什么级别| 中元节是什么节| 做全身检查挂什么科| 黄体期什么意思| 载脂蛋白b高是什么原因| 右侧卵巢内囊性回声是什么意思| 点睛之笔是什么意思| 用什么方法治牙疼| 时柱亡神是什么意思| 心律不齐用什么药| 年金是什么| 双鱼座跟什么星座最配| 刘强东开什么车| 血管很明显是什么原因| 乙肝三抗体阳性是什么意思| ldpe是什么材料| 尿液分析是检查什么| 肩周炎用什么药最好| 华妃娘娘是什么电视剧| 莲花有什么寓意| 肚脐眼上面是什么部位| 99新是什么意思| 筋膜炎用什么药| 梦见在天上飞是什么意思| 黑户是什么意思| 西瓜吃多了有什么坏处| 土豆发芽到什么程度不能吃| 为什么抽烟就想拉屎| 怀孕哭对宝宝有什么影响| 屁臭是什么原因造成的| 合胞病毒吃什么药| 花斑癣用什么药膏| 皮下男是什么意思| 水瓶后面是什么星座| 血糖在化验单上叫什么| 黑色签字笔是什么笔| 警察两杠一星是什么级别| 车什么马什么| 饮用水是什么水| 农历六月十八是什么日子| 四月十八是什么星座| 地什么人什么| 柚子不能和什么一起吃| 片仔癀是什么| 榴莲补什么| 人体是由什么组成的| 2月18什么星座| 孕晚期破水是什么症状| 结膜炎是什么| 正司级是什么级别| 吃肝补什么| 老打饱嗝是什么原因| venus是什么星球| 吃茄子有什么好处和坏处| 41岁属什么| 蜂蜜为什么不会变质| 宫颈lsil是什么意思| 四月初四是什么节日| 脑瘤有什么症状| 胎毛什么时候剃最好| 小腿肌肉抽筋是什么原因引起的| 试桩是什么意思| 足三里在什么位置图片| offer是什么| 毛戈平化妆品什么档次| 甲减和甲亢有什么区别| 来姨妈喝什么汤好| 什么是纤维化| 奔波是什么意思| 牙龈起泡是什么原因| 多发息肉是什么意思| 江苏有什么烟| 爽肤水是什么| 六神无主是什么意思| 左边肚子疼是什么原因| 花容月貌是什么意思| 什么姿势舒服| 勇敢的生肖是什么生肖| 神经衰弱什么症状| 属猴的幸运色是什么颜色| 满月是什么时候| 酒后打嗝是什么原因| 经常口腔溃疡挂什么科| 血癌是什么原因造成的| 言尽于此是什么意思| 谷丙转氨酶是检查什么| hr是什么意思医学| 补睾丸吃什么药最好| 怀孕前期有什么症状| 柴鱼是什么鱼| 10a是什么意思| 堪舆是什么意思| 17点到19点是什么时辰| 陋习什么意思| 自尊心是什么意思| 左肺上叶纤维灶是什么意思| 肾出问题了有什么症状| 眼睛白色部分叫什么| 亚硝酸钠是什么| giada是什么牌子| 男人怕冷是什么原因| 血燥吃什么药| 看喉咙挂什么科| 什么桌椅| 唐氏筛查是检查什么| 人中龙凤下一句是什么| 百度Ir al contenido

想学车的小伙伴有福音啦,将乐开始实行“计...

De Wikipedia, la enciclopedia libre
Este módulo no tiene página de documentación[crear]
百度   从昨天的看片来看,《环太平洋2》的故事发生在前作大战结束10年之后,地球再次面临庞大巨兽侵袭的危机。
local p = {}
local wikidata = require "Module:Wikidata"
local wdpath = require "Module:Wikidata/Chemin"
local langue = require "Module:Langue"
local Outils = require "Module:Outils"
local defaultMaxLang = 3

local bases = {"architecture", "art", "astronomie", "audiovisuel", "bande dessinée", "géographie", "jeu", "littérature", "mode", "musique", "organisation", "recherche", "religion", "santé", "spectacle", "sport", "tourisme", "transport", "vie publique", "vivant" }
local basesHeadername = {
	["architecture"] = "à l'architecture",
	["art"] = "aux beaux-arts",
	["astronomie"] = "à l'astronomie",
	["audiovisuel"] = "à l'audiovisuel",
	["bande dessinée"] = "à la bande dessinée",
	["géographie"] = "à la géographie",
	["jeu"] = "au jeu",
	["littérature"] = "à la littérature",
	["mode"] = "à la mode",
	["musique"] = "à la musique",
	["organisation"] = "aux organisations",
	["recherche"] = "à la recherche",
	["religion"] = "à la religion",
	["santé"] = "à la santé",
	["spectacle"] = "au spectacle",
	["sport"] = "au sport",
	["tourisme"] = "au tourisme",
	["transport"] = "au transport",
	["vie publique"] = "à la vie publique",
	["vivant"] = "au vivant"
}

--- fonctions internes ---

local function table_contains(array, value)
-- je n'ai pas trouvé de fonction table.contains. Pourrait être remplacé par Module:TableTools.inArray
	for ii,xx in pairs(array) do
		if value == xx then return true end
	end
	return false
end

local function langs(property, frame, showfr, maxLang) 
	local lang_str = "" ;
	local lang_arr = {} ;
	-- P1629 : élément de la base de la propriété d’identification ; P407 = langue de cette oeuvre ; P305 = code IETF de la langue
	-- ou alors les qualificatifs de langue de la déclaration ? format de l’url ? de l’élément de la propriété. 
	for codelang in wdpath.iterate(property, "(P1629/P407|P1630>P407)/P305") do
		local lang = codelang:snak().datavalue.value
		if not showfr and lang == "fr" then
			lang_arr = {}
			break
		elseif not table_contains(lang_arr, lang) then
			--ne pas insérer les doublons
			table.insert(lang_arr, lang)
		end
	end
	
	-- TODO : à trier par ordre de nom de langue ?? table.sort
	lang_str = table.concat(lang_arr, "+" )
	if lang_str ~= "" then
		lang_str = langue.indicationMultilingue{lang_str, maxLang = maxLang }
	end
	return lang_str
end

local function inBase(base, valueToFind)
	for _, v in ipairs(base) do
		if v[2] == valueToFind then
			return true
		end
	end
	return false
end

--- fonctions à ne pas utiliser dans l'espace encyclopédique ---

function p.contient(frame)
	local property = frame.args["propriété"] or frame.args.property
	local basesWithProperty = {}
	for _, base in ipairs(bases) do
		if inBase(require("Module:Bases/" .. base ), property) then
			table.insert(basesWithProperty, base)
		end
	end
	return table.concat(basesWithProperty, ",")
end

function p.count(frame)
	local TableTools = require('Module:TableTools')
	local name = frame.args.name
	local bases = require("Module:Bases/" .. name)
	return TableTools.size(bases)
end

function p.documentation(frame)
	local name = frame.args.name
	local headername = frame.args.headername or name
	local namebis = frame.args.namebis or headername
	local categorie = "Page pointant vers des bases relatives " .. headername
	local bases = require("Module:Bases/" .. name)
	local pagesincat = require("Module:Pagesincat")
	local complet = not (frame.args.complet and frame.args.complet == "faux")
	local restrict = frame.args.restrict
	local maxLang = frame.args.maxLang
	local lines = {}
	local linesNonFr = {}
	
	-- texte d'introduction
	table.insert(lines , "Modèle à utiliser principalement dans la section [[WP:LE|Liens externes]] d'une page. Il affiche une liste de liens vers des bases de données en lien avec " .. namebis .. " associée avec la page wikipédia dans lequel il est appelé ou à l’'''id''' spécifique appelée par le modèle. Le paramètre optionnel <code>id=</code> peut être utilisé pour désigner un élément Wikidata autre que celui de la page de Wikipédia où le modèle est employé.")
	table.insert(lines , "")
	table.insert(lines , "La liste des liens vers les bases est affichées par ordre alphabétique. Les liens vers des bases francophones sont placés en premier.")
	table.insert(lines , "")
	table.insert(lines , "La liste est générée automatiquement à partir des données de l'élément Wikidata relié à la page ou à l’'''id''' spécifique appelée par le modèle.")
	table.insert(lines , "")
	table.insert(lines , "")
	table.insert(lines , "Les liens affichables par la base  " .. name .. " sont chacune des '''propriétés''' du tableau. Le '''sujet''' de ces bases est le lien vers la page wikipédia associée à cette base, ou par défaut d'un wiki d'une autre langue quand il existe. Le modèle ciblent l'élément dans la base de données depuis l’'''url''' de la bases dont le contenu est rédigé dans une ou plusieurs '''langues'''.")
	table.insert(lines , "")
	table.insert(lines , "Tout ajout ou suppression de liens dans la base doit passer par [[Wikipédia:Ateliers Bases]].")
	table.insert(lines , "")
	table.insert(lines , "L'édition du module se fait à la page [[Module:Bases/" .. name .."]].")
	table.insert(lines , "")
	table.insert(lines , "")
	table.insert(lines , "Les pages utilisant le modèle tombent dans la catégorie [[:Catégorie:" .. categorie .. "|" .. categorie .. "]], qui contient actuellement " .. pagesincat.pagesincat{categorie, type='pages', mise_en_forme='oui'} .. " pages.")
	table.insert(lines , "")

	table.insert(lines , '{| class="wikitable"')
	table.insert(lines , '|-')
	table.insert(lines , '! Propriété')
	table.insert(lines , '! Sujet')
	table.insert(lines , '! Libellé')
	table.insert(lines , '! URL')
	table.insert(lines , '! Langue')
	
	for i, base in pairs(bases) do
		local texte = base[1]
		
		local found
		if restrict ~= nil then
			local rawtext = texte
			if type( rawtext ) == 'table' then
				rawtext = rawtext[1]
			end
			local firstletter = string.sub(rawtext , 1, 1)

			if firstletter == "'" then
				firstletter = string.sub(rawtext , 3, 3)
			end
			found = string.find(restrict, string.upper(firstletter))
		end
		
		if restrict == nil or found ~= nil then
			if type( texte ) == 'table' then
				texte = langue.langue{texte[2], texte = texte[1]}
			end
			local propertie = string.sub(base[2], 2)
			
			local val = base[2]
	 		if complet then
				val = frame:expandTemplate{title='WD P', args = {propertie,'pages'} }
			else
				val = '[[d:P:' .. base[2] .. '|' .. base[2] ..' <small>(?&nbsp;' .. wikidata.getLabel(base[2]) .. '&nbsp;?)</small>]] &nbsp;→&nbsp; <small>[[:Catégorie:Page utilisant ' .. base[2] ..'|catégorie]]</small>'
			end
			
			local lang_str = langs and langs(base[2], frame, true, maxLang)
			local subject = wikidata.formatStatements{entity = base[2], property = 'P1629'} or ''
			
			if string.find(lang_str, "fr") ~= nil then
				table.insert(lines , '|-')
				table.insert(lines , '| ' .. val)
				table.insert(lines , '| ' .. subject)
				table.insert(lines , '| ' .. texte)
				table.insert(lines , '| ' .. base[3])
				table.insert(lines , '| ' .. lang_str )
			else
				table.insert(linesNonFr , '|-')
				table.insert(linesNonFr , '| ' .. val)
				table.insert(linesNonFr , '| ' .. subject)
				table.insert(linesNonFr , '| ' .. texte)
				table.insert(linesNonFr , '| ' .. base[3])
				table.insert(linesNonFr , '| ' .. lang_str )
			end
		end
	end
	-- fusion de bases fr en 1er, puis des autres bases
	for i, v in ipairs(linesNonFr) do table.insert(lines, v) end
	table.insert(lines , '|}')
	
	return table.concat(lines, "\n" )
end



--- fonctions pour l'espace encyclopédique ---

function p.tout_comme_table(frame)
	local args = Outils.extractArgs(frame)
	
	local keysPrio = {}
	local keys = {}
	local valsPrio = {}
	local vals = {}
	local valsFinal = {}
	local tri = args["tri"] or args["trie"] or args["sort"] or "none"
	local sortBySize = tri == "taille max"
	local sortBySizeInverse = tri == "taille min"
	local sortByAlpha = tri == "alphabétique"
	
	for _, base in ipairs(bases) do
		if args[base] ~= "-" then
			local baseArgs = args
			baseArgs.noinactifcat = true
			baseArgs.name = base
			baseArgs.headername = basesHeadername[base]
			--- baseArgs.maxLang = args.maxLang
			local texte, taille, len = p.main(baseArgs, true)
			if taille then
				if args[base] then
					local key = args[base] * 100
					while valsPrio[key] do
						key = key+ 1
					end
					table.insert(keysPrio, key)
					valsPrio[key] = texte
				else
					local key = taille * 1000 + len
					while vals[key] do
						key = key + 1
					end
					table.insert(keys, key)
					vals[key] = texte
				end
			end
		end
	end
	
	table.sort(keysPrio)
	if sortByAlpha then
		-- ne rien faire
	elseif sortBySizeInverse then
		table.sort(keys)
	else -- par défaut : if sortBySize then
		table.sort(keys, function(a,b) return a>b end)
	end
	
	for _, k in ipairs(keysPrio) do table.insert(valsFinal, valsPrio[k]) end
	for _, k in ipairs(keys) do table.insert(valsFinal, vals[k]) end
	
	return valsFinal
end


function p.tout(frame)
	local valsFinal = p.tout_comme_table(frame)

	local rendu = table.concat(valsFinal, "\n*")
	if rendu == "" and mw.title.getCurrentTitle().namespace == 0 and not frame:getParent().args.nocat then
		return "[[Catégorie:Page utilisant un modèle Bases inactif]]"
	end
	
	-- TODO : surveiller [[phab:T280260]], et lorsque le bug sera corrigé, défaire [[Spécial:Diff/181960530]]
	-- discussion : [[Discussion Projet:Bases#Petite régression d'affichage : ligne à puce parasite]]
	
	return rendu
end

function p.main(frame , returnSize)
	local args = Outils.extractArgs(frame)

	-- Récupération des paramètres, soit ceux passés par le modèle,
	-- soit ceux passés au modèle
	local id = Outils.validTextArg(args , 'id', 'wikidata', 'entity', 1)
	local name = args.name
	local headername = args.headername
	local noarchive = args.noarchive
	local nocat = args.nocat or mw.title.getCurrentTitle().namespace ~= 0
	local noinactifcat = nocat or args.noinactifcat
	local maxLang = args.maxLang or defaultMaxLang
	local len = 0
	
	-- Chargement des données de la base souhaitée
	local bases = require("Module:Bases/" .. name)

	-- Récupération des propriétés wikidata de l'entité sélectionné
	local entityId = id or mw.wikibase.getEntityIdForCurrentPage() or ''
	if not (mw.wikibase.isValidEntityId(entityId) and mw.wikibase.entityExists(entityId)) then
		if noinactifcat then
			return ""
		else
			return "[[Catégorie:Page utilisant le modèle Bases " .. name .. " inactif]]"
		end
	end
	
	-- Pour chaque base dans notre liste, on vérifie si notre entité la possède
	-- si c'est le cas, on formate et ajoute un lien vers elle dans une liste
	local vals = {}
	local valsNonFr = {}
	for i, base in pairs(bases) do
		-- Pour gérer les cas comme sur Module:Bases/art où des tables sont dans
		-- des tables => langue du titre de la base pour l'accessibilité
		local nom
		local texte
		if type( base[1] ) == 'table' then
			nom = base[1][1]
			texte = langue.langue{ base[1][2], texte = base[1][1] }
		else
			nom = base[1]
			texte = base[1]
		end
		
		local val
		local value = args[nom] or args[base[2]]
		if value ~= "-" then
			if value then
				val = wikidata.getDataValue({snaktype = 'value', datatype = 'external-id', datavalue = {value = value } }, {urlpattern = base[3], text = texte})
			else
				val = wikidata.formatStatements{entity = entityId, text = texte, property = base[2], urlpattern = base[3], numval = 1, addcat = not nocat, qualifier = 'P407', qualifiervalue = 'Q150'} or wikidata.formatStatements{entity = entityId, text = texte, property = base[2], urlpattern = base[3], numval = 1, addcat = not nocat}
			end
		end
		
		if val then
			local lang_str = langs and langs(base[2], frame, false, maxLang)

			if lang_str ~= "" then
				table.insert(valsNonFr, lang_str .. "&nbsp;" .. val)
			else
				table.insert(vals, val)
			end
			if returnSize then
				len = len + string.len(nom)
			end
		end
	end
	-- fusion de bases fr en 1er, puis des autres bases
	for i, v in ipairs(valsNonFr) do table.insert(vals, v) end
	
	-- On catégorise si l'entité ne possède aucune des bases listés
	if #vals == 0 then
		if noinactifcat then
			return ""
		else
		 	return "[[Catégorie:Page utilisant le modèle Bases " ..  name .. " inactif]]"
		end
	end
	
	-- Ajout du label si l'id wikidata a été précisé manuellement
	local entityInfo = ''
	if id then
		local label = mw.wikibase.getLabel(entityId)
		local link = wikidata.siteLink(entityId)
		if label then
			if link then
				entityInfo = ' (pour [[' .. link .. '|' .. label  .. ']])'
			else
				entityInfo = ' (pour ' .. label  .. ')'
			end
		elseif link then
			entityInfo = ' (pour [[' .. link .. ']])'
		end
	end

	-- Concaténation des liens et formatage final
	local header = ''
	if #vals > 1 then
		header = "Ressources relatives " .. headername .. entityInfo
	else
		header = "Ressource relative " .. headername .. entityInfo
	end
	local title = wikidata.addLinkBack(header, entityId, 'identifiers')

	-- Ajout des catégories qui vont bien
	local categories = '' 
	if not nocat then
		categories = "[[Catégorie:Page pointant vers des bases externes]] [[Catégorie:Page pointant vers des bases relatives " .. headername .. "]]"
	end

	local elementsHtml = mw.html.create('span')
		:addClass('liste-horizontale')
		:addClass(noarchive and 'noarchive' or nil)
		:wikitext(title .. ' : ')
		:tag('ul')
	for _, val in ipairs(vals) do
		elementsHtml:tag('li'):wikitext(val):done():wikitext(' ')
	end

	if returnSize then
		len = len + string.len(header)
		return tostring(elementsHtml:allDone()) .. categories, #vals, len
	else
		return tostring(elementsHtml:allDone()) .. categories
	end
end

return p
阴茎中途疲软吃什么药 葡萄糖偏低是什么意思 长期喝什么水可以美白 老人脚浮肿是什么原因引起的 严重失眠吃什么药管用
什么是管状腺瘤 高血压吃什么药好 畏寒是什么意思 幽门螺旋杆菌什么症状 木槿花的花语是什么
波推飞机什么意思 脸肿挂什么科 十一月份出生的是什么星座 安五行属性是什么 逍遥丸配什么治失眠
畸胎瘤是什么病 女人物质是什么意思 梦见蛇是什么预兆 fw什么意思 吃什么治便秘最有效
消化快容易饿什么原因hcv7jop5ns5r.cn 苯酚是什么hcv8jop9ns7r.cn 牙齿酸是什么原因0735v.com 为什么晚上睡不着觉hcv9jop2ns5r.cn 品保是做什么的xinjiangjialails.com
睡觉口干舌燥什么原因hcv8jop6ns4r.cn 青灰色是什么颜色gangsutong.com 捉虫是什么意思hcv9jop5ns1r.cn 心脑供血不足吃什么药效果最好hcv7jop5ns4r.cn 血友病是什么病hcv7jop7ns1r.cn
鸡蛋属于什么类食品hcv8jop7ns3r.cn 交感神经型颈椎病吃什么药hcv9jop4ns9r.cn 鬼剃头是因为什么原因引起的ff14chat.com 木薯是什么东西hcv9jop8ns2r.cn 什么是暗物质hkuteam.com
过是什么结构hcv9jop7ns0r.cn 晚上起夜尿多吃什么药hcv8jop4ns5r.cn 大枣吃多了有什么危害hcv9jop4ns5r.cn 喝什么茶不影响睡眠qingzhougame.com 什么花晚上开hcv8jop8ns5r.cn
百度