Zweck Bearbeiten

Dieses Modul dient der standardisierten Darstellung von Lizenzhinweisen auf Dateiseiten im Wikonia-Wiki. Es erzeugt eine visuell formatierte Box mit Lizenzinformationen, basierend auf intern definierten Datensätzen. Die Ausgestaltung (Icons, Farben, Textstruktur) folgt dem CI von Wikonia.

Verwendung Bearbeiten

Das Modul wird ausschließlich über sogenannte „Wrapper-Vorlagen“ (z. B. Vorlage:Cc-by-sa-4.0) auf Dateiseiten eingebunden. Diese Vorlagen rufen das Modul mit einem festen Lizenztyp auf, z. B.:

{{#invoke: Lizenzhinweis | zeige | typ=cc-by-sa-4.0 }}

Eine direkte Nutzung im Artikelnamensraum oder durch freie Parameter ist nicht vorgesehen.

Funktion Bearbeiten

Das Modul rendert die Ausgabe auf Basis einer Lua-Tabelle mit vordefinierten Lizenzobjekten. Jede Lizenz besitzt:

  • titel: Anzeigetitel der Lizenz
  • icon: eingebundenes Icon (Commons-Dateiname)
  • farbklasse: Farbschema der Box (z. B. cc, pd, copyright)
  • beschreibung: Einleitungstext
  • erlaubt: Liste der erlaubten Nutzungen
  • verboten: Liste der verbotenen Nutzungen
  • bedingung: Liste verpflichtender Bedingungen
  • hinweis: zusätzliche Hinweise (z. B. Markenrecht)
  • link: externer Link zur Lizenz (optional)

Alle Einträge sind optional, nur der Lizenzschlüssel muss eindeutig sein.

Darstellung Bearbeiten

Die generierte Box besteht aus:

  • einem farblich markierten Rahmen (je nach Lizenztyp),
  • einem Icon links,
  • strukturiertem Text rechts (inkl. Bulletpoints),
  • einem abschließenden Link („Details zur Lizenz“) mit FontAwesome-Icon.

Kategorien Bearbeiten

Die Kategorisierung erfolgt ausschließlich über die Wrapper-Vorlage per <includeonly>. Das Modul selbst setzt keine Kategorien.

Hinweise Bearbeiten

  • Die Lizenzdaten sind zentral im Modul gepflegt und sollten nicht in der Vorlage überschrieben werden.
  • Bei neuen Lizenztypen ist ein neuer Tabelleneintrag im Modul anzulegen sowie eine passende Wrapper-Vorlage zu erstellen.
  • Änderungen am Farbsystem oder Icon-Stil müssen mit dem Projektstil von Wikonia abgestimmt werden.

Beispiele Bearbeiten

Typische Wrapper-Vorlagen:

Siehe auch


-- Modul:Lizenzhinweis – zentrale Steuerung der Lizenzboxen für Dateien

local daten = {
 ["cc-by-sa-4.0"] = {
    titel = "CC BY SA 4.0",
    icon = "[[Datei:CC BY-SA logo circle.svg|80px|class=noviewer]]",
    farbklasse = "cc",
    beschreibung = "Dieses Werk steht unter der Creative-Commons-Lizenz »Namensnennung – Weitergabe unter gleichen Bedingungen 4.0 international (CC BY-SA 4.0)«.",
    erlaubt = {
      "Vervielfältigung und Verbreitung – auch kommerziell",
      "Bearbeitung und Weiterentwicklung"
    },
    bedingung = {
      "Nennung des Urhebers (Namensnennung)",
      "Weitergabe nur unter derselben Lizenz (ShareAlike)"
    },
    verboten = {},
    hinweis = {},
    link = "https://creativecommons.org/licenses/by-sa/4.0/deed.de"
  },

  ["cc-by-4.0"] = {
    titel = "CC BY 4.0",
    icon = "[[Datei:CC-BY Icon.png|80px|class=noviewer]]",
    farbklasse = "cc",
    beschreibung = "Dieses Werk steht unter der Creative-Commons-Lizenz »Namensnennung 4.0 international (CC BY 4.0)«.",
    erlaubt = {
      "Vervielfältigung, Verbreitung und Bearbeitung – auch kommerziell"
    },
    bedingung = {
      "Nennung des Urhebers (Namensnennung)"
    },
    verboten = {},
    hinweis = {},
    link = "https://creativecommons.org/licenses/by/4.0/deed.de"
  },

  ["cc-zero"] = {
    titel = "CC ZERO",
    icon = "[[Datei:Cc-zero white.svg|80px|class=noviewer]]",
    farbklasse = "pd",
    beschreibung = "Der Urheber dieses Werks hat es in die Gemeinfreiheit (Public Domain) entlassen.",
    erlaubt = {
      "Jegliche Nutzung ohne Einschränkung",
      "Keine Pflicht zur Namensnennung"
    },
    bedingung = {},
    verboten = {},
    hinweis = {
      "Gesetzliche Schutzrechte Dritter (z. B. Persönlichkeitsrechte) bleiben unberührt."
    },
    link = "https://creativecommons.org/publicdomain/zero/1.0/deed.de"
  },

  ["copy-mumibo"] = {
    titel = "COPY MUMIBO",
    icon = "[[Datei:Bimetrical icon copyright.svg|80px|class=noviewer]]",
    farbklasse = "copyright",
    beschreibung = "Das Werk unterliegt dem Urheberrecht von Mumibo. Eine Nutzung ist nur nach Rücksprache erlaubt.",
    erlaubt = {},
    bedingung = {},
    verboten = {
      "Veröffentlichung ohne Genehmigung",
      "kommerzielle Nutzung"
    },
    hinweis = {},
    link = "https://wikonia.net/Nutzungshinweise"
  },

  ["copy-mumibo-cc-by-sa-4.0"] = {
    titel = "COPY MUMIBO CC BY SA 4.0",
    icon = "[[Datei:CC BY-SA logo circle.svg|80px|class=noviewer]]",
    farbklasse = "copyright",
    beschreibung = "Das Werk ist urheberrechtlich geschützt, wird aber freiwillig unter der Lizenz CC BY-SA 4.0 bereitgestellt.",
    erlaubt = {
      "Nutzung im Rahmen der CC BY-SA 4.0-Bedingungen"
    },
    bedingung = {},
    verboten = {},
    hinweis = {
      "Die Lizenzvergabe kann widerrufen werden – bei Missbrauch droht Entzug."
    },
    link = "https://creativecommons.org/licenses/by-sa/4.0/deed.de"
  },

  ["pd-old"] = {
    titel = "PD OLD",
    icon = "[[Datei:PD-icon-green.svg|80px|class=noviewer]]",
    farbklasse = "pd",
    beschreibung = "Das Werk ist gemeinfrei, da seine Schutzdauer abgelaufen ist.",
    erlaubt = {
      "Nutzung, Vervielfältigung und Bearbeitung ohne Einschränkung"
    },
    bedingung = {},
    verboten = {},
    hinweis = {
      "Das Werk muss eindeutig gemeinfrei sein (z. B. Todesjahr > 70 Jahre zurückliegend)."
    },
    link = "https://de.wikipedia.org/wiki/Gemeinfreiheit"
  },

  ["pd-old-100"] = {
    titel = "PD OLD 100",
    icon = "[[Datei:PD-icon-green.svg|80px|class=noviewer]]",
    farbklasse = "pd",
    beschreibung = "Das Werk ist über 100 Jahre alt und gilt daher in vielen Ländern als gemeinfrei.",
    erlaubt = {
      "Nutzung ohne urheberrechtliche Einschränkung"
    },
    bedingung = {},
    verboten = {},
    hinweis = {
      "Rechtslage kann regional abweichen – Nutzung auf eigene Verantwortung."
    },
    link = "https://de.wikipedia.org/wiki/Gemeinfreiheit"
  },

  ["pd-ineligible"] = {
    titel = "PD INELIGIBLE",
    icon = "[[Datei:PD-icon-blue.svg|80px|class=noviewer]]",
    farbklasse = "pd",
    beschreibung = "Das Werk ist mangels Schöpfungshöhe nicht urheberrechtlich geschützt.",
    erlaubt = {
      "Freie Nutzung, da kein urheberrechtlicher Schutz besteht"
    },
    bedingung = {},
    verboten = {},
    hinweis = {
      "Es kann Marken- oder Designschutz bestehen – im Zweifel prüfen!"
    },
    link = "https://de.wikipedia.org/wiki/Werke_mit_zu_geringer_Schöpfungshöhe"
  },

  ["pd-textlogo"] = {
  titel = "PD TEXTLOGO",
  icon = "[[Datei:Commons-emblem-registered-trademark black.svg|80px|class=noviewer]]",
  farbklasse = "pd",
  beschreibung = "Dieses Bild besteht ausschließlich aus einfachem Text oder simplen geometrischen Formen ohne ausreichende Schöpfungshöhe und ist daher nicht urheberrechtlich geschützt.",
  erlaubt = {
    "Verwendung ohne urheberrechtliche Einschränkung"
  },
  bedingung = {},
  verboten = {},
  hinweis = {
    "Das Bild kann trotz fehlenden Urheberrechtsschutzes durch Markenrecht, Wettbewerbsrecht oder Designschutz eingeschränkt sein.",
    "Der Upload von Schriftarten, typografischen Layouts oder Logo-Varianten mit kreativer Gestaltung ist auf Wikonia nicht zulässig."
  },
  link = "https://de.wikipedia.org/wiki/Datei:PD-textlogo"
},

  ["dateiüberprüfung"] = {
    titel = "DATEIÜBERPRÜFUNG",
    icon = "[[Datei:Page issue icon - medium.svg|80px|class=noviewer]]",
    farbklasse = "unbekannt",
    beschreibung = "Für diese Datei konnte (noch) keine eindeutige Lizenz festgestellt werden.",
    erlaubt = {},
    bedingung = {},
    verboten = {},
    hinweis = {
      "Bitte überprüfe die Herkunft und ergänze die Lizenzangaben."
    },
    link = ""
  }
}


local function liste(titel, inhalt)
  if not inhalt or type(inhalt) ~= "table" or #inhalt == 0 then
    return ""
  end
  local html = "<p><strong>" .. titel .. ":</strong></p><ul>"
  for _, punkt in ipairs(inhalt) do
    html = html .. "<li>" .. punkt .. "</li>"
  end
  return html .. "</ul>"
end

local p = {}

function p.zeige(frame)
  local typ = frame.args.typ
  local eintrag = daten[typ]

  if not eintrag then
    return '<strong class="error">Unbekannter Lizenztyp: ' .. (typ or '–') .. '</strong>'
  end

  local erlaubt_html   = liste("Erlaubt",   eintrag.erlaubt)
  local verboten_html  = liste("Nicht erlaubt", eintrag.verboten)
  local bedingung_html = liste("Nur unter folgenden Bedingungen", eintrag.bedingung)
  local hinweis_html   = liste("Hinweis", eintrag.hinweis)
  local lizenzlink_html = string.format(
  '<div class="lizenz-link">[%s Details zur Lizenz]</div>',
  eintrag.link
)


return string.format([[
<div class="lizenzbox lizenz-%s">
  <div class="lizenzbox-header">Lizenz: %s</div>
  <div class="lizenzbox-body">
    <div class="lizenzbox-icon">%s</div>
    <div class="lizenzbox-text">
      <p>%s</p>
      %s
      %s
      %s
      %s
      %s
    </div>
  </div>
</div>]],
  eintrag.farbklasse,
  eintrag.titel,
  eintrag.icon,
  eintrag.beschreibung or "",
  erlaubt_html,
  verboten_html,
  bedingung_html,
  hinweis_html,
  lizenzlink_html
)
end

return p