Hilfe:Module

Aus Star Citizen Wiki

TL;DR

Module sind ausführbare LUA Skripte, die es erlauben, Funktionalitäten im Wiki zu programmieren. Eine Dokumentation aller Funktionalitäten findest du hier.

Module können als "aufgebohrte" Vorlagen verstanden werden; da mit ihnen unter anderem Infoboxen programmiert werden können. Hier im Wiki werden sie meistens so verwendet, dass eine Vorlage ein bestimmtes Modul aufruft, um eine Infobox zu erzeugen.

Eine Übersicht aller im Wiki vorhandenen Module findest du unter Kategorie:Modul.

Information

Module sind ein sehr komplexes und erweitertes Themengebiet! Lass dich also nicht verunsichern wenn du am Anfang mit manchen Konzepten noch nichts verbinden kannst.

Am Beispiel der Seite 300i läuft dies wie folgt ab:

  1. Die Seite 300i bindet die Vorlage Raumschiff ein.
  2. Diese Vorlage ruft zwei Funktionen des Moduls Raumschiff auf:
  • loadApiData - Dies lädt die Daten des Schiffes von api.star-citizen.wiki, und speichert diese als Attribute
  • infoBox - Dies generiert die Infobox anhand der gespeicherten Attribute

Die Funktion eines Moduls wird durch den Code {{#invoke:Modul|Funktion}} aufgerufen.

Erstellen eines Moduls

Um einige Konzepte klarer zu machen wollen wir im folgenden ein Modul erstellen, welches uns zunächst Hallo Star Citizen Wiki! ausgibt.

Dazu nutzen wir unsere Spielwiese unter Modul:Sandbox. Diese Seite kann durch jeden zum Testen und ausprobieren genutzt werden!

Information

Sollte sich auf Modul:Sandbox bereits Code befinden, so kannst du diesen einfach löschen!

Wir legen auf der Seite folgenden Code an und speichern die Seite:

local Sandbox = {} -- Dies ist der Name unseres Moduls
 
function Sandbox.hello( frame )
    return "Hallo Star Citizen Wiki!"
end
 
return Sandbox

Gehe nun auf deine Spielwiese, die du in deinem persönlichen Menü unten Links unter dem Punkt Spielwiese findest. Dort fügst du folgenden Code im Quelltextmodus ein: {{#invoke:Sandbox|hello}}.

Sobald du auf Vorschau klickst, oder die Seite speicherst, solltest du auf deiner Spielwiese den Text Hallo Star Citizen Wiki! sehen.


Erweitern des Moduls

Dies ist zugegeben ein recht einfaches Beispiel, zeigt aber grundlegend wozu ein Modul fähig ist.

Im folgenden wollen wir unser Modul um eine Funktion erweitern, die eine Grußbotschaft für einen angegebenen Namen ausgibt. Dazu fügen wir folgendes unserem Modul:Sandbox hinzu:

local Sandbox = {} -- Dies ist der Name unseres Moduls
 
-- Die bisherige Funktion
function Sandbox.hello( frame )
    return "Hallo Star Citizen Wiki!"
end
 
-- Dies fügen wir hinzu
function Sandbox.gruesse( frame )
    return "Hallo " .. frame.args[ 1 ] .. "!"
end

return Sandbox

Zurück auf unserer Spielwiese rufen wir die neue Funktion wie folgt auf: {{#invoke:Sandbox|gruesse|Star Citizen Wiki}}.

Folgende Konzepte haben wir hierbei verwendet:

  • frame: Dies ist die aktuelle Seite, von der aus das Modul aufgerufen wird. Über dies können zum Beispiel auf den Titel der aktuellen Seite zugreifen. Eine genaue Beschreibung findest du hier.
  • frame.args: Hierüber können wir auf die Argumente des aktuellen Frames zugreifen. In userem Fall nehmen wir das erste Argument (|Star Citizen Wiki), und geben es nach "Hallo " aus.
  • ..: Mithilfe von zwei Punkten können mehrere Zeichenketten miteinander verbunden werden. In userem Fall ist dies "Hallo und Star Citizen Wiki sowie !
Cookies helfen uns bei der Bereitstellung dieses Wikis. Durch die Nutzung des Star Citizen Wiki erklärst du dich damit einverstanden, dass wir Cookies speichern.