.info Dateien schreiben
Die .info Datei stellt Drupal ein paar mehr informationen zu Deinem Modul zur Verfügung. Die Datei wird hauptsächlich vom Administrationssystem der Module zu Anzeigezwecken und zur Bestimmung von Kriterien zur Aktivierung und Deaktivierung verwendet. Die Datei ist zwingend erforderlich, damit Drupal das Modul überhaupt wahrnimmt.
Folgend ein Beispiel einer .info Datei:
; $Id$
name = Example module
description = "Gives an example of a module."
core = 6.x
package = Views
dependencies[] = views
dependencies[] = panels
Die .info Datei sollte den gleichen Namen wie die .module Datei haben und im selben Verzeichnis liegen. Wenn das Modul beispielsweise example.module genannt wurde, muss die .info Datei example.info heissen.
Die Datei wird im Standard .ini Format geschrieben. Das bedeutet, dass die Einträge in Schlüssel/Wert Paaren, getreent durch =
geschrieben werden. Werte können auch in Anführungeszeichen ("
) gesetzt werden, so dass die Werte auch Zeilenumbrüche enthalten können.
description = "Fred's crazy, crazy module; use with care!"
.info Dateien können Kommentare enthalten. Das kommentarzeichen ist das Semikolon und markiert einen Kommentar am Anfang einer Zeile. Üblicherweise wird die CVS Id in die erste Zeile der .info Datei mittels eines Kommentars gesetzt:
; $Id$
Die .info Datei kann die folgenden Einträge enthalten:
- name (erforderlich)
- Der angezeigte Name des Moduls. Der Name sollte Drupal's Regeln zur Grossschreibung beachten: nur der erste Buchstabe des ersten Wortes wird gross geschrieben ("Example module", nicht "example module" oder "Example Module"). Leerzeichen sind erlaubt, da der Name hauptsächlich zur Anzeige da ist.
name = "Forum"
- description (erforderlich)
- Kurz gesagt, vorzugsweise eine einzeilige Beschreibung, die dem Administrator auf der Modulseite (admin/build/modules) erklärt, was das Modul eigentlich macht. Bedenke, dass übermässig lange Beschreibungen den umgang mit der Modulseite schwierig machen können, also bitte fasse Dich kurz und sei präzise bei der Beschreibung. Das Feld ist auf 255 Zeichen beschränkt.
Und noch ein Tipp: die Standardsprache von Drupal ist Englisch! Also sollten sämtliche Beschreibungen auch in englischer Sprache verfasst werden. Übersetzt werden kann das immer noch.description = "Enables threaded discussions about general topics."
- core (erforderlich)
- Die Drupal-Version, für die das Modul gedacht ist. Für Drupal 6 ist das also 6.x, bei Drupal 7 ist es 7.x, usw. Beachte, dass Module keine spezielle Version eines Drupal-Branches angeben können. 6.x ist also richtig, 6.2 nicht.
core = 6.x
- dependencies (optional)
- Ein Array mit anderen Modulen, die von Deinem Modul vorausgesetzt werden. Wenn diese Module nicht existieren, kann Dein Modul nicht aktiviert werden. Sollten die Module vorhanden, jedoch nicht aktiviert sein, wird dem Administrator eine Liste der zusätzlich zu aktivierenden Module gezeigt. In dieser Liste kann er die Aktivierung der Module entweder bestätigen oder den gesamten Vorgang abbrechen.
Der Wert jeder einzelnen Abhängigkeit muss der Dateiname des Moduls sein (ohne ".module") und sollte in Kleinbuchstaben geschrieben werden. Leerzeichen sind nicht erlaubt.
dependencies[] = taxonomy
dependencies[] = comment
dependencies[] = content ; für Abhängigkeiten zu CCK - package (optional)
- Wenn Dein Modul zusammen mit anderen Modulen ausgeliefert wird oder nur in Verbindung mit anderen Modulen arbeiten soll, kann hier ein Paketname angegeben werden. Wird dieser leer gelassen, erscheint das Modul in der Modulliste unter dem Paket 'Other'. Generell sollte das Feld nur bei der Verwendung von grossen Modulpaketen mit vielen Untermodulen oder bei Modulen, die solche Pakete (wie beispielsweise CCK, Views, E-Commerce, Organice Groups oder Ähnliche) erweitern verwendet werden.
Alle anderen Module sollten dieses Feld leer lassen. Als eine grobe Richtlinie kann man sagen, dass vier Module, die von einander (oder alle von einem Modul) abhängig sind gute Kandidaten für ein Paket sind. Weniger Module möglicherweise nicht.
Wenn der Paketname gesetzt ist, wird er dazu verwendet Module in der Modulübersicht zu gruppieren. Der Name sollte aus diesem Grund der Oberbegriff sein, unter dem die Module erscheinen sollen. Weiterhin sollte er konsistent in sämtlichen .info Dateien verwendet werden (Schreibweise und Gross-/Kleinschreibung). Satzzeichen sollten vermieden werden und (wie schon oben erwähnt) die Richtlinien von Drupal zur Grossschreibung eingehalten werden.
package = Views
Empfohlene Beispiele geeigneter Paketnamen:
- Audio
- Bot
- CCK
- Chat
- E-Commerce
- Event
- Feed parser
- Organic groups
- Station
- Video
- Views
- Voting (wenn es von der VotingAPI abhängt)
- Location
Eine Ausnahme dieser Regel ist das Paket "Development". Dies sollte von allen Modulen die Entwicklertools sind verwendet werden (z.B. Devel, Coder, Module Builder, ...).
- php (optional)
- Mit Version 6.x von Drupal können Module und Themes eine PHP Version angeben, die sie mindestens voraussetzen. Dies kann durch Hinzufügen einer Zeile ähnlich der Folgenden in der .info Datei getan werden:
php = 5.1
Das legt fest, dass das Modul/Theme nicht mit einer PHP Version kleiner als 5.1 funktioniert. Für Module, die Eigenschaften oder Fähigkeiten von neueren PHP Versionen (verbesserte XML Behandlung, Iteratoren für Objekte, JSON, ...) verwenden, ist dies äusserst hilfreich. Wenn keine Version angegeben wird, wird davon ausgegangen, dass es die selbe Version ist, die auch der Drupal Kern erfordert. Module sollten die Version für gewöhnlich nicht spezifizieren, es sei denn, sie benötigen wirklich eine neuere PHP Version als der Drupal-Kern. Für weitere Details zu den PHP Versionen kann das PHP Handbuch helfen.
- version (sollte nicht verwendet werden)
- Die Version wird automatisch von drupal.org eingefügt, wenn ein neues Release und ein Tarball ("gepackte Datei") erstellt wird. Dennoch kann es, falls das Modul nicht auf drupal.org gehostet wird, Sinn machen, die Version anzugeben.
Nutzer, die Module direkt aus dem CVS beziehen, werden keine Versionsinformationen sehen, da die .info Dateien im CVS keine Version enthalten. Diese Nutzer sollten das Modul CVS deploy verwenden, damit in der Modulseite die korrekten Versionen der Module angezeigt wird.
- project (nicht verwenden, wird beim zusammenpacken verwendet!)
- Entwickler von Modulem sollten dies nicht verwenden. Das Skript auf drupal.org zum Zusammenbauen der Tarballs fügt hier automatisch einen Text ein der definiert, aus welchem Projekt das Modul entsanden ist. Der Text wird vorrangig vom Modul Update status verwendet, so dass Drupal-Installationen die Versionen der installierten Module überwachen und die Administratoren bei neuen Versionen benachrichtigen kann.
Für weitere Informationen zur Formatierung von .info Dateien ist die Dokumentation der Funktion drupal_parse_info_file() recht hilfreich.
Fehlersuche
Ich habe die Zeile core = 6.x
hinzugefügt, jedoch sagt das Modul in der Modulübersicht immernoch "Diese Version ist inkompatibel mit der Version 6.x des Drupal Kerns.". Wie kommt das?
Beachte, dass sich das Format des Feldes "dependencies" nach 5. geändert hat.
Falsch:
name = Example
description = Example description
dependencies = foo bar ; 5.x dependency format.
core = 6.x
Richtig:
name = Example
description = Example description
dependencies[] = foo ; Beachte das [] und das jede Abhängigkeit in einer Zeile steht.
dependencies[] = bar
core = 6.x
- Anmelden oder Registrieren um Kommentare zu schreiben
Neue Kommentare
vor 1 Tag 13 Stunden
vor 3 Tagen 7 Stunden
vor 3 Tagen 8 Stunden
vor 3 Tagen 12 Stunden
vor 3 Tagen 20 Stunden
vor 5 Tagen 8 Stunden
vor 6 Tagen 10 Stunden
vor 6 Tagen 12 Stunden
vor 1 Woche 2 Tagen
vor 1 Woche 2 Tagen