Modulo:Discendenza/sandbox: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
mNessun oggetto della modifica
Nessun oggetto della modifica
Riga 21:
local resto = 0
local nx,px
-- conta elementi
while (dati[n]) do n = n+1 end
n = n-1
-- crea pers dai dati
for m=4,n,4 do
nx = tonumber(dati[m-3])
Line 193 ⟶ 191:
 
local function mostraX(pid,allinea,largo,dida)
local xy = massimoXY(pid, {0, 0})
local posx = {}
local n1
Line 199 ⟶ 196:
local riga = {}
local xx, xp
local stileDiv = { ['width'] = largo..'px', ['padding'] = '3px', ['background'] = '#FFF', ['border'] = '1px solid #C8CCD1' }
agg('<table local cellpadding="1"stileTabella cellspacing="0" border=0{ style="['border-collapse:'] = 'separate;', ['text-align:'] = 'center;', ['font-size:'] = '95%;', ['line-height:'] = '105%;', ['margin:'] = '0px auto">'), }
local xy = massimoXY(pid, {0, 0})
local lg = math.floor(100/(xy[1]+2))
if (lg == 0) then lg = 1 end
 
local bDiv = mw.html.create('div')
if (allinea == 'destra') then
bDiv:css(stileDiv)
agg(string.format('<div class="floatright" style="width:%dpx;padding:3px;background:#fff;border:1px solid #c8ccd1">', largo))
stileTabella['margin'] = '10px auto'
agg('<table cellpadding="1" cellspacing="0" border=0 style="border-collapse:separate;text-align:center;font-size:95%;line-height:105%;margin:0px auto">')
else
agg('<table cellpadding="1" cellspacing="0" border=0 style="border-collapse:separate;text-align:center;font-size:95%;line-height:105%;margin:10px auto">')
end
local lgbTabella = mathmw.floorhtml.create(100/(xy[1]+2'table'):css(stileTabella)
 
if (lg == 0) then lg = 1 end
for n=1,xy[2] do
local riga1 = mw.html.create('tr')
riga[1] = {}; riga[2] = {}; riga[3] = {}
local riga2 = mw.html.create('tr')
local riga3 = mw.html.create('tr')
posx[1] = 0; posx[2] = 0; posx[3] = 0
n1 = 0
table.insertif (riga[1],string.format('<tr%s>',n>1) andthen riga1:css(' style="line-height:8px"' or ,'8px')) end
if (n<xy[2]) then table.insertriga3:css(riga[3]'line-height','</tr>8px') end
table.insert(riga[2],'<tr>')
table.insert(riga[3],string.format('<tr%s>',n<xy[2] and ' style="line-height:8px"' or ''))
for _, v in pairs(tabella[n]) do
xx = pers[v].x
xp = pers[v].padre
)
if (n==1) then
for m=1,(xy[1]+2) do table.insert(riga[1],string.format('<td width=%d%%></td>',lg)) end
local bCol1 = mw.html.create('td'):css('width',lg..'%')
riga1:node(bCol1)
end
else
local bCol1 = mw.html.create('td')
stx = string.format('<td style="border-right:1px solid #000%s%s">&nbsp;</td>',
n1==xp and :css(';border-top:right','1px solid #000' or '',)
:cssIf(n1 == xp,'border-top','1px solid #000')
:attrIf(xx-posx[1]>0 and ,'" colspan="'..(,xx+1-posx[1]) or ''
)
:wikitext('&nbsp;')
n1 = xp
posx[1] = xx + 1
table.insertriga1:node(riga[1],stxbCol1)
end
 
if (xx-posx[2]>0) then
local bCol2 = mw.html.create('td')
table.insert(riga[2],string.format('<td%s>&nbsp;</td>',
:attrIf(xx-posx[2]>1 and ,' colspan="'..(,xx-posx[2])..'"' or ''))
:wikitext('&nbsp;')
riga2:node(bCol2)
end
local bCol2 = mw.html.create('td')
table.insert(riga[2],'<td colspan=2>'..pers[v].testo)
:attr('colspan','2')
if not (pers[v].nota == '-') then
table.insert:wikitext(rigapers[2v],.nota=='-' and pers[v].testo or string.format('%s<br/><span style="font-size:90%%"><i>%s</i></span>',pers[v].testo,pers[v].nota))
riga2:node(bCol2)
end
table.insert(riga[2],'</td>')
posx[2] = xx + 2
 
if (n<xy[2]) then
if (#pers[v].figli > 0) then
local bCol3 = mw.html.create('td')
table.insert(riga[3],string.format('<td style="border-right: 1px solid #000%s">&nbsp;</td>',
:css('border-right','1px solid #000')
:attrIf(xx-posx[3]>0 and ,'" colspan="'..(,xx+1-posx[3]) or ''
))
:wikitext('&nbsp;')
posx[3] = xx + 1
riga3:node(bCol3)
end
end
end
 
bTabella:node(riga1)
table.insert(riga[1],'</tr>')
bTabella:node(riga2)
table.insert(riga[2],'</tr>')
bTabella:node(riga3)
if (n<xy[2]) then table.insert(riga[3],'</tr>') end
 
agg(table.concat(riga[1]))
agg(table.concat(riga[2]))
agg(table.concat(riga[3]))
end
 
bDiv:node(bTabella)
agg('</table>')
if (allinea == 'destra' and not dida=='') then
local bDida = mw.html.create('p')
if not (dida=='') then
agg(string.format:css({['<p style="font-size:'] = '87%;', ['font-style:'] = 'normal;', ['border-top:'] = '1px solid #c8ccd1;', ['margin:'] = '8px 2px 3px">%s</p>',dida)})
:wikitext(dida)
end
bDiv:node(bDida)
agg('</div>')
end
return tostring(bDiv)
 
return table.concat(txt)
end