Aller au contenu

Module:Harvapbrouillon

Une page de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 26 mars 2024 à 14:46 et modifiée en dernier par N25KC (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

 Documentation[créer] [purger]
-- brouillon
-- brouillon
-- brouillon
local p = {}
--
--
local function _coulerr (objet)	 -- rouge
	local objet ='<span style="color:#d00000;">' .. objet .. '</span>'
  return objet
end	--fin _coulerr
--
local function _coulok (objet)	 -- vert
	local objet ='<span style="color:#00A030;">' .. objet .. '</span>'
  return objet
end	--fin _coulok
--
local function _xist(objet)	-->	transforme localement un objet "qui n'existe pas" nil &  '' (taille 0) en valeur " "
	if (tostring(objet) ~= nil and #tostring(objet) > 0 ) then	return objet else return " "	end
end	--fin _xist

--
--   élaboration du clicbleu test de la date
--
local function _clicbleu (texteaf, toggle, p1val, p2val, p3val, p4val, p5val)	 -- ébauche de fonction appelée 
    local nb_erreurs = 0 -- au brouillon dates à tester si ce sont des nombres
	local toggle = toggle --mesparams sont transmis depuis l'appel
    if (texteaf ~= "") then texteaf = texteaf
      else
      		if (toggle == "5")  then 
      			if (type(p5val) ~= 'number') then nb_erreurs = nb_erreurs + 1 else
      			texteaf = p1val.." ''& al.'' "..p5val
      			end
      		end
	        if (toggle == "4") then
      			if (type(p4val) ~= 'number') then nb_erreurs = nb_erreurs + 1 else	        	
	        	texteaf = p1val.." "..p2val.." ".." "..p3val.." et ".." "..p4val
	        	end
	        end 
	        if (toggle == "3") then
      			if (type(p3val) ~= 'number') then nb_erreurs = nb_erreurs + 1 else	        	
	        	texteaf = p1val.." et "..p2val.." "..p3val
	        	end
	        end
	        if (toggle == "2") then
      			if (type(p2val) ~= 'number') then nb_erreurs = nb_erreurs + 1 else	        	
	        	texteaf = p1val.." "..p2val
	        	end
	        end	        
    end
  return texteaf, nb_erreurs
end	--fin _mafonc
local function _syntax (mesparams,nb_erreurs,liste_erreurs, liste_opt) -- les positionnels sont abrégés des espaces avant et arrière
	local renvoi = ""
	local trim = ""	
	local liste_erreurs = ""
-- récupérer d'abord iden et texte pour l'ancre Harvard
    local liste_par_nom = ""
    local liste_optaf = ""
	local clicbleu = ""
--	local iden = ""
--	local texteaf = ""
	for ind, parval in pairs(mesparams.args) do --tous les params positionnels et nommés
		if (type(ind) ~= 'number') then -- que les nommés
            liste_par_nom = liste_par_nom.."{{,}}"..ind.."="..parval--liste indicative envoyée à la fin
--          test nom paramètres nommés
            if    not ((ind == "texte") 
               or (ind == "id")
               or (ind == "p") or (ind == "pp")
               or (ind == "loc")
               or (ind == "ps")
               or (ind == "gr") or (ind == "group") or (ind == "groupe") 
               or (ind == "dpar"))
              then 
              	-- sous else
 --               	repporter ici le chargement des nommés 
  --               	  repporter ici le chargement des nommés 
   --               	repporter ici le chargement des nommés 
            	--ok  brouillon rien chargé 
 --   	      else --aucun
         		nb_erreurs = nb_erreurs + 1 
            	liste_erreurs = liste_erreurs .."<br>;paramètre  ".." ; "..ind.." : mal nommé "
            end
        end
	end
--
--    https://fr.wikipedia.org/w/index.php?title=Module:Bac_%C3%A0_sable&diff=prev&oldid=213169114
	local toggle = 0
	local p1val = ""
	local p2val = ""
	local p3val = ""
	local p4val = ""
	local p5val = ""
--	local idx, parmval --supprimer les déclarations d'indice index
	for idx, parmval in ipairs(mesparams.args) do --paramètres non nommés
		toggle = toggle + 1
--		if toggle == 1 then p1val = parmval end
--		if toggle == 2 then p2val = parmval end
--		if toggle == 3 then p3val = parmval end
--		if toggle == 4 then p4val = parmval end
--		if toggle == 5 then p5val = parmval end	
       
        --		
		trim = mw.text.trim(parmval)
--        if (#trim ~= #parmval) then 
--        	nb_erreurs = nb_erreurs + 1 
--        	liste_erreurs = liste_erreurs .."<br>;paramètre "..idx.." prenant la valeur '"..parmval.."' : espace(s) avant arrière du paramètre"
--         else
         	clicbleu = clicbleu..parmval		
--        end
	end -- fin xtraction positionnels
    if (toggle > 5) then  
        nb_erreurs = nb_erreurs + 1 
--KO parmval null        liste_erreurs = liste_erreurs .."<br>;paramètre "..idx.." prenant la valeur '"..parmval.."' : paramètre en trop" 
    end

-- brouillon clicbleu = p1val..p2val..p3val..p4val..p5val.." valeur du toggle :"..toggle --Brouillon
--en attendant suivant toggle	_clicbleu mis en forme
-- 
	--
	--constitution de référence affichée en détail
	--
	local paf = ""
	local locaf = ""
	local psaf = ""
	local texteaf = ""
	local iden = ""
	local graf = ""
	for ind, parval in pairs(mesparams.args) do --tous les params
		if (type(ind) ~= 'number') then 
--            constitution liste_opt 
            if (ind == "p") or (ind == "pp" ) then paf = ", p. "..parval end
            if (ind == "loc") then locaf = ", "..parval end
            if (ind == "ps") then psaf = ", « "..parval.." »" end            
            if (ind == "texte") then texteaf = parval clicbleu=parval end 
            if (ind == "id") then iden = parval end 
            if (ind == "gr") or (ind == "group") or (ind == "groupe") then graf = parval end 
        end
	end
	if (toggle < 2) and (iden == "") then  
        	nb_erreurs = nb_erreurs + 1 
        	liste_erreurs = liste_erreurs .."<br>;manque paramètres, au moins un auteur+date sinon paramètres id et texte" end 
	if (iden ~= "" and texteaf == "") then 
		nb_erreurs = nb_erreurs + 1
		liste_erreurs = liste_erreurs .."<br>;paramètre id présent sans paramètre texte"
	end
	if (iden ~= "" and p1val ~= "") then 
		nb_erreurs = nb_erreurs + 1
		liste_erreurs = liste_erreurs .."<br>;paramètre id présent avec paramètre(s) auteur(s)+date"
	end
	liste_optaf = locaf..paf..psaf
	return nb_erreurs, liste_erreurs, liste_par_nom, liste_optaf, textaf, graf, iden, clicbleu
end --fin _syntax	
--
-- Cette fonction est accès  p.harvap_ 
--
function p.harvap_ (frame) --Cette fonction fabrique un renvoi en bas de page
        --le frame renvoyé 'table' est la récup sans traitement indexé des params du modèle
	-- (les définitions des zones de travail à portée p sont ici 
	-- en fait ce qui suit est la définition des variables pour toutes fonctions appelées
	--  par leur chargement x, y = _mafonc(params, x, y)
    local renvoi = ""
	local cat_erreurs = "North Park" --récup prov
	local liste_erreurs = ""
	local liste_opt = ""
	local texteaf = "inutile, initialisation défaut"
	local nb_erreurs = 0 -- pour l'analyseur interne
    local trax = '' --trax est le dump pour bench
    local clicbleu = "auteur-date (défaut)" --brouillon  pour test initial
    local paf = "pas p"
	local locaf = "pas loc"
	local pasaf = "pas ps"
	local texteaf = "pas texte"
	local idenaf = "pas iden"
	local graf = "pas gr"
	local iden = "pas de parms"
--	 nb_erreurs, liste_erreurs, liste_par_nom, liste_optaf, textaf, graf, iden, clicbleu = _syntax (frame, nb_erreurs)

	-- utiliser XIST?
	local argsTemplate = frame:getParent().args --parms de l'article passés au modèle appelant ce module, pour l'instant auteur-date
	local Tauteur1 = _xist(argsTemplate[1])
    local Tauteur2 = _xist(argsTemplate[2])
    local Tauteur3 = _xist(argsTemplate[3])
    local Tauteur4 = _xist(argsTemplate[4])
	local Tdate = _xist(argsTemplate[5])
	local Tpage = _xist(argsTemplate["p"])
	local Tloc = _xist(argsTemplate["loc"])
	local Tps = _xist(argsTemplate["ps"])
	local Tid = _xist(argsTemplate["id"])
	local Ttexte = _xist(argsTemplate["texte"])
	local Tgr = _xist(argsTemplate["gr"])
	local Tdpar = _xist(argsTemplate["dpar"])
--	local argsModule = frame.args --parms passés à ce module

    iden = Tauteur1..Tdate

     if (nb_erreurs ~= 0) then
        renvoi = _coulerr("nb erreurs :"..nb_erreurs.."<br> "..liste_erreurs.." <br>") --ok
      else    
      	clicbleu = Tauteur1.."space A MODIFIER "..Tdate
        local ancre = frame:preprocess("[[#"..iden.."{{!}}"..clicbleu.."]]") --ok
        renvoi = renvoi..liste_opt
        rname = "LE name"
--                                 {{ #tag:ref       |some text   |name=foo    |group=bar}}
--renvoi = frame:callParserFunction( '#tag', { 'ref', 'some text', name = 'foo', group = 'bar'} )
 	renvoi = frame:callParserFunction( '#tag', { 'ref', ancre , name = iden, group = Tgr} )
      end
	renvoi = renvoi .. Tauteur1 
    .. Tauteur2 
    .. Tauteur3 
    .. Tauteur4 
	.. Tdate 
	.. Tpage 
	.. Tloc 
	.. Tps 
	.. Tid 
	.. Ttexte 
	.. Tgr 
	.. Tdpar 
--   return frame:preprocess(renvoi)
     return (renvoi);
end --fin harvap_ 

return p