Anonimo

Modulo:DTSpecific: differenze tra le versioni

Da Wikitrek.
nessun oggetto della modifica
(Preposizione)
Nessun oggetto della modifica
(36 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 192: Riga 196:
for ID, Group in pairs(FinalArray) do
for ID, Group in pairs(FinalArray) do
FinalString = FinalString .. "* [[" .. ID .. "]]: [[" .. table.concat(Group, "]], [[") .. "]]" .. string.char(10)
FinalString = FinalString .. "* '''[[" .. ID .. "]]''': [[" .. table.concat(Group, "]], [[") .. "]]" .. string.char(10)
end
end
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 213: Riga 292:
local Seasons
local Seasons
local Series
local Series
local Preposizione
local Others
local Separator ="<hr />"
local FullOutput = true
local Output = {}
--Series
--Series
if mw.wikibase.getEntity().claims["P14"][1].mainsnak.datavalue.value.id == "Q13" then
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
--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']
Short  = Series.claims['P24'][1].mainsnak.datavalue['value']
Short  = Series.claims['P24'][1].mainsnak.datavalue['value']
if Short == "Serie Classica" or Short == "Serie Animata" then
Preposizione = "della"
else
Preposizione = "di"
end
CategoryNames = {"SHORT|Serie", "Personaggi PREPOSIZIONE SHORT|Personaggi", "Episodi PREPOSIZIONE SHORT|Episodi", "SHORT - Ordine di produzione|Ordine di produzione", "SHORT - Titoli italiani|Titoli italiani"}
CategoryNames = {"SHORT|Serie", "Personaggi PREPOSIZIONE SHORT|Personaggi", "Episodi PREPOSIZIONE SHORT|Episodi", "SHORT - Ordine di produzione|Ordine di produzione", "SHORT - Titoli italiani|Titoli italiani"}
Riga 231: Riga 331:
:attr('title', "Categorie")
:attr('title', "Categorie")
for _, Name in pairs(CategoryNames) do
for _, Name in ipairs(CategoryNames) do
local Item
local Item
local Preposizione
if Short == "Serie Classica" or Short == "Serie Animata" then
Preposizione = "della"
else
Preposizione = "di"
end
Name = string.gsub(Name, "PREPOSIZIONE", Preposizione)
Name = string.gsub(Name, "PREPOSIZIONE", Preposizione)
Item = "[[:Categoria:" .. string.gsub(Name, "SHORT", Short) .. "]]"
Item = "[[:Categoria:" .. string.gsub(Name, "SHORT", Short) .. "]]"
Riga 249: Riga 342:
end
end
Categories = tostring(UL)
Categories = tostring(UL)
table.insert(Output, Categories)
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 264: Riga 359:
if Item == 0 then
if Item == 0 then
LI:wikitext("[[Episodi di " .. Short .. "|Tutti]]")
LI:wikitext("[[Episodi " .. Preposizione .. " " .. Short .. "|Tutti]]")
elseif Item == 1 then
elseif Item == 1 then
LI:wikitext("Stagioni: [[Stagione " .. Item .. " di " .. Short .. "|" .. Item .. "]]")
LI:wikitext("Stagioni: [[Stagione " .. Item .. " "  .. Preposizione .. " " .. Short .. "|" .. Item .. "]]")
else
else
LI:wikitext("[[Stagione " .. Item .. " di " .. Short .. "|" .. Item .. "]]")
LI:wikitext("[[Stagione " .. Item .. " "  .. Preposizione .. " " .. Short .. "|" .. Item .. "]]")
end
end
UL:node(LI)
UL:node(LI)
end
end
Seasons = tostring(UL)
Seasons = tostring(UL)
table.insert(Output, Seasons)
end
end
--Series
if FullOutput then  
local SeriesQuery = mw.smw.getQueryResult('[[Istanza::Serie]]|?Abbreviazione|sort=Ordinale|order=asc')
--Other pages
UL = mw.html.create('ul')
if SeriesQuery == nil then
        Series = "''Nessun risultato''"
    end
 
    if type(SeriesQuery) == "table" then
    UL = mw.html.create('ul')
UL
UL
:attr('class', "compactul")
:attr('class', "compactul")
:attr('title', "Tutte le serie")
:attr('title', "Altre pagine")
    for _, CurrSeries in pairs(SeriesQuery.results) do
    --In the output, example:
LI =  mw.html.create('li')
    --"fulltext": "Star Trek: Strange New Worlds",
LI:wikitext("[[Personaggi ricorrenti " .. Preposizione .. " " .. Short .. "]]")
    LI =  mw.html.create('li')
UL:node(LI)
        LI:wikitext("[[" .. CurrSeries.fulltext .. "|" .. CurrSeries.printouts.Abbreviazione[1] .. "]]")
       
Others = tostring(UL)
        UL:node(LI)
table.insert(Output, Others)
    end
end
    Series = tostring(UL)
    else
if FullOutput then
    Series = "''Il risultato non è una TABLE''"
--All Series
    end
local SeriesQuery = mw.smw.getQueryResult('[[Istanza::Serie]]|?Abbreviazione|sort=Ordinale|order=asc')
if SeriesQuery == nil then
        Series = "''Nessun risultato''"
    end
return Categories .. "<hr />" .. Seasons .. "<hr />" .. Series  
    if type(SeriesQuery) == "table" then
    UL = mw.html.create('ul')
UL
:attr('class', "compactul")
:attr('title', "Tutte le serie")
    for _, CurrSeries in ipairs(SeriesQuery.results) do
    --In the output, example:
    --"fulltext": "Star Trek: Strange New Worlds",
    LI =  mw.html.create('li')
        LI:wikitext("[[" .. (CurrSeries.fulltext or "NullFulltext") .. "|" .. (CurrSeries.printouts.Abbreviazione[1] or "NullAbbreviazione") .. "]]")
       
        UL:node(LI)
    end
    Series = tostring(UL)
    else
    Series = "''Il risultato non è una TABLE''"
    end
    table.insert(Output, Series)
end
 
--return Categories .. "<hr />" .. Seasons .. "<hr />" .. Others .. "<hr />" .. Series  
return table.concat(Output, Separator)
--[==[
--[==[
<strong>Categorie</strong>
<strong>Categorie</strong>
Riga 312: 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