Modul:Faktenbox: Unterschied zwischen den Versionen

setPageAttr() optimiert
(Änderung 756274 von HeikoBot (Diskussion) rückgängig gemacht.)
Markierung: Rückgängigmachung
(setPageAttr() optimiert)
Zeile 392: Zeile 392:
end
end
end
end
if mw.smw.getPropertyType(attr_name) == "_wpg" and string.find(val, "%[") == nil and string.find(val, "<") == nil then
if mw.smw.getPropertyType(attr_name) == "_wpg" then -- Seiten-Attribute Spezialbehandlung
t = t .. p.setPageAttr(attr_name, val)
t = t .. p.setPageAttr(attr_name, val)
else
else
Zeile 509: Zeile 509:
function p.setPageAttr(name, val)
function p.setPageAttr(name, val)
local t = ""
local t = ""
if wik.pageexists(val) then
if string.find(val, "%[") ~= nil or string.find(val, "<") ~= nil then -- problemtische Wikitext/HTML-Inhalte regulär setzen
t = t .. "[[" .. name .. "::" .. val .. "]]"
t = "[[" .. name .. "::" .. val .. "]]" -- und damit bewusst Verarbeitungsfehler provozieren
elseif wik.pageexists(val) then -- eine vorhandene Seite regulär setzen
t = "[[" .. name .. "::" .. val .. "]]"
else
else
val_pre_bracket, val_without_bracket, val_post_bracket = str.bracketSplitAndStrip(val)
val_pre_bracket, val_without_bracket, val_post_bracket = str.bracketSplitAndStrip(val) -- nach Klammern suchen und aufteilen
if wik.pageexists(val_without_bracket) then
if not wik.pageexists(val_without_bracket) then -- Seite auch ohne Klammern nicht vorhanden?
if val_pre_bracket ~= "" then
t = val .. "{{#set:" .. name .. "=" .. val .. "}}" -- ==> kein Link, sondern nur Attribut versteckt setzen
else
if val_pre_bracket ~= "" then -- Klammer-Text vor eigentlicher Seite
t = t .. val_pre_bracket .. " "
t = t .. val_pre_bracket .. " "
end
end
t = t .. "[[" .. name .. "::" .. val_without_bracket .. "]]"
t = t .. "[[" .. name .. "::" .. val_without_bracket .. "]]" -- das eigentliche Attribut-Setzen
if val_post_bracket ~= "" then
if val_post_bracket ~= "" then -- Klammer-Text nach eigentlicher Seite
t = t .. " " .. val_post_bracket
t = t .. " " .. val_post_bracket
end
end
else
t = t .. val .. "{{#set:" .. name .. "=" .. val .. "}}" -- dann kein Link, sondern nur Attribut versteckt setzen
end
end
end
end