Bienvenue sur le wiki de Nuit debout, nous sommes le 3060 mars.




Module:Archives : Différence entre versions

De NuitDebout
Aller à : navigation, rechercher
m (A protégé « Module:Archives » ([Modifier=Autoriser uniquement les administrateurs] (infini) [Renommer=Autoriser uniquement les administrateurs] (infini)))
 
(9 révisions intermédiaires par 2 utilisateurs non affichées)
Ligne 51 : Ligne 51 :
  
 
function p.mois(frame)
 
function p.mois(frame)
   return periode("mois", frame)
+
   return p.periode("mois", frame)
 
end
 
end
  
 
function p.semaine(frame)
 
function p.semaine(frame)
   return periode("semaine", frame)
+
   return p.periode("semaine", frame)
 
end
 
end
  
Ligne 64 : Ligne 64 :
 
       AnneeDebut = mw.ustring.gsub(frame.args[2], "(.+)\-(.+)", "%1")
 
       AnneeDebut = mw.ustring.gsub(frame.args[2], "(.+)\-(.+)", "%1")
 
       AnneeDebut = tonumber(AnneeDebut)
 
       AnneeDebut = tonumber(AnneeDebut)
       MoisDebut = mw.ustring.gsub(frame.args[2], "(.+)\-(.+)", "%2")
+
       PeriodeDebut = mw.ustring.gsub(frame.args[2], "(.+)\-(.+)", "%2")
       MoisDebut = tonumber(MoisDebut)
+
       PeriodeDebut = tonumber(PeriodeDebut)
 
     end
 
     end
 
     if frame.args[3] ~= nil then
 
     if frame.args[3] ~= nil then
 
       AnneeFin = mw.ustring.gsub(frame.args[3], "(.+)\-(.+)", "%1")
 
       AnneeFin = mw.ustring.gsub(frame.args[3], "(.+)\-(.+)", "%1")
 
       AnneeFin = tonumber(AnneeFin)
 
       AnneeFin = tonumber(AnneeFin)
       MoisFin = mw.ustring.gsub(frame.args[3], "(.+)\-(.+)", "%2")
+
       PeriodeFin = mw.ustring.gsub(frame.args[3], "(.+)\-(.+)", "%2")
       MoisFin = tonumber(MoisFin)
+
       PeriodeFin = tonumber(PeriodeFin)
 
     end
 
     end
 
     if frame.args[4] ~= nil then
 
     if frame.args[4] ~= nil then
Ligne 95 : Ligne 95 :
 
     AnneeDebut = 2004
 
     AnneeDebut = 2004
 
   end
 
   end
   if MoisDebut == nil or MoisDebut == "" then
+
   if PeriodeDebut == nil or PeriodeDebut == "" then
     MoisDebut = 01
+
     PeriodeDebut = 01
 
   end
 
   end
 
   if AnneeFin == nil or AnneeFin == "" then
 
   if AnneeFin == nil or AnneeFin == "" then
 
     AnneeFin = tonumber(os.date("%Y"))
 
     AnneeFin = tonumber(os.date("%Y"))
 
   end
 
   end
   if MoisFin == nil or MoisFin == "" then
+
   if unite == "semaine" then
     MoisFin = tonumber(os.date("%m"))
+
    LimiteFin = tonumber(52)
 +
    PeriodeFinTemp = tonumber(os.date("%W"))
 +
  else
 +
    LimiteFin = tonumber(12)
 +
     PeriodeFinTemp = tonumber(os.date("%m"))
 
   end
 
   end
 +
  if PeriodeFin == nil or PeriodeFin == "" then PeriodeFin = PeriodeFinTemp end
  
   local ListeMois = ""
+
   local ListePeriode = ""
 
   if separateur == "||" then  
 
   if separateur == "||" then  
     ListeMois = '{| cellpadding="5" style="border:1px solid #aaaaaa; margin-top:1em; margin-bottom:0.5em" rules="all" align="center"\n|' .. "'''" .. AnneeDebut .. "'''||"
+
     ListePeriode = '{| cellpadding="5" style="border:1px solid #aaaaaa; margin-top:1em; margin-bottom:0.5em" rules="all" align="center"\n|' .. "'''" .. AnneeDebut .. "'''||"
 
   elseif separateur == "image" then
 
   elseif separateur == "image" then
     ListeMois = "<ul>"
+
     ListePeriode = "<ul>"
 
     tag1 = '<li style="float:left;margin:2px 2px 2px 8px;display:inline;">[[Image:Nuvola devices nfs mount.png|30px|link='
 
     tag1 = '<li style="float:left;margin:2px 2px 2px 8px;display:inline;">[[Image:Nuvola devices nfs mount.png|30px|link='
 
     tag2 = "]]<br/>"
 
     tag2 = "]]<br/>"
Ligne 115 : Ligne 120 :
 
   end
 
   end
 
   while AnneeDebut <= AnneeFin do
 
   while AnneeDebut <= AnneeFin do
     while MoisDebut <= 12 do
+
     while PeriodeDebut <= LimiteFin do
       if format == "nom" then
+
 
         lien = page .. "/" .. lib_date.nomDuMois(MoisDebut) .. " " .. tostring(AnneeDebut)
+
       if unite == "semaine" then
 +
         lien = page .. "/semaine " .. PeriodeDebut .. " " .. tostring(AnneeDebut)
 
         if separateur == "||" then
 
         if separateur == "||" then
           texte = lib_date.nomDuMois(MoisDebut)
+
           texte = PeriodeDebut
 
         else
 
         else
           texte = lib_date.nomDuMois(MoisDebut) .. " " .. tostring(AnneeDebut)
+
           texte = PeriodeDebut .. " " .. tostring(AnneeDebut)
 
         end
 
         end
 +
 +
      elseif format == "nom" then
 +
        lien = page .. "/" .. lib_date.nomDuMois(PeriodeDebut) .. " " .. tostring(AnneeDebut)
 +
        if separateur == "||" then
 +
          texte = lib_date.nomDuMois(PeriodeDebut)
 +
        else
 +
          texte = lib_date.nomDuMois(PeriodeDebut) .. " " .. tostring(AnneeDebut)
 +
        end
 +
 
       elseif format == "abréviation" then
 
       elseif format == "abréviation" then
         lien = page .. "/" .. lib_date.nomDuMois(MoisDebut) .. " " .. tostring(AnneeDebut)
+
         lien = page .. "/" .. lib_date.nomDuMois(PeriodeDebut) .. " " .. tostring(AnneeDebut)
         texte = mw.text.truncate(lib_date.nomDuMois(MoisDebut),3)
+
         texte = mw.text.truncate(lib_date.nomDuMois(PeriodeDebut),3)
 
       else
 
       else
         lien = page .. "/" .. tostring(AnneeDebut) .. "/" .. tostring(MoisDebut)
+
         lien = page .. "/" .. tostring(AnneeDebut) .. "/" .. tostring(PeriodeDebut)
         texte = tostring(AnneeDebut) .. "/" .. tostring(MoisDebut)
+
         texte = tostring(AnneeDebut) .. "/" .. tostring(PeriodeDebut)
 
       end
 
       end
  
 
       if separateur == "image" then
 
       if separateur == "image" then
         ListeMois = ListeMois .. tag1 .. lien .. tag2 .. "[[" .. lien .. "|" .. texte .. "]]" .. tag3
+
         ListePeriode = ListePeriode .. tag1 .. lien .. tag2 .. "[[" .. lien .. "|" .. texte .. "]]" .. tag3
 
       else
 
       else
         ListeMois = ListeMois .. "[[" .. lien .. "|" .. texte .. "]]"  
+
         ListePeriode = ListePeriode .. "[[" .. lien .. "|" .. texte .. "]]"  
 
       end
 
       end
  
       if AnneeDebut == AnneeFin and MoisDebut == MoisFin then
+
       if AnneeDebut == AnneeFin and PeriodeDebut == PeriodeFin then
         MoisDebut = 12
+
         PeriodeDebut = LimiteFin
       elseif MoisDebut < 12 then
+
       elseif PeriodeDebut < LimiteFin then
 
         if separateur ~= "image" then
 
         if separateur ~= "image" then
           ListeMois = ListeMois .. separateur .. " "
+
           ListePeriode = ListePeriode .. separateur .. " "
 
         end
 
         end
 
       end
 
       end
       MoisDebut = MoisDebut + 1
+
       PeriodeDebut = PeriodeDebut + 1
 
     end
 
     end
 
      
 
      
     if AnneeDebut < AnneeFin or MoisDebut < MoisFin then
+
     if AnneeDebut < AnneeFin or PeriodeDebut < PeriodeFin then
 
       -- Changement d'année sauf pour la toute dernière ligne
 
       -- Changement d'année sauf pour la toute dernière ligne
 
       if separateur == "||" then  
 
       if separateur == "||" then  
         ListeMois = ListeMois .. "\n|-\n|'''" .. AnneeDebut+1 .. "'''||"
+
         ListePeriode = ListePeriode .. "\n|-\n|'''" .. AnneeDebut+1 .. "'''||"
 
       else
 
       else
         ListeMois = ListeMois .. "\n\n"
+
         ListePeriode = ListePeriode .. "\n\n"
 
       end
 
       end
 
     end
 
     end
     MoisDebut = 1
+
     PeriodeDebut = 1
 
     AnneeDebut = AnneeDebut + 1
 
     AnneeDebut = AnneeDebut + 1
 
   end
 
   end
  
 
   if separateur == "||" then
 
   if separateur == "||" then
     ListeMois = ListeMois .. "\n|}\n"
+
     ListePeriode = ListePeriode .. "\n|}\n"
 
   elseif separateur == "image" then
 
   elseif separateur == "image" then
     ListeMois = ListeMois .. "</ul>\n"
+
     ListePeriode = ListePeriode .. "</ul>\n"
 
   end
 
   end
  
   return ListeMois
+
   return ListePeriode
 
end
 
end
  
  
 
return p
 
return p

Version actuelle en date du 18 avril 2016 à 18:35

La documentation pour ce module peut être créée à Module:Archives/doc

lib_date = require('Module:Date')
local p = {}


function p.an(frame)
  if frame ~= nil then
    if frame.args[1] ~= nil then page = mw.text.trim(frame.args[1]) end
    if frame.args[2] ~= nil then debut = tonumber(mw.text.trim(frame.args[2])) end
    if frame.args[3] ~= nil then fin = tonumber(mw.text.trim(frame.args[3])) end
    if frame.args[4] ~= nil then
      separateur = mw.text.trim(frame.args[4])
      if separateur == "grille" then
        separateur = "||"
      end
    end
  end
  if debut == nil or debut == "" then debut = 2004 end
  if fin == nil or fin == "" then fin = tonumber(os.date("%Y")) end
  if separateur == nil then separateur = "" end

  local ListeAnnees = {}
  if separateur == "||" then 
    table.insert(ListeAnnees, '{| cellpadding="5" style="border:1px solid #aaaaaa; margin-top:1em; margin-bottom:0.5em" rules="all" align="center"\n|')
  elseif separateur == "image" then
    table.insert(ListeAnnees, "<ul>")
    tag1 = '<li style="float:left;margin:2px 2px 2px 8px;display:inline;">[[Image:Nuvola devices nfs mount.png|30px|link='
    tag2 = "]]<br/>"
    tag3 = "</li>"
  end

  while debut <= fin do
    lien = page .. "/" .. tostring(debut)
    texte = tostring(debut)
    if separateur == "image" then
      table.insert(ListeAnnees, tag1 .. lien .. tag2 .. "[[" .. lien .. "|" .. texte .. "]]" .. tag3)
    else
      table.insert(ListeAnnees, "[[" .. lien .. "|" .. texte .. "]]")
    end
    debut = debut + 1
  end

  if separateur == "||" then
    table.insert(ListeAnnees, "\n|}\n")
  elseif separateur == "image" then
    table.insert(ListeAnnees, "</ul>\n")
    separateur = ""
  end

  return table.concat(ListeAnnees, separateur .. " ")
end

function p.mois(frame)
  return p.periode("mois", frame)
end

function p.semaine(frame)
  return p.periode("semaine", frame)
end

function p.periode(unite, frame)
  if frame ~= nil then
    if frame.args[1] ~= nil then page = mw.text.trim(frame.args[1]) end
    if frame.args[2] ~= nil then
      AnneeDebut = mw.ustring.gsub(frame.args[2], "(.+)\-(.+)", "%1")
      AnneeDebut = tonumber(AnneeDebut)
      PeriodeDebut = mw.ustring.gsub(frame.args[2], "(.+)\-(.+)", "%2")
      PeriodeDebut = tonumber(PeriodeDebut)
    end
    if frame.args[3] ~= nil then
      AnneeFin = mw.ustring.gsub(frame.args[3], "(.+)\-(.+)", "%1")
      AnneeFin = tonumber(AnneeFin)
      PeriodeFin = mw.ustring.gsub(frame.args[3], "(.+)\-(.+)", "%2")
      PeriodeFin = tonumber(PeriodeFin)
    end
    if frame.args[4] ~= nil then
      if mw.text.trim(frame.args[4]) == "grille" then
        separateur = "||"
      else
        separateur = mw.text.trim(frame.args[4])
      end
    else
      separateur = ""
    end
    if frame.args[5] ~= nil then
      if mw.text.trim(frame.args[5]) == "" then
        format = "nom"
      else
        format = mw.text.trim(frame.args[5])
      end
    else
      format = "nom"
    end
  end
  if AnneeDebut == nil or AnneeDebut == "" then
    AnneeDebut = 2004
  end
  if PeriodeDebut == nil or PeriodeDebut == "" then
    PeriodeDebut = 01
  end
  if AnneeFin == nil or AnneeFin == "" then
    AnneeFin = tonumber(os.date("%Y"))
  end
  if unite == "semaine" then
    LimiteFin = tonumber(52)
    PeriodeFinTemp = tonumber(os.date("%W"))
  else
    LimiteFin = tonumber(12)
    PeriodeFinTemp = tonumber(os.date("%m"))
  end
  if PeriodeFin == nil or PeriodeFin == "" then PeriodeFin = PeriodeFinTemp end

  local ListePeriode = ""
  if separateur == "||" then 
    ListePeriode = '{| cellpadding="5" style="border:1px solid #aaaaaa; margin-top:1em; margin-bottom:0.5em" rules="all" align="center"\n|' .. "'''" .. AnneeDebut .. "'''||"
  elseif separateur == "image" then
    ListePeriode = "<ul>"
    tag1 = '<li style="float:left;margin:2px 2px 2px 8px;display:inline;">[[Image:Nuvola devices nfs mount.png|30px|link='
    tag2 = "]]<br/>"
    tag3 = "</li>"
  end
  while AnneeDebut <= AnneeFin do
    while PeriodeDebut <= LimiteFin do

      if unite == "semaine" then
        lien = page .. "/semaine " .. PeriodeDebut .. " " .. tostring(AnneeDebut)
        if separateur == "||" then
          texte = PeriodeDebut
        else
          texte = PeriodeDebut .. " " .. tostring(AnneeDebut)
        end

      elseif format == "nom" then
        lien = page .. "/" .. lib_date.nomDuMois(PeriodeDebut) .. " " .. tostring(AnneeDebut)
        if separateur == "||" then
          texte = lib_date.nomDuMois(PeriodeDebut)
        else
          texte = lib_date.nomDuMois(PeriodeDebut) .. " " .. tostring(AnneeDebut)
        end

      elseif format == "abréviation" then
        lien = page .. "/" .. lib_date.nomDuMois(PeriodeDebut) .. " " .. tostring(AnneeDebut)
        texte = mw.text.truncate(lib_date.nomDuMois(PeriodeDebut),3)
      else
        lien = page .. "/" .. tostring(AnneeDebut) .. "/" .. tostring(PeriodeDebut)
        texte = tostring(AnneeDebut) .. "/" .. tostring(PeriodeDebut)
      end

      if separateur == "image" then
        ListePeriode = ListePeriode .. tag1 .. lien .. tag2 .. "[[" .. lien .. "|" .. texte .. "]]" .. tag3
      else
        ListePeriode = ListePeriode .. "[[" .. lien .. "|" .. texte .. "]]" 
      end

      if AnneeDebut == AnneeFin and PeriodeDebut == PeriodeFin then
        PeriodeDebut = LimiteFin
      elseif PeriodeDebut < LimiteFin then
        if separateur ~= "image" then
          ListePeriode = ListePeriode .. separateur .. " "
        end 	
      end
      PeriodeDebut = PeriodeDebut + 1
    end
    
    if AnneeDebut < AnneeFin or PeriodeDebut < PeriodeFin then
      -- Changement d'année sauf pour la toute dernière ligne
      if separateur == "||" then 
        ListePeriode = ListePeriode .. "\n|-\n|'''" .. AnneeDebut+1 .. "'''||"
      else
        ListePeriode = ListePeriode .. "\n\n"
      end
    end
    PeriodeDebut = 1
    AnneeDebut = AnneeDebut + 1
  end

  if separateur == "||" then
    ListePeriode = ListePeriode .. "\n|}\n"
  elseif separateur == "image" then
    ListePeriode = ListePeriode .. "</ul>\n"
  end

  return ListePeriode
end


return p