Aller au contenu

Module:Tableau MH

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 12 septembre 2013 à 23:30 et modifiée en dernier par Zebulon84 (discuter | contributions) (Nouvelle page : local Monument = { } local Outils = require( 'Module:Outils' ) local TableBuilder = require( 'Module:TableBuilder' ) -- local Coordinates = require( 'Module:Coordinates' ) appel...). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

 Documentation[voir] [modifier] [historique] [purger]

Ce modèle crée des ligne de tableau de monument historique, comme {{Ligne de tableau Monument}}.

Utilisation

Fonctions exportables :

  • noticeFrance(frame) – fait un ou des lien(s) vers la base Mérimée ou une autre base du ministère de la Culture français.

Autres fonctions :

  • colonneAvecTri() – génère une colonne avec éventuellement un data-sort-value pour qu'elle soit triée correctement.
  • colonneCoord – génère une colonne avec les coordonnées géographique. Paramètres :
    • validArg
    • region
    • nom
    • ...
  • colonneImage() – génère une colonne avec une image, ou un lien pour en téléverser une.
    • image
    • taille image
    • portrait
    • catégorie commons
    • categorie2
    • noupload
    • wikilove
    • style
    • 1

Modules externes et autres éléments dont ce module a besoin pour fonctionner :

  • Outils – Pour les fonctions extractArgs, validTextArg et trim.
  • TableBuilder – Pour la fonction minsert qui permet de simplifier l'ajout dans les tables.
  • Coordinates – Fonction _coord.
  • Delink – Permet de supprimer les liens sur les liens GeoHack et upload Commons
  • Biblio/Lien web – Affiche les notice française.
  • Yesno – Pour évaluer le paramètre portrait si taille image n'est pas défini.


local Monument = { }

local Outils = require( 'Module:Outils' )
local TableBuilder = require( 'Module:TableBuilder' )
-- local Coordinates = require( 'Module:Coordinates' )	appelè uniquement si necessaire.


Monument.ligneFrance = function ( frame )
	local args = Outils.extractArgs( frame )
	local validArg = function ( ... ) return Outils.validTextArg( args, ... ) end
	local wiki = TableBuilder.new( '|-' )
	
	-- id 
	if validArg( 'id', 'tri' ) then
		wiki.minsert( 'id="', validArg( 'id', 'tri' ), '"' )
	end
	
	-- monument
	wiki.insert( '\n|' )
	if validArg( 'tri' ) then
		wiki.minsert( 'data-sort-value="', args.tri, '"|' )
	end
	wiki.minsert( args.monument )
	
	-- département
	if validArg( 'département' ) then
		wiki.insert( '\n|' )		-- la colonne est facultative
		if validArg( 'tri département' ) then
			wiki.minsert( 'data-sort-value="', args['tri département'], '"|' )
		end
		wiki.minsert( args['département'] )
	end
	
	-- commune
	if validArg( 'commune' ) then
		wiki.insert( '\n|' )		-- la colonne est facultative
		if validArg( 'tri commune' ) then
			wiki.minsert( 'data-sort-value="', args['tri commune'], '"|' )
		end
		wiki.minsert( args.commune )
	end
	
	-- adresse
	wiki.insert( '\n|' )
	if validArg( 'tri adresse' ) then
		wiki.minsert( 'data-sort-value="', args['tri adresse'], '"|' )
	end
	wiki.minsert( args.adresse )
	
	-- coordonées
	wiki.insert( '\n|' )
	if validArg( 'latitude' ) and validArg( 'longitude' ) then
		local Coordinates = require( 'Module:Coordinates' )
		wiki.insert( Coordinates.coord{ args={ 
			args.latitude, 
			args.longitude, 
			'type:landmark_region:FR',
			format = 'dms',
			name = validArg( 'titre coordonnées', 'monument' )
		} } )
	else
		wiki.insert( 'à géolocaliser' )
	end
	
	-- notice
	wiki.insert( '\n|' )
	if validArg( 'notice' ) then
		-- boucle sur chacune des notice séparé par /
		local noticeTab = mw.text.split( args.notice, '/' )
		for i = 1, #noticeTab do
			-- adresse de {{Méta base Culture}}, il faudrait faire une fonction dédiée.
			print( i, noticeTab[i] )
			local url = 'http://www.culture.gouv.fr/public/mistral/' .. ( args.base or 'merimee' )
				.. '_fr?ACTION=CHERCHER&FIELD_1=REF&VALUE_1=' .. mw.uri.encode( noticeTab[i] )
			-- appel du modèle {{Lien web}} en attandant qu'il sa version lua.
			local lienWeb = frame:expandTemplate{ 
				title = 'Lien web', 
				args = {
					url = url,
					titre = noticeTab[i],
				}
			}
			wiki.minsert( i > 1 and '<br />', lienWeb )
		end
	end
	
	-- protection
	wiki.minsert( '\n|', args.protection )
	
	-- date
	wiki.minsert( '\n|', args.date )
	
	-- image
	wiki.insert( '\n|' )
	if validArg( 'image' ) then
		wiki.minsert( '[[Fichier:', args.image, '|' ) 
		wiki.insert( ( validArg( 'portrait' ) and 100 ) or 150  )
		wiki.minsert( '|center|alt=', validArg( 'titre coordonnées', 'monument'), ']]' )
	else
		wiki.insert( '<center style="font-size:0.9em; font-weight:bold; padding: 3px 0;">Image manquante</center>' )
	end
	
	-- WikiLove
	if args.wikiLove then
		wiki.insert( '<div style="background-color:#EFEFEF; padding: 2px; font-size: 0.8em;" class="plainlinks">' )
		wiki.insert( '[[File:Wiki Loves Monuments Logo notext.svg|x20px|left|sub|alt=Téléverser une photographie de ce monument|Téléverser une photographie de ce monument|link=WP:Wiki loves Monuments]]' )
		local query = { 
			campaign = 'wlm-fr', 
			id = args.notice, 
			descriptionlang = 'fr', 
			description = ( args.monument or '' ) .. ' (' .. ( args.protection or '' ) ..')',
			lat = args.latitude,
			lon = args.longitude,
			categories = args.commune
		}
		wiki.minsert( '[', mw.uri.fullUrl( 'commons:Special:UploadWizard', query ), ' Proposez votre photo]</div>' )
	end
	
	return wiki.concat()
end



return Monument