Anonimo

Modulo:DTSpecific: differenze tra le versioni

Da Wikitrek.
nessun oggetto della modifica
(Modular SecBoxContent)
Nessun oggetto della modifica
(24 versioni intermedie di uno stesso utente non sono mostrate)
Riga 10: Riga 10:
local QFromP = require('Modulo:DTGenerico').QFromP
local QFromP = require('Modulo:DTGenerico').QFromP
local SeasonsQty = require('Modulo:DTSem').SeasonsQty
local SeasonsQty = require('Modulo:DTSem').SeasonsQty
local LabelOrLink = require('Modulo:DTBase').LabelOrLink
--local PropertiesOnTree = require('Modulo:DTFunzioniComuni').PropertiesOnTree
local SeriesTree = require('Modulo:DTFunzioniComuni').SeriesTree
--- generates a list of backlink using SMW query.
--- generates a list of backlink using SMW query.
--  
--  
Riga 161: Riga 165:
local FinalString = ""
local FinalString = ""
local Actor = mw.title.getCurrentTitle().text
local Actor = mw.title.getCurrentTitle().text
local QueryResult = mw.smw.getQueryResult('[[Interprete::' .. Actor .. ']]|?' .. Actor .. '|sort=Numero di produzione|order=asc')
local QueryResult = mw.smw.getQueryResult('[[Interprete::' .. Actor .. ']]|?' .. Actor .. '|limit=500|sort=Numero di produzione|order=asc')
if QueryResult == nil then
if QueryResult == nil then
Riga 196: Riga 200:
return FinalString
return FinalString
end
--- Content of a generic secondary box
--
-- @frame Info from MW session
-- @return Wikitext to inject in template
function p.SecBoxBuilder(frame)
local TemplateName
local BoxTitle = ""
local BoxContent = ""
local SeriesQ
local Short
local CategoryNames = {}
local UL
local LI
local Quantity
local Categories
local Seasons
local Series
local Preposizione
local Others
local Separator ="<hr />"
local FullOutput = true
local Output = {}
-- Get page name and clean to get the name
TemplateName = string.gsub(frame:getParent():getTitle(), "Template:", "")
if TemplateName == "BoxSecEpisodio" then
if mw.wikibase.getEntity().claims["P162"] ~= nil then
BoxContent = BoxContent .. "<span class='titoletto'>Presentazione</span>"
BoxContent = BoxContent .. "<p>" ..  mw.wikibase.getEntity().claims["P162"][1].mainsnak.datavalue.value .. "</p>"
end
Series = SeriesTree(frame)
BoxContent = BoxContent .. "<span class='titoletto'>Serie</span>"
BoxContent = BoxContent .. Series
BoxTitle = "Titolo BoxSecEpisodio"
--BoxContent = "Contenuto BoxSecEpisodio<br />" .. Series
else
--Series
if frame.args[1] ~= nil then
--Function is called from unliked page
Series = mw.wikibase.getEntity(frame.args[1])
Separator = " | "
FullOutput = false
elseif mw.wikibase.getEntity().claims["P14"][1].mainsnak.datavalue.value.id == "Q13" then
-- Page is instance of Series
Series = mw.wikibase.getEntity()
elseif  mw.wikibase.getEntity().claims["P16"] ~= nil then
Series = mw.wikibase.getEntity(QFromP("P16"))
else
-- Fall back to Short Treks
Series = mw.wikibase.getEntity("Q8537")
end
BoxTitle = "Titolo " .. TemplateName
BoxContent = "Contenuto " .. TemplateName
end
--[=[
Output example
{{BoxSecondario
|Titolo= Serie {{#if: {{#statements:P16}} | {{#statements:P16}} | ''No P16<!--{{#statements:P24}}-->'' }}
|Contenuto={{#invoke:DTSpecific|SecBoxSeries|Q66}}
|Nome=BoxSecEpisodio
}}
--]=]
return frame:expandTemplate{title = 'BoxSecondario', args = {Titolo = BoxTitle,  Contenuto = BoxContent, Nome = TemplateName}}
end
end


Riga 202: Riga 281:
-- @frame Info from MW session
-- @frame Info from MW session
-- @return Wikitext to inject in template
-- @return Wikitext to inject in template
function p.SecBoxContent(frame)
function p.SecBoxSeries(frame)
local SeriesQ
local SeriesQ
local Series
local Series = ""
local Short
local Short = ""
local CategoryNames = {}
local CategoryNames = {}
local UL
local UL
Riga 226: Riga 305:
FullOutput = false
FullOutput = false
elseif mw.wikibase.getEntity().claims["P14"][1].mainsnak.datavalue.value.id == "Q13" then
elseif mw.wikibase.getEntity().claims["P14"][1].mainsnak.datavalue.value.id == "Q13" then
--Instance of the item is "Series"
Series = mw.wikibase.getEntity()
Series = mw.wikibase.getEntity()
elseif mw.wikibase.getEntity().claims["P16"] ~= nil then
Series = mw.wikibase.getEntity(QFromP("P16"))
else
else
Series = mw.wikibase.getEntity(QFromP("P16"))
--Episode
Series = mw.wikibase.getEntity(mw.wikibase.getEntity(QFromP("P14")).claims["P16"][1].mainsnak.datavalue.value.id)
end
end
--Short name of the series
--Short name of the series
--Short  = mw.wikibase.getEntity(SeriesQ).claims['P24'][1].mainsnak.datavalue['value']
--Short  = mw.wikibase.getEntity(SeriesQ).claims['P24'][1].mainsnak.datavalue['value']
Riga 262: Riga 346:
Quantity = SeasonsQty(Short)
Quantity = SeasonsQty(Short)
--mw.smw.set("Numero di stagioni = " .. Quantity)
--mw.smw.set("Numero di stagioni = " .. Short)
if Quantity < 1 then
if Quantity < 1 then
Seasons = "Errore: <1"
Seasons = "Errore: <1"
Riga 319: Riga 403:
    --"fulltext": "Star Trek: Strange New Worlds",
    --"fulltext": "Star Trek: Strange New Worlds",
    LI =  mw.html.create('li')
    LI =  mw.html.create('li')
        LI:wikitext("[[" .. CurrSeries.fulltext .. "|" .. CurrSeries.printouts.Abbreviazione[1] .. "]]")
        LI:wikitext("[[" .. (CurrSeries.fulltext or "NullFulltext") .. "|" .. (CurrSeries.printouts.Abbreviazione[1] or "NullAbbreviazione") .. "]]")
       
       
        UL:node(LI)
        UL:node(LI)
Riga 343: Riga 427:
<hr />
<hr />
]==]
]==]
end
--- Listo of "motto" sentences (P104) for Template:BoxAvvisi
--
-- @frame Info from MW session
-- @return Wikitext to inject in template
function p.MottoBoxes(frame)
local Subject
local Boxes = {}
--Series
if frame.args[1] ~= nil then
--Function is called from unliked page
Subject = mw.wikibase.getEntity(frame.args[1])
else
Subject = mw.wikibase.getEntity()
end
for _, Motto in ipairs(Subject.claims["P104"]) do
local Sentence
local Author
local Reference
Sentence = Motto.mainsnak.datavalue.value
Author = LabelOrLink(Motto.qualifiers["P47"][1].datavalue.value.id)
Reference =LabelOrLink(Motto.qualifiers["P58"][1].datavalue.value.id)
table.insert(Boxes, frame:expandTemplate{ title = 'quote', args = {text = Sentence, sign = Author, source = Reference} })
end
return table.concat(Boxes, string.char(10))
end
end