imported>WikiSysop Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 58: | Zeile 58: | ||
return 'RzF - ' .. subpagename .. ' - zu ' .. paragraphAbsNrSatz .. ' ' .. namespaceText | return 'RzF - ' .. subpagename .. ' - zu ' .. paragraphAbsNrSatz .. ' ' .. namespaceText | ||
end | |||
-- {{#invoke:RzF|suchinfo|{{#var:displayTitle|}}|{{{paragraph|}}}|{{{absatz|}}}|{{{satz|}}}}} | |||
function p.suchinfo ( frame ) | |||
local displayTitle = mw.text.trim( frame.args[1] ) | |||
local paragraph = mw.text.trim( frame.args[2] ) | |||
local absatz = mw.text.trim( frame.args[3] ) | |||
local satz = mw.text.trim( frame.args[4] ) | |||
local paragraphPrefixes = { 'Paragraph ', '§ ', '§' } | |||
local absatzPrefixes = { 'Absatz ', 'Abs. ', 'Abs ' } | |||
local satzPrefixes = { 'Satz ', 'S. ' } | |||
local currentBaseTitle = mw.title.getCurrentTitle().baseText | |||
if string.find( currentBaseTitle, "Nr" ) then | |||
absatzPrefixes = { 'Nummer ', 'Nr. ', 'Nr ' } | |||
end | |||
local text = '' | |||
for i, paragraphPrefix in ipairs(paragraphPrefixes) do | |||
local paragraphText = '' | |||
if not p.isempty(paragraph) then | |||
paragraphText = paragraphPrefix .. paragraph .. ' ' | |||
end | |||
for i, absatzPrefix in ipairs(absatzPrefixes) do | |||
local absatzText = '' | |||
if not p.isempty(absatz) then | |||
absatzText = absatzPrefix .. absatz .. ' ' | |||
end | |||
for i, satzPrefix in ipairs(satzPrefixes) do | |||
local satzText = '' | |||
if not p.isempty(satz) then | |||
satzText = satzPrefix .. satz .. ' ' | |||
end | |||
local allText = paragraphText .. absatzText .. satzText | |||
if not string.find( text, allText ) then | |||
text = text .. allText | |||
end | |||
end | |||
end | |||
end | |||
return text | |||
end | |||
function p.isempty( s ) | |||
return s == nil or s == '' | |||
end | end | ||
return p | return p |
Version vom 27. September 2021, 16:15 Uhr
local p = {}
--- Examples: "RzF - 1 - zu § 103a FlurbG", "RzF - 1 - zu § 10 Nr. 2 b FlurbG"
function p.sortierung ( frame )
local paragraph = mw.text.trim( frame.args[1] ) -- "103a"
local absatz = mw.text.trim( frame.args[2] ) -- "2 b"
absatz = string.gsub( absatz, " ", "" ) -- "2b"
local satz = mw.text.trim( frame.args[3] )
local lfndNr = mw.text.trim( frame.args[4] )
local chars = {
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l',
'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x',
'y', 'z'
}
local weight = 0;
local paragraphEnd = string.sub( paragraph, -1 )
local paragraphEndIndex = p.index_of( chars, paragraphEnd )
if paragraphEndIndex > -1 then
weight = weight + paragraphEndIndex / table.getn( chars )
paragraph = string.sub( paragraph, 1, string.len( paragraph ) -1 )
end
local absatzEnd = string.sub( absatz, -1 )
local absatzEndIndex = p.index_of( chars, absatzEnd )
if absatzEndIndex > -1 then
weight = weight + absatzEndIndex / table.getn( chars )
absatz = string.sub( absatz, 1, string.len( absatz ) -1 )
end
local sort = 0
sort =
( paragraph * 1000000000 ) +
( satz * 1000000 ) +
( absatz * 1000 ) +
lfndNr +
weight
sort = math.ceil( sort * 100 )
return sort
end
function p.index_of ( tab, val )
for index, value in ipairs(tab) do
if value == val then
return index
end
end
return -1
end
-- RzF - {{SUBPAGENAME}} - zu {{BASEPAGENAME}} {{NAMESPACE}}
function p.anzeigename ( frame )
local currentTitle = mw.title.getCurrentTitle()
local subpagename = currentTitle.subpageText
local paragraphAbsNrSatz = currentTitle.baseText
local namespaceText = currentTitle.nsText
return 'RzF - ' .. subpagename .. ' - zu ' .. paragraphAbsNrSatz .. ' ' .. namespaceText
end
-- {{#invoke:RzF|suchinfo|{{#var:displayTitle|}}|{{{paragraph|}}}|{{{absatz|}}}|{{{satz|}}}}}
function p.suchinfo ( frame )
local displayTitle = mw.text.trim( frame.args[1] )
local paragraph = mw.text.trim( frame.args[2] )
local absatz = mw.text.trim( frame.args[3] )
local satz = mw.text.trim( frame.args[4] )
local paragraphPrefixes = { 'Paragraph ', '§ ', '§' }
local absatzPrefixes = { 'Absatz ', 'Abs. ', 'Abs ' }
local satzPrefixes = { 'Satz ', 'S. ' }
local currentBaseTitle = mw.title.getCurrentTitle().baseText
if string.find( currentBaseTitle, "Nr" ) then
absatzPrefixes = { 'Nummer ', 'Nr. ', 'Nr ' }
end
local text = ''
for i, paragraphPrefix in ipairs(paragraphPrefixes) do
local paragraphText = ''
if not p.isempty(paragraph) then
paragraphText = paragraphPrefix .. paragraph .. ' '
end
for i, absatzPrefix in ipairs(absatzPrefixes) do
local absatzText = ''
if not p.isempty(absatz) then
absatzText = absatzPrefix .. absatz .. ' '
end
for i, satzPrefix in ipairs(satzPrefixes) do
local satzText = ''
if not p.isempty(satz) then
satzText = satzPrefix .. satz .. ' '
end
local allText = paragraphText .. absatzText .. satzText
if not string.find( text, allText ) then
text = text .. allText
end
end
end
end
return text
end
function p.isempty( s )
return s == nil or s == ''
end
return p