Module:Lilytest: Difference between revisions

2,847 bytes added ,  3 years ago
m
no edit summary
mNo edit summary
mNo edit summary
Line 1:
local p = {}
local t = require('Module:Arguments')
 
function p.nsliste(frame)
--{{#invoke:Hili|nsliste|ab=}}
--erzeugt eine Tabelle mit Seitennummer und Namen in einem Namensraum
--sehr teuer in der Ausführung, daher werden nur 100 Listeneinträge
--inzwischen habe ich die Zahl der zulässigen Aufrufe in der LocalSettings.php auf 20000 erhöht, also praktisch unlimitiert
--Parameter: ab/abwo, Zahl ab der gestartet wird
local a = frame.args -- direkt per #invoke: übergeben
if empty(a) then a = mw.getCurrentFrame().args end -- an die Vorlage übergebene Parameter
 
local _ = ''
local seite, sname, ns, nstitel
local abwo = tonumber(a.ab or a.abwo) or 1
local bishin = tonumber(a.bis or a.bishin) or 100
local myns = string.lower(t.tidy(a.ns) or '')
local __ = '\nmyns: ' .. myns
for i = abwo, bishin do
seite = mw.title.new(i)
if seite then
nstitel = string.lower(seite.nsText)
ns = tostring(seite.namespace)
if myns == nstitel or myns == ns then
_ = _ .. '<tr><td>' .. i .. '</td><td>[[:' .. seite.prefixedText .. '|' .. seite.text .. ']]</td></tr>\n'
end
--__ = __ .. '\nns: ' .. ns .. ' nstitel: ' .. nstitel
end
end
_ = '<table class="cute"><tr><th>ID</th><th>Name</th></tr>' .. _ .. '</table>'
return _ --.. __
end
 
function p.nrliste(frame)
--{{#invoke:Hili|nrliste|ab=}}
--erzeugt eine Tabelle mit Seitennummer und Namen
--sehr teuer in der Ausführung, daher werden nur 100 Listeneinträge
--inzwischen habe ich die Zahl der zulässigen Aufrufe in der LocalSettings.php auf 20000 erhöht, also praktisch unlimitiert
--Parameter: ab/abwo, Zahl ab der gestartet wird
local a = frame.args -- direkt per #invoke: übergeben
if empty(a) then a = mw.getCurrentFrame().args end -- an die Vorlage übergebene Parameter
 
local _ = ''
local seite, sname, ns, nstitel
local abwo = tonumber(a.ab or a.abwo) or 1
 
for i = abwo, abwo + 99 do
seite = mw.title.new(i)
if seite then
nstitel=seite.nsText
if nstitel == '' then nstitel = 'Artikel' end
_ = _ .. '<tr><td>' .. i .. '</td><td>[[:' .. seite.prefixedText .. '|' .. seite.text .. ']]</td><td>' .. nstitel .. '</td></tr>\n'
end
end
_ = '<table class="cute"><tr><th>ID</th><th>Name</th><th>Namensraum</th></tr>' .. _ .. '</table>'
return _
end
 
function p.getid(frame)
--{{#invoke:Hili|getid|seite=|ns=}}
local was = frame.args.seite or frame:getParent().args.seite or 'Lua' -- Seitentitel
local ns = frame.args.ns or frame:getParent().args.ns or '' -- Namensraum
local namesp = t.tidy(ns) or 'Artikel'
local seite = mw.title.new(was, ns)
local _ = seite.id
if _ == 0 then return 'Seite ' .. was .. ' existiert nicht im Namensraum ' .. namesp end
namesp = seite.nsText
local fulln = seite.prefixedText
return 'Die Seite ' .. fulln .. ' hat die ID ' .. _
end
-- {{#invoke:Lilytest|html}}
function p.html(frame)
127

edits