Modul:Smiles: razlika između inačica
Prijeđi na navigaciju
Prijeđi na pretraživanje
mNema sažetka uređivanja |
mNema sažetka uređivanja |
||
| Nije prikazana jedna međuinačica | |||
| Redak 2: | Redak 2: | ||
function p.render(frame) | function p.render(frame) | ||
-- | -- Provjera svih mogućih slojeva argumenata (roditeljski, trenutni, i alternativni) | ||
local args = frame:getParent().args | local args = {} | ||
local smiles = args[1] | |||
if frame:getParent() then | |||
for k, v in pairs(frame:getParent().args) do args[k] = v end | |||
end | |||
for k, v in pairs(frame.args) do args[k] = v end | |||
-- Tražimo parametar 'smiles' ili prvi neimenovani parametar | |||
local smiles = args.smiles or args[1] or "" | |||
local size = args.size or "260" | local size = args.size or "260" | ||
local theme = args.theme or "light" | local theme = args.theme or "light" | ||
-- | -- Trimanje razmaka i novih redova | ||
smiles = string.gsub(smiles, "%s | if type(smiles) == "string" then | ||
smiles = string.gsub(smiles, "^%s*(.-)%s*$", "%1") | |||
else | |||
smiles = "" | |||
end | |||
-- Ako | -- Ako je i dalje prazno, HeaderTabs je potpuno sakrio predložak. | ||
-- U tom slučaju radimo fallback: dopuštamo slanje preko imenovanog 'smiles=' parametra | |||
if smiles == "" then | if smiles == "" then | ||
return '<span class="error"> | return '<span class="error" style="color:red; font-weight:bold;">[Greška: HeaderTabs je blokirao parametre. Koristite {{Smiles|smiles=VAŠ_ZAPIS}}]</span>' | ||
end | end | ||
-- Prisilno učitavanje ResourceLoader modula | -- Prisilno učitavanje ResourceLoader modula | ||
frame:callParserFunction('#tag', { 'script', '', module = 'ext.smiles' }) | frame:callParserFunction('#tag', { 'script', '', module = 'ext.smiles' }) | ||
-- | -- Kreiranje HTML strukture | ||
local html = '<div class="mw-smiles" data-smiles="' .. mw.text.nowiki(smiles) .. '" data-size="' .. size .. '" data-theme="' .. theme .. '"></div>' | |||
local html = '<div class="mw-smiles" data-smiles="' .. mw.text.nowiki(smiles) .. '" data-size="' .. size .. '" data-theme="' .. theme .. '"> | |||
return frame:preprocess(html) | return frame:preprocess(html) | ||
end | end | ||
return p | return p | ||
Posljednja izmjena od 27. lipanj 2026. u 13:36
local p = {}
function p.render(frame)
-- Provjera svih mogućih slojeva argumenata (roditeljski, trenutni, i alternativni)
local args = {}
if frame:getParent() then
for k, v in pairs(frame:getParent().args) do args[k] = v end
end
for k, v in pairs(frame.args) do args[k] = v end
-- Tražimo parametar 'smiles' ili prvi neimenovani parametar
local smiles = args.smiles or args[1] or ""
local size = args.size or "260"
local theme = args.theme or "light"
-- Trimanje razmaka i novih redova
if type(smiles) == "string" then
smiles = string.gsub(smiles, "^%s*(.-)%s*$", "%1")
else
smiles = ""
end
-- Ako je i dalje prazno, HeaderTabs je potpuno sakrio predložak.
-- U tom slučaju radimo fallback: dopuštamo slanje preko imenovanog 'smiles=' parametra
if smiles == "" then
return '<span class="error" style="color:red; font-weight:bold;">[Greška: HeaderTabs je blokirao parametre. Koristite {{Smiles|smiles=VAŠ_ZAPIS}}]</span>'
end
-- Prisilno učitavanje ResourceLoader modula
frame:callParserFunction('#tag', { 'script', '', module = 'ext.smiles' })
-- Kreiranje HTML strukture
local html = '<div class="mw-smiles" data-smiles="' .. mw.text.nowiki(smiles) .. '" data-size="' .. size .. '" data-theme="' .. theme .. '"></div>'
return frame:preprocess(html)
end
return p