<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://www.helmstedt-wiki.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3AVorlage%3APersonZelle</id>
	<title>Modul:Vorlage:PersonZelle - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://www.helmstedt-wiki.de/index.php?action=history&amp;feed=atom&amp;title=Modul%3AVorlage%3APersonZelle"/>
	<link rel="alternate" type="text/html" href="https://www.helmstedt-wiki.de/index.php?title=Modul:Vorlage:PersonZelle&amp;action=history"/>
	<updated>2026-04-14T23:57:17Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Helmstedt-Wiki</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://www.helmstedt-wiki.de/index.php?title=Modul:Vorlage:PersonZelle&amp;diff=29038&amp;oldid=prev</id>
		<title>Admin am 22. Januar 2025 um 16:45 Uhr</title>
		<link rel="alternate" type="text/html" href="https://www.helmstedt-wiki.de/index.php?title=Modul:Vorlage:PersonZelle&amp;diff=29038&amp;oldid=prev"/>
		<updated>2025-01-22T16:45:09Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 22. Januar 2025, 16:45 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Zeile 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                sub     = &amp;quot;cellPerson&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                sub     = &amp;quot;cellPerson&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                serial  = &amp;quot;2021-03-20&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                serial  = &amp;quot;2021-03-20&amp;quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                cat     = &quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Wikipedia&lt;/del&gt;:Vorlagenfehler/Vorlage:PersonZelle&quot;,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                cat     = &quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Helmstedt-Wiki&lt;/ins&gt;:Vorlagenfehler/Vorlage:PersonZelle&quot;,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                item    = 62090703,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                item    = 62090703,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                globals = { Cell     = 90144855,&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                globals = { Cell     = 90144855,&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://www.helmstedt-wiki.de/index.php?title=Modul:Vorlage:PersonZelle&amp;diff=23440&amp;oldid=prev</id>
		<title>Admin: AZ: Die Seite wurde neu angelegt: local Sort = { suite   = &quot;Sort&quot;,                sub     = &quot;cellPerson&quot;,                serial  = &quot;2021-03-20&quot;,                cat     = &quot;Wikipedia:Vorlagenfehler/Vorlage:PersonZelle&quot;,                item    = 62090703,                globals = { Cell     = 90144855,                            Sorter   = 24205172,                            TemplUtl = 52364930 } } --[=[ Vorlage:PersonZelle ]=] local…</title>
		<link rel="alternate" type="text/html" href="https://www.helmstedt-wiki.de/index.php?title=Modul:Vorlage:PersonZelle&amp;diff=23440&amp;oldid=prev"/>
		<updated>2024-06-20T18:32:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/index.php?title=Hilfe:Zusammenfassung_und_Quellen&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Hilfe:Zusammenfassung und Quellen (Seite nicht vorhanden)&quot;&gt;AZ&lt;/a&gt;: Die Seite wurde neu angelegt: local Sort = { suite   = &amp;quot;Sort&amp;quot;,                sub     = &amp;quot;cellPerson&amp;quot;,                serial  = &amp;quot;2021-03-20&amp;quot;,                cat     = &amp;quot;Wikipedia:Vorlagenfehler/Vorlage:PersonZelle&amp;quot;,                item    = 62090703,                globals = { Cell     = 90144855,                            Sorter   = 24205172,                            TemplUtl = 52364930 } } --[=[ Vorlage:PersonZelle ]=] local…&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local Sort = { suite   = &amp;quot;Sort&amp;quot;,&lt;br /&gt;
               sub     = &amp;quot;cellPerson&amp;quot;,&lt;br /&gt;
               serial  = &amp;quot;2021-03-20&amp;quot;,&lt;br /&gt;
               cat     = &amp;quot;Wikipedia:Vorlagenfehler/Vorlage:PersonZelle&amp;quot;,&lt;br /&gt;
               item    = 62090703,&lt;br /&gt;
               globals = { Cell     = 90144855,&lt;br /&gt;
                           Sorter   = 24205172,&lt;br /&gt;
                           TemplUtl = 52364930 } }&lt;br /&gt;
--[=[&lt;br /&gt;
Vorlage:PersonZelle&lt;br /&gt;
]=]&lt;br /&gt;
local Failsafe  = Sort&lt;br /&gt;
local GlobalMod = Sort&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local foreignModule = function ( access, advanced, append, alt, alert )&lt;br /&gt;
    -- Fetch global module&lt;br /&gt;
    -- Precondition:&lt;br /&gt;
    --     access    -- string, with name of base module&lt;br /&gt;
    --     advanced  -- true, for require(); else mw.loadData()&lt;br /&gt;
    --     append    -- string, with subpage part, if any; or false&lt;br /&gt;
    --     alt       -- number, of wikidata item of root; or false&lt;br /&gt;
    --     alert     -- true, for throwing error on data problem&lt;br /&gt;
    -- Postcondition:&lt;br /&gt;
    --     Returns whatever, probably table&lt;br /&gt;
    -- 2020-01-01&lt;br /&gt;
    local storage = access&lt;br /&gt;
    local finer = function ()&lt;br /&gt;
                      if append then&lt;br /&gt;
                          storage = string.format( &amp;quot;%s/%s&amp;quot;,&lt;br /&gt;
                                                   storage,&lt;br /&gt;
                                                   append )&lt;br /&gt;
                      end&lt;br /&gt;
                  end&lt;br /&gt;
    local fun, lucky, r, suited&lt;br /&gt;
    if advanced then&lt;br /&gt;
        fun = require&lt;br /&gt;
    else&lt;br /&gt;
        fun = mw.loadData&lt;br /&gt;
    end&lt;br /&gt;
    GlobalMod.globalModules = GlobalMod.globalModules or { }&lt;br /&gt;
    suited = GlobalMod.globalModules[ access ]&lt;br /&gt;
    if not suited then&lt;br /&gt;
        finer()&lt;br /&gt;
        lucky, r = pcall( fun,  &amp;quot;Module:&amp;quot; .. storage )&lt;br /&gt;
    end&lt;br /&gt;
    if not lucky then&lt;br /&gt;
        if not suited  and&lt;br /&gt;
           type( alt ) == &amp;quot;number&amp;quot;  and&lt;br /&gt;
           alt &amp;gt; 0 then&lt;br /&gt;
            suited = string.format( &amp;quot;Q%d&amp;quot;, alt )&lt;br /&gt;
            suited = mw.wikibase.getSitelink( suited )&lt;br /&gt;
            GlobalMod.globalModules[ access ] = suited or true&lt;br /&gt;
        end&lt;br /&gt;
        if type( suited ) == &amp;quot;string&amp;quot; then&lt;br /&gt;
            storage = suited&lt;br /&gt;
            finer()&lt;br /&gt;
            lucky, r = pcall( fun, storage )&lt;br /&gt;
        end&lt;br /&gt;
        if not lucky and alert then&lt;br /&gt;
            error( &amp;quot;Missing or invalid page: &amp;quot; .. storage )&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return r&lt;br /&gt;
end -- foreignModule()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local fetch = function ( access, append, alert )&lt;br /&gt;
    -- Fetch global library&lt;br /&gt;
    -- Precondition:&lt;br /&gt;
    --     access    -- string|false, with name of base module&lt;br /&gt;
    --     append    -- string, with subpage part, if any; or false&lt;br /&gt;
    --     alert     -- true, for throwing error on data problem&lt;br /&gt;
    local store, sub, suite&lt;br /&gt;
    if access then&lt;br /&gt;
        suite = access&lt;br /&gt;
        store = access&lt;br /&gt;
    else&lt;br /&gt;
        suite = Sort.suite&lt;br /&gt;
        if append then&lt;br /&gt;
            sub   = append:lower()&lt;br /&gt;
            store = append&lt;br /&gt;
        else&lt;br /&gt;
            store = &amp;quot;Sorter&amp;quot;&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    if type( Sort[ store ] ) == &amp;quot;nil&amp;quot; then&lt;br /&gt;
        local bib = foreignModule( suite,&lt;br /&gt;
                                   true,&lt;br /&gt;
                                   sub,&lt;br /&gt;
                                   Sort.globals[ store ],&lt;br /&gt;
                                   alert )&lt;br /&gt;
        if bib  and  type( bib[ suite ] ) == &amp;quot;function&amp;quot; then&lt;br /&gt;
            Sort[ store ] = bib[ suite ]()&lt;br /&gt;
        else&lt;br /&gt;
            error( tostring( bib ) )&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return Sort[ store ]&lt;br /&gt;
end -- fetch()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
local function fault( alert, frame )&lt;br /&gt;
    -- Format error message&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     alert  -- string, with complaint&lt;br /&gt;
    --     frame  -- object, or nil&lt;br /&gt;
    -- Returns string&lt;br /&gt;
    local TemplUtl = fetch( &amp;quot;TemplUtl&amp;quot; )&lt;br /&gt;
    local staff    = &amp;quot;editoronly&amp;quot;&lt;br /&gt;
    local r&lt;br /&gt;
    if TemplUtl then&lt;br /&gt;
        local live&lt;br /&gt;
        if mw.title.getCurrentTitle().namespace ~= 0 then&lt;br /&gt;
            live  = true&lt;br /&gt;
            staff = false&lt;br /&gt;
        end&lt;br /&gt;
        r = TemplUtl.failure( alert, live, staff, frame )&lt;br /&gt;
    else&lt;br /&gt;
        local e = mw.html.create( &amp;quot;span&amp;quot; )&lt;br /&gt;
                         :addClass( &amp;quot;error&amp;quot; )&lt;br /&gt;
                         :wikitext( alert )&lt;br /&gt;
        r = tostring( e )&lt;br /&gt;
    end&lt;br /&gt;
    r = string.format( &amp;quot; %s [[Category:%s]]&amp;quot;, r, Sort.cat )&lt;br /&gt;
    return r&lt;br /&gt;
end -- fault()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sort.f = function ( arglist, frame )&lt;br /&gt;
    -- Do it.&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     arglist  -- table, with parameters&lt;br /&gt;
    --     frame    -- object, or nil&lt;br /&gt;
    -- Returns:&lt;br /&gt;
    --     string&lt;br /&gt;
    local params = { [ 1 ]   = false,&lt;br /&gt;
                     [ 2 ]   = false,&lt;br /&gt;
                     [ 3 ]   = false,&lt;br /&gt;
                     fett    = false,&lt;br /&gt;
                     k       = false,&lt;br /&gt;
                     kursiv  = false,&lt;br /&gt;
                     nl      = false,&lt;br /&gt;
                     pre     = false,&lt;br /&gt;
                     postfix = false,&lt;br /&gt;
                     revers  = false,&lt;br /&gt;
                     zeige1  = true,&lt;br /&gt;
                     zeige2  = true,&lt;br /&gt;
                     rowspan = false,&lt;br /&gt;
                     colspan = false,&lt;br /&gt;
                     class   = false,&lt;br /&gt;
                     style   = false,&lt;br /&gt;
                     id      = false,&lt;br /&gt;
                     lang    = false,&lt;br /&gt;
                     dir     = false&lt;br /&gt;
                      }&lt;br /&gt;
    local r, unknown&lt;br /&gt;
    fetch( false, &amp;quot;Cell&amp;quot;, true )&lt;br /&gt;
    for k, v in pairs( arglist ) do&lt;br /&gt;
        if type( params[ k ] ) == &amp;quot;boolean&amp;quot; then&lt;br /&gt;
            v = mw.text.trim( v )&lt;br /&gt;
            if v ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                params[ k ] = v&lt;br /&gt;
            end&lt;br /&gt;
        else&lt;br /&gt;
            if unknown then&lt;br /&gt;
                unknown = string.format( &amp;quot;%s, %s&amp;quot;, unknown, k )&lt;br /&gt;
            else&lt;br /&gt;
                unknown = k&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end -- for k, v in arglist&lt;br /&gt;
    params.vor = params[ 1 ]&lt;br /&gt;
    params.fam = params[ 2 ]&lt;br /&gt;
    if params.fam then&lt;br /&gt;
        local got, present&lt;br /&gt;
        present        = Sort.Cell.first( params, true )&lt;br /&gt;
        params.artikel = params[ 3 ]&lt;br /&gt;
        if params.nl == &amp;quot;0&amp;quot; then&lt;br /&gt;
            params.nl = false&lt;br /&gt;
        end&lt;br /&gt;
        if params.fett == &amp;quot;0&amp;quot; then&lt;br /&gt;
            params.fett = false&lt;br /&gt;
        end&lt;br /&gt;
        if params.kursiv == &amp;quot;0&amp;quot; then&lt;br /&gt;
            params.kursiv = false&lt;br /&gt;
        end&lt;br /&gt;
        if params.revers == &amp;quot;0&amp;quot; then&lt;br /&gt;
            params.revers = false&lt;br /&gt;
        end&lt;br /&gt;
        if params.zeige1 == &amp;quot;0&amp;quot; then&lt;br /&gt;
            params.zeige1 = false&lt;br /&gt;
        end&lt;br /&gt;
        if params.zeige2 == &amp;quot;0&amp;quot;  and&lt;br /&gt;
           params.zeige1  and&lt;br /&gt;
           params.vor then&lt;br /&gt;
            params.zeige2 = false&lt;br /&gt;
        end&lt;br /&gt;
        got = Sort.fiat( params )&lt;br /&gt;
        if got.sort then&lt;br /&gt;
            Sort.Cell.faced( present, got.sort )&lt;br /&gt;
        end&lt;br /&gt;
        r = Sort.Cell.finalize( present, got.show )&lt;br /&gt;
        if got.strange then&lt;br /&gt;
            r = r .. fault( got.strange, frame )&lt;br /&gt;
        end&lt;br /&gt;
    else&lt;br /&gt;
        local s = &amp;quot;Pflichtparameter (Familienname) fehlt&amp;quot;&lt;br /&gt;
        r = &amp;quot;|&amp;quot;&lt;br /&gt;
        if params.vor then&lt;br /&gt;
            r = r .. params.vor&lt;br /&gt;
            s = string.format( &amp;quot;%s &amp;amp;#8211; %s&amp;quot;, s, params.vor )&lt;br /&gt;
        end&lt;br /&gt;
        r = r .. fault( s, frame )&lt;br /&gt;
    end&lt;br /&gt;
    if unknown then&lt;br /&gt;
        r = r  ..  fault( &amp;quot;Unbekannter Parametername(n) &amp;quot; .. unknown,&lt;br /&gt;
                          frame )&lt;br /&gt;
    end&lt;br /&gt;
    return r&lt;br /&gt;
end -- Sort.f()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Sort.fiat = function ( arglist )&lt;br /&gt;
    -- Create sortkey and presented name&lt;br /&gt;
    -- Parameter:&lt;br /&gt;
    --     arglist  -- table, with parameters&lt;br /&gt;
    -- Postcondition:&lt;br /&gt;
    --     Returns  table, or nil&lt;br /&gt;
    --              .show     -- string, with HTML cell contents&lt;br /&gt;
    --              .sort     -- string, with sort-value, if required&lt;br /&gt;
    --              .strange  -- string, with error message, if any&lt;br /&gt;
    local params = { fam     = false,&lt;br /&gt;
                     vor     = false,&lt;br /&gt;
                     artikel = false,&lt;br /&gt;
                     fett    = false,&lt;br /&gt;
                     k       = false,&lt;br /&gt;
                     kursiv  = false,&lt;br /&gt;
                     nl      = false,&lt;br /&gt;
                     pre     = false,&lt;br /&gt;
                     postfix = false,&lt;br /&gt;
                     revers  = false,&lt;br /&gt;
                     zeige1  = true,&lt;br /&gt;
                     zeige2  = true,&lt;br /&gt;
                   }&lt;br /&gt;
    local r, s&lt;br /&gt;
    for k, v in pairs( arglist ) do&lt;br /&gt;
        if type( params[ k ] ) == &amp;quot;boolean&amp;quot; then&lt;br /&gt;
            s = type( v )&lt;br /&gt;
            if s == &amp;quot;string&amp;quot; then&lt;br /&gt;
                v = mw.text.trim( v )&lt;br /&gt;
                if v ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                    params[ k ] = v&lt;br /&gt;
                end&lt;br /&gt;
            elseif s == &amp;quot;boolean&amp;quot; then&lt;br /&gt;
                params[ k ] = v&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end -- for k, v in arglist&lt;br /&gt;
    if params.fam then&lt;br /&gt;
        local slot = params.artikel&lt;br /&gt;
        local sort&lt;br /&gt;
        r    = { show = params.fam }&lt;br /&gt;
        sort = r.show&lt;br /&gt;
        s    = r.show&lt;br /&gt;
        if params.vor  and  params.zeige1 then&lt;br /&gt;
            s = params.vor&lt;br /&gt;
            if params.zeige2 then&lt;br /&gt;
                if not Sort.swing then&lt;br /&gt;
                    Sort.swing = mw.ustring.char( 91,   39,&lt;br /&gt;
                                                      0x2019,&lt;br /&gt;
                                                        37, 45,&lt;br /&gt;
                                                  93 )&lt;br /&gt;
                end&lt;br /&gt;
                if mw.ustring.find( mw.ustring.sub( s, -1 ),&lt;br /&gt;
                                    Sort.swing ) then&lt;br /&gt;
                    r.show = string.format( &amp;quot;%s%s&amp;quot;, s, r.show )&lt;br /&gt;
                else&lt;br /&gt;
                    r.show = string.format( &amp;quot;%s %s&amp;quot;, s, r.show )&lt;br /&gt;
                end&lt;br /&gt;
            else&lt;br /&gt;
                r.show = s&lt;br /&gt;
            end&lt;br /&gt;
            if params.revers then&lt;br /&gt;
                sort = string.format( &amp;quot;%s, %s&amp;quot;, s, sort )&lt;br /&gt;
            else&lt;br /&gt;
                sort = string.format( &amp;quot;%s, %s&amp;quot;, sort, s )&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
        if params.k then&lt;br /&gt;
            if params.nl then&lt;br /&gt;
                r.strange = &amp;quot;Widerspruch k=... und nl=1&amp;quot;&lt;br /&gt;
            elseif slot then&lt;br /&gt;
                r.strange = &amp;quot;Widerspruch k=... und 3=...&amp;quot;&lt;br /&gt;
            else&lt;br /&gt;
                slot = string.format( &amp;quot;%s (%s)&amp;quot;, r.show, params.k )&lt;br /&gt;
            end&lt;br /&gt;
            sort = string.format( &amp;quot;%s @%s&amp;quot;, sort, params.k )&lt;br /&gt;
        end&lt;br /&gt;
        if params.postfix then&lt;br /&gt;
            sort = string.format( &amp;quot;%s %s&amp;quot;, sort, params.postfix )&lt;br /&gt;
        end&lt;br /&gt;
        if not params.nl then&lt;br /&gt;
            if slot then&lt;br /&gt;
                r.show = string.format( &amp;quot;%s|%s&amp;quot;, slot, r.show )&lt;br /&gt;
            end&lt;br /&gt;
            r.show = string.format( &amp;quot;[[%s]]&amp;quot;, r.show )&lt;br /&gt;
        end&lt;br /&gt;
        if params.fett or params.kursiv then&lt;br /&gt;
            local e = mw.html.create( &amp;quot;span&amp;quot; )&lt;br /&gt;
            if params.fett then&lt;br /&gt;
                e:css( &amp;quot;font-weight&amp;quot;, &amp;quot;bold&amp;quot; )&lt;br /&gt;
            end&lt;br /&gt;
            if params.kursiv then&lt;br /&gt;
                e:css( &amp;quot;font-style&amp;quot;, &amp;quot;italic&amp;quot; )&lt;br /&gt;
            end&lt;br /&gt;
            r.show = tostring( e:wikitext( r.show ) )&lt;br /&gt;
        end&lt;br /&gt;
        if params.pre then&lt;br /&gt;
            r.show = string.format( &amp;quot;%s %s&amp;quot;, params.pre, r.show )&lt;br /&gt;
        end&lt;br /&gt;
        if sort:find( &amp;quot;[^ %w,#]&amp;quot; ) then&lt;br /&gt;
            local Sorter = fetch( &amp;quot;Sort&amp;quot;, false, true )&lt;br /&gt;
            sort = Sorter.lex( sort, &amp;quot;latin&amp;quot; )&lt;br /&gt;
        end&lt;br /&gt;
        if sort:find( &amp;quot;[^, %w]&amp;quot; ) then&lt;br /&gt;
            local quotes = mw.ustring.char( 91,   34,&lt;br /&gt;
                                                  39,&lt;br /&gt;
                                                 171,&lt;br /&gt;
                                                 187,&lt;br /&gt;
                                                8216,&lt;br /&gt;
                                                8217,&lt;br /&gt;
                                                8218,&lt;br /&gt;
                                                8220,&lt;br /&gt;
                                                8221,&lt;br /&gt;
                                                8222,&lt;br /&gt;
                                                8249,&lt;br /&gt;
                                                8250,&lt;br /&gt;
                                                0x300C,&lt;br /&gt;
                                                0x300D,&lt;br /&gt;
                                                0x300E,&lt;br /&gt;
                                                0x300F, 93 )&lt;br /&gt;
            sort = mw.ustring.gsub( sort, quotes, &amp;quot;&amp;quot; )&lt;br /&gt;
        end&lt;br /&gt;
        if params.pre  or  params.vor  or  sort ~= params.fam then&lt;br /&gt;
            r.sort = sort&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return r&lt;br /&gt;
end -- Sort.fiat()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Failsafe.failsafe = function ( atleast )&lt;br /&gt;
    -- Retrieve versioning and check for compliance&lt;br /&gt;
    -- Precondition:&lt;br /&gt;
    --     atleast  -- string, with required version&lt;br /&gt;
    --                         or &amp;quot;wikidata&amp;quot; or &amp;quot;~&amp;quot; or &amp;quot;@&amp;quot; or false&lt;br /&gt;
    -- Postcondition:&lt;br /&gt;
    --     Returns  string  -- with queried version/item, also if problem&lt;br /&gt;
    --              false   -- if appropriate&lt;br /&gt;
    -- 2020-08-17&lt;br /&gt;
    local since = atleast&lt;br /&gt;
    local last    = ( since == &amp;quot;~&amp;quot; )&lt;br /&gt;
    local linked  = ( since == &amp;quot;@&amp;quot; )&lt;br /&gt;
    local link    = ( since == &amp;quot;item&amp;quot; )&lt;br /&gt;
    local r&lt;br /&gt;
    if last  or  link  or  linked  or  since == &amp;quot;wikidata&amp;quot; then&lt;br /&gt;
        local item = Failsafe.item&lt;br /&gt;
        since = false&lt;br /&gt;
        if type( item ) == &amp;quot;number&amp;quot;  and  item &amp;gt; 0 then&lt;br /&gt;
            local suited = string.format( &amp;quot;Q%d&amp;quot;, item )&lt;br /&gt;
            if link then&lt;br /&gt;
                r = suited&lt;br /&gt;
            else&lt;br /&gt;
                local entity = mw.wikibase.getEntity( suited )&lt;br /&gt;
                if type( entity ) == &amp;quot;table&amp;quot; then&lt;br /&gt;
                    local seek = Failsafe.serialProperty or &amp;quot;P348&amp;quot;&lt;br /&gt;
                    local vsn  = entity:formatPropertyValues( seek )&lt;br /&gt;
                    if type( vsn ) == &amp;quot;table&amp;quot;  and&lt;br /&gt;
                       type( vsn.value ) == &amp;quot;string&amp;quot;  and&lt;br /&gt;
                       vsn.value ~= &amp;quot;&amp;quot; then&lt;br /&gt;
                        if last  and  vsn.value == Failsafe.serial then&lt;br /&gt;
                            r = false&lt;br /&gt;
                        elseif linked then&lt;br /&gt;
                            if mw.title.getCurrentTitle().prefixedText&lt;br /&gt;
                               ==  mw.wikibase.getSitelink( suited ) then&lt;br /&gt;
                                r = false&lt;br /&gt;
                            else&lt;br /&gt;
                                r = suited&lt;br /&gt;
                            end&lt;br /&gt;
                        else&lt;br /&gt;
                            r = vsn.value&lt;br /&gt;
                        end&lt;br /&gt;
                    end&lt;br /&gt;
                end&lt;br /&gt;
            end&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    if type( r ) == &amp;quot;nil&amp;quot; then&lt;br /&gt;
        if not since  or  since &amp;lt;= Failsafe.serial then&lt;br /&gt;
            r = Failsafe.serial&lt;br /&gt;
        else&lt;br /&gt;
            r = false&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return r&lt;br /&gt;
end -- Failsafe.failsafe()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Export&lt;br /&gt;
local p = { }&lt;br /&gt;
&lt;br /&gt;
function p.test( arglist )&lt;br /&gt;
    return Sort.f( arglist )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.f = function ( frame )&lt;br /&gt;
    local lucky, r = pcall( Sort.f, frame:getParent().args, frame )&lt;br /&gt;
    if not lucky then&lt;br /&gt;
        r = fault( r )&lt;br /&gt;
    end&lt;br /&gt;
    return r&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
p.failsafe = function ( frame )&lt;br /&gt;
    -- Versioning interface&lt;br /&gt;
    local s = type( frame )&lt;br /&gt;
    local since&lt;br /&gt;
    if s == &amp;quot;table&amp;quot; then&lt;br /&gt;
        since = frame.args[ 1 ]&lt;br /&gt;
    elseif s == &amp;quot;string&amp;quot; then&lt;br /&gt;
        since = frame&lt;br /&gt;
    end&lt;br /&gt;
    if since then&lt;br /&gt;
        since = mw.text.trim( since )&lt;br /&gt;
        if since == &amp;quot;&amp;quot; then&lt;br /&gt;
            since = false&lt;br /&gt;
        end&lt;br /&gt;
    end&lt;br /&gt;
    return Failsafe.failsafe( since )  or  &amp;quot;&amp;quot;&lt;br /&gt;
end -- p.failsafe&lt;br /&gt;
&lt;br /&gt;
function p.Sort()&lt;br /&gt;
    -- Module interface&lt;br /&gt;
    return Sort&lt;br /&gt;
end -- p.Sort()&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>