Moduł:Stopka portal: Różnice pomiędzy wersjami

Z Nonsensopedii, polskiej encyklopedii humoru
M (na razie wykomentuję)
M (+polityka)
Linia 12: Linia 12:
}
}
},
},
-- ['Polityka'] = {
['Polityka'] = {
-- letter = 'P',
letter = 'P',
-- color = '#090082',
color = '#090082',
-- text = {
text = {
-- "Zobacz więcej artykułów w '''[[Portal:Polityka|portalu o polityce]]'''."
"Zobacz więcej artykułów w '''[[Portal:Polityka|portalu o polityce]]'''."
-- }
}
-- },
},
}
}



Wersja z 11:17, 19 wrz 2021

Generuje linki do portali w szablonie {{Stopka}}. Zobacz też: Moduł:Stopka.


local tools = require('Moduł:Narzędzia')
local p = {}

-- Portale dodawaj alfabetycznie.
-- Edytuj śmiało, teksty zachęcające do kliknięcia w link są losowane z podanej tu puli
local portals = {
	['Historia'] = {
		letter = 'H',
		color = '#820000',
		text = {
			"Zobacz więcej artykułów w '''[[Portal:Historia|portalu o historii]]'''."
		}
	},
	['Polityka'] = {
		letter = 'P',
	 	color = '#090082',
		text = {
			"Zobacz więcej artykułów w '''[[Portal:Polityka|portalu o polityce]]'''."
		}
	},
}

function p.getText()
	local text = ''
	local title = mw.title.getCurrentTitle()
	local res = mw.smw.getQueryResult{ 
		'[[Zawiera artykuł::' .. title.fullText .. ']]',
		'[[Portal:+]]'
	}
	
	for _, r in ipairs(res.results) do
		local name = mw.ustring.gsub(r.fulltext, 'Portal:', '')
		local info = portals[name]
		
		if info then
			div = mw.html.create('div')
				:addClass('n-portal-link')
				--
				:tag('span')
				:addClass('n-portal-initial')
				:addClass('link-kolor')
				:cssText('color: ' .. info.color)
				:node('[[Portal:' .. name .. '|' .. info.letter .. ']]')
				:done()
				--
				:tag('span')
				:addClass('n-portal-link-text')
				:node(info.text[math.random(#info.text)])
				:done()
			
			text = tostring(div)
		end
	end
	
	return text
end


return p