Module:πίνακαςΛτΗ
Documentation for this module may be created at Module:πίνακαςΛτΗ/τεκμηρίωση
-- επιστρέφει τον πίνακα για τη ΛτΗ στη σελίδα [[Βικιλεξικό:Λέξη_της_Ημέρας]]
-- με βάση την τρέχουσα ημερομηνία του server
p ={}
local datefunctions = require "Module:DateFunctions"
--το πρώτο κελί που θα έχει λέξη της ημέρας
local firstdaycell = 0
--το τελευταίο κελί που θα έχει λέξη της ημέρας
local lastdaycell = 0
--δημιουργία ανεξάρτητου frame (expensive?)
--ώστε και να μη χρειάζεται στη συνάρτηση λέξη
--και να μπορεί να τρέξει και στην κονσόλα δοκιμών
--someframe = mw.getCurrentFrame()
--
--βρες τη λέξη της ημέρας χρησιμοποιώντας τη μέθοδο expandTemplate
--με ευθυνή αυτού που καλεί τη συνάρτηση για το αν υπάρχει η ημέρα
function poialeksi (hmera)
local leksinum = 'ΛτΗ' .. hmera
local leksi = mw.getCurrentFrame():expandTemplate{ title = leksinum, args = { } }
return leksi
end
--δημιούργησε τη γραμμή του κελιού που έχει περιεχόμενο
function createcellline(keli)
--για ποια μέρα του μήνα πρόκειται
local d = keli - firstdaycell + 1
--βρες τη λέξη της ημέρας αυτής
local leksi = poialeksi (tostring(d)) --or ''
--στην αρχή ο αριθμός της ημέρας του μήνα
local row = '<b>' .. d .. '</b><br />'
--μετά ξεκίνα την παραπομπή για τη λέξη
row = row .. '<b>[[' .. leksi .. ']]</b><br />'
--βάλε την παραπομπή στην αλλαγή της λέξης
row = row .. '<small>[http://el.wiktionary.org/w/index.php?title=Πρότυπο:ΛτΗ' .. d .. '&action=edit αλλαγή]'
--βάλε την παραπομπή στο ιστορικό της
row = row .. ' - [http://el.wiktionary.org/w/index.php?title=Πρότυπο:ΛτΗ' .. d .. '&action=history ιστορικό ]</small>'
return row
end
--επέστρεψε το περιεχόμενο για το κελί.
--δες αν πρέπει να έχει περιεχόμενο το κελί
--και επέστρεψέ το
function cellcontent(keli)
--αν το κελί είναι μικρότερο από το κελί που πρέπει να έχει την πρώτη ημέρα
--ή μεγαλύτερο από το κελί που πρέπει να έχει την τελευτάια ημέρα
--επέστρεψε κενό
if keli < firstdaycell or keli > lastdaycell then
return ''
else
--αλλιώς φτιάξε το περιεχόμενο του κελιού
return createcellline(keli)
end
end
function p.daystable(frame)
--πόσες μέρες έχει ο μήνας
local monthdays = datefunctions.getMonthDays(frame)
--το πρώτο κελί που θα έχει "λέξη της ημέρας"
firstdaycell = datefunctions.getfirstDayNum(frame)
--το τελευταίο κελί που θα έχει "λέξη της ημέρας"
lastdaycell = monthdays + firstdaycell -1
local cellstart = '\n<td style="width:100px" align="center"> '
local cellend = '\n</td>'
--έναρξη κεντραρίσματος,πίνακα και πρώτη γραμμή με τις ημέρες
t = [=[<center>
<table style="float:center; border:5px solid #008B8B; background:#FFFACD;" rules="all" class="plainlinks">
<tr>
<th bgcolor="#008B8B" colspan="1">Δευτέρα</th>
<th bgcolor="#008B8B" colspan="1">Τρίτη</th>
<th bgcolor="#008B8B" colspan="1">Τετάρτη</th>
<th bgcolor="#008B8B" colspan="1">Πέμπτη</th>
<th bgcolor="#008B8B" colspan="1">Παρασκευή</th>
<th bgcolor="#008B8B" colspan="1">Σάββατο</th>
<th bgcolor="#008B8B" colspan="1">Κυριακή</th>
</tr>
<tr>
]=]
--για κάθε κελί από το ένα ως το εφτά
for kcounter = 1,7 do
--φτιάξε τον κώδικα html για το κελί
t = t .. cellstart .. cellcontent(kcounter) .. cellend
end
--τέλος γραμμής πίνακα
t = t .. '\n</tr>'
--για κάθε εβδομάδα από τη δεύτερη μέχρι την τέταρτη
for wcounter = 1, 5 do
--ξεκίνα νέα γραμμή πίνακα
t = t .. '\n<tr>'
--για κάθε κελί της γραμμής (wcounter+1) του πίνακα από το ένα ως το εφτά
for kcounter = ((7*wcounter)+1),((7*wcounter)+7) do
t = t .. cellstart .. cellcontent(kcounter) .. cellend
end
--τέλος γραμμής πίνακα
t = t .. '\n</tr>'
--αν το τελευταίο κελί με λέξη της ημέρας το έχουμε ήδη δείξει
--σταμάτα
if lastdaycell <= ((7*wcounter)+7) then
break
end
end
--τέλος πίνακα και κεντραρίσματος
t = t .. '\n</table></center>'
--έτοιμο html
return frame:preprocess(t)
end
return p