Zum Inhalt springen

Modul:Lizenzhinweis

Aus Wikonia

Zweck[Quelltext 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[Quelltext 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[Quelltext 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[Quelltext 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[Quelltext bearbeiten]

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

Hinweise[Quelltext 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[Quelltext 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