Hinweis: Sie sind auf den Seiten der Moodle 1.9 Dokumentation. Die Dokumentation der aktuellsten Moodle-Version finden Sie hier: Entwickler:Module.

Entwickler:Module: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
(Ergänzungen des engl. Textes nachgezogen)
K (Tippfehler korrigiert)
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=== Activity Modules ===
'''Anmerkung''': Dieser Artikel gehört zur Dokumentation für Entwickler. Da es sich bei Moodle um eine Open-Source-Software mit einer internationalen Community und einem internationalen Entwicklerteam handelt, ist die gemeinsame Sprache Englisch. Die Übersetzung der Dokumentation für Entwickler steht daher nicht im Vordergrund. Stattdessen sei auf die englische [[:en:Development:Developer_documentation|Dokumentation für Entwickler]] verwiesen.
''Activity modules'' befinden sich im '''\mod''' Verzeichnis, wobei für jedes Modul ein eigenes Unterverzeichnis existiert. Damit ein Modul von Moodle ordnungsgemäß eingebunden werden kann, ist es bei der Entwicklung eigener Module zwingend erforderlich, dass unterhalb des ''activity module''-Verzeichnisses die folgenden Dateien vorhanden sind:
 
=== Lernaktivitäten-Module ===
'''Lernaktivitäten-Module''' befinden sich im ''mod'' Unterverzeichnis des [[Moodle-Verzeichnis]]ses, wobei für jede [[Lernaktivitäten|Lernaktivität]] ein eigenes Unterverzeichnis existiert. Damit ein Modul von Moodle ordnungsgemäß eingebunden werden kann, ist es bei der Entwicklung eigener Module zwingend erforderlich, dass im Verzeichnis ''mod/IhrModul'' die folgenden Dateien vorhanden sind:


* ''mod_form.php'' - eine Eingabemaske, um das Modul zu konfigurieren
* ''mod_form.php'' - eine Eingabemaske, um das Modul zu konfigurieren
* ''version.php'' - Meta-Informationen des Moduls
* ''version.php'' - Meta-Informationen des Moduls
* ''icon.gif'' - ein 16x16 Icon für das Modul
* ''icon.gif'' - ein 16x16 Icon für das Modul
* ''db/install.xml'' - definiert die Struktur der Datenbanktabellen des Moduls. Verwendung während des Installationsvorgangs.
* ''db/install.xml'' - definiert die Struktur der Datenbanktabellen des Moduls; Verwendung während des Installationsvorgangs
* ''db/upgrade.php'' - beinhaltet die Änderungen an der Datenbanktabellenstruktur des Moduls. Verwendung währung des Module-Upgradevorgangs.
* ''db/upgrade.php'' - beinhaltet die Änderungen an der Datenbanktabellenstruktur des Moduls; Verwendung während des Aktualisierungsvorgangs
* ''db/access.php'' - definiert Zugriffsrechte des Moduls
* ''db/access.php'' - definiert Zugriffsrechte des Moduls
* ''index.php'' - eine Seite die alle Instanzen in einem Kurs auflistet
* ''index.php'' - eine Seite, die alle Instanzen in einem Kurs auflistet
* ''view.php'' - eine Seite um eine bestimmte Instanz zu betrachten
* ''view.php'' - eine Seite, um eine Instanz des Moduls zu betrachten
* ''lib.php'' - alle modulspezifischen Funktionen sollten in diese Datei geschrieben werden. Wenn der Modulname '''widget''' sein sollte, dann ist die Implementation der folgenden Funktionen erforderlich:
* ''lib.php'' - alle modulspezifischen Funktionen sollten in diese Datei geschrieben werden;
:'''Beispiel''': Wenn der Modulname '''widget''' ist, dann ist die Implementierung der folgenden Funktionen erforderlich:
:* widget_install() - wird während der Installation aufgerufen
:* widget_install() - wird während der Installation aufgerufen
:* widget_add_instance() - Code um eine neue Instanz dem widget hinzuzufügen
:* widget_add_instance() - Code, um eine neue Instanz von widget hinzuzufügen
:* widget_update_instance() - Code um eine existierende Instanz zu aktualisieren
:* widget_update_instance() - Code, um eine existierende Instanz zu aktualisieren
:* widget_delete_instance() - Code um eine Instanz zu löschen
:* widget_delete_instance() - Code, um eine Instanz zu löschen
:* widget_user_outline() - erstellt eine Zusammenfassung eines Benutzerbeitrags für eine Modulinstanz
:* widget_user_outline() - erstellt eine Zusammenfassung eines Nutzerbeitrags für eine Modulinstanz
:* widget_user_complete() - druckt Details zum Benutzerbeitrag für eine Modulinstanz aus
:* widget_user_complete() - druckt Details zum Nutzerbeitrag für eine Modulinstanz aus
:* Andere Funktionen, die optional implementiert werden können:
:* Andere Funktionen, die optional implementiert werden können:
:** widget_delete_course() - Code, um alles zu beseitigen, das nach dem Löschen der Instanzen übrig bleibt  
:** widget_delete_course() - Code, um alles zu beseitigen, das nach dem Löschen der Instanzen übrig bleibt  
:** widget_process_options() - Code, um Moduleinstellungen (siehe mod_form.php) innerhalb eines Vorprozesses vorzuverarbeiten
:** widget_process_options() - Code, um Moduleinstellungen (siehe Datei ''mod_form.php'') innerhalb eines Vorprozesses vorzuverarbeiten
:** [[Development:Implementing Reset course functionality in a module|widget_reset_course_form() and widget_delete_userdata()]] - wird dazu verwendet um die [[reset_course()]] Funktion auszuführen.
:** [[:en:Development:Implementing Reset course functionality in a module|widget_reset_course_form() und widget_reset_userdata()]] - wird verwendet, um die [[Kurs zurücksetzen]]-Funktionalität zu implementieren
:* Namenskonvention: Modulfunktionsnamen beginnen mit widget_ und Konstantennamen mit WIDGET_
:* Namenskonvention: Modulfunktionsnamen beginnen mit widget_ und Konstantennamen mit WIDGET_
* ''backuplib.php'' und ''restorelib.php'' - (optional)
* ''backuplib.php'' und ''restorelib.php'' (optional)
* ''settings.php'' oder ''settingstree.php'' - (optional) Definition einer Konfigurationsseite für den Administrator. Ein einfaches Beispiel hierfür wäre: ''mod/assignment/settings.php''. Ein komplexeres Beispiel hierfür ist: ''mod/quiz/settingstree.php''.
* ''settings.php'' oder ''settingstree.php'' (optional) - Definition einer Konfigurationsseite für den Administrator. Ein einfaches Beispiel hierfür wäre ''mod/assignment/settings.php''. Ein komplexeres Beispiel hierfür ist ''mod/quiz/settingstree.php''.
* ''defaults.php'' - erlaubt die einfache Vorgabe von Defaultwerten für Konfigurationsparameter. Der Inhalt dieser Datei wird durch das Modul ''upgrade_activity_modules'' in ''lib/adminlib.php'' inkludiert und sollte ein Array namens ''$defaults'' enthalten. Die Werte innerhalb dieses Arrays werden in die Konfigurationstabelle geladen. Alternativ und die empfohlene Vorgehensweise (Best Practice) wäre allerdings, den Wert $defaults['_use_config_plugins'] auf ''true'' zu setzen, so dass die Vorgabewerte in die ''config_plugins'' Tabelle geschrieben werden. Codebeispiel hierfür: ''mod/quiz/defaults.php''
* ''defaults.php'' - erlaubt die einfache Vorgabe von Standardwerten für Konfigurationsparameter. Der Inhalt dieser Datei wird durch das Modul ''upgrade_activity_modules'' in ''lib/adminlib.php'' eingebunden und sollte ein Array namens ''$defaults'' enthalten. Die Werte innerhalb dieses Arrays werden in die Konfigurationstabelle geladen. Alternativ und die empfohlene Vorgehensweise (Best Practice) wäre allerdings, den Wert <code>$defaults['_use_config_plugins']</code> auf ''true'' zu setzen, so dass die Vorgabewerte in die ''config_plugins'' Tabelle geschrieben werden. Codebeispiel hierfür: ''mod/quiz/defaults.php''
* ''lang/en_utf8/resource_widget.php'' - (optional) Jedes Modul sollte Sprachdaten besitzen, die Übersetzungen für das Modul enthalten.
* ''lang/en_utf8/resource_widget.php'' (optional) - Jedes Modul sollte Sprachdaten besitzen, die Übersetzungen für das Modul enthalten.


=== WICHTIG: ===  
=== Wichtige Hinweise ===  
* Wenn Sie ein neues Modul anlegen, darf der Modulname keine Zahlen oder Sonderzeichen enthalten!  
* Wenn Sie ein neues Modul anlegen, darf der Modulname keine Zahlen oder Sonderzeichen enthalten!  
* Sie müssen eine sogenannte "data base table" erstellen mit dem gleichen Namen, den Sie auch Ihrem Modul gegeben haben. Diese Tabelle muss mindestens drei Datenbankfelder besitzen:  
* Sie müssen eine sogenannte Tabelle in der [[Moodle-Datenbank]] erstellen mit dem gleichen Namen, den Sie auch Ihrem Modul gegeben haben. Diese Tabelle muss mindestens drei Datenbankfelder besitzen:  
*# id  
<pre>
*# course  
  id  
*# name
  course  
  name
</pre>
* Vergewissern Sie sich bitte, dass ihr Modul (in angemessener Weise) auch für die Verwendung innerhalb von Gruppen und Metakursen ausgelegt ist.
* Vergewissern Sie sich bitte, dass ihr Modul (in angemessener Weise) auch für die Verwendung innerhalb von Gruppen und Metakursen ausgelegt ist.


==Siehe auch==
==Siehe auch==


* Eigene Contentblöcke erstellen - [[Development:Blocks|Blocks]] (engl.)
* Eigene [[Blöcke]] erstellen - siehe [[:en:Development:Blocks|Blocks]] (engl.)
* Backuproutine für eigene Module erstellen - [[Development:Backup|Backup]] (engl.)
* Backup-Routine für eigene Module erstellen - siehe [[:en:Development:Backup|Backup]] (engl.)
* Downloadlink für Vorlagen für ''supporting roles, formslib'' etc. - [http://tracker.moodle.org/browse/CONTRIB-52 CONTRIB-52 Improvements to make NEWMODULE really useful]
* Eintrag im Bug-Tracker [http://tracker.moodle.org/browse/CONTRIB-52 CONTRIB-52 Improvements to make NEWMODULE really useful] - enthält einen Download-Link zu einer neuen Vorlage für ein Modul (mit Unterstützung von Rollen, Formularbibliothek usw., unvollständig!);
* Neue Modulvorlage für Moodleversionen vor 1.7.  - [http://download.moodle.org/plugins16/mod/NEWMODULE.zip NEWMODULE.zip]
* http://download.moodle.org/plugins16/mod/NEWMODULE.zip - neue Vorlage für Module vor Moodle 1.7; beachten Sie die README-Anleitungen innerhalb der zip-Datei.
:(Bitte befolgen Sie die Anweisungen in der README-Datei innerhalb von NEWMODULE.zip)
* [[:en:Development:NEWMODULE_Documentation|Dokumentation zur Entwicklung neuer Module]] (engl.)
* Dokumentation der Modulvorlage ''NEWMODULE'' - [[Development:NEWMODULE_Documentation|NEWMODULE]] (engl.)
 


'''Forumsdiskussionsbeiträge:'''
Diskussionsbeiträge im Kurs ''Using Moodle'' auf moodle.org:
*[http://moodle.org/mod/forum/discuss.php?d=66165 A new resource type: where do I put the language strings?]
*[http://moodle.org/mod/forum/discuss.php?d=66165 A new resource type: where do I put the language strings?]
*[http://moodle.org/mod/forum/discuss.php?d=65986 New Module Template Code for Moodle 1.7]
*[http://moodle.org/mod/forum/discuss.php?d=65986 New Module Template Code for Moodle 1.7]

Aktuelle Version vom 28. April 2009, 07:52 Uhr

Anmerkung: Dieser Artikel gehört zur Dokumentation für Entwickler. Da es sich bei Moodle um eine Open-Source-Software mit einer internationalen Community und einem internationalen Entwicklerteam handelt, ist die gemeinsame Sprache Englisch. Die Übersetzung der Dokumentation für Entwickler steht daher nicht im Vordergrund. Stattdessen sei auf die englische Dokumentation für Entwickler verwiesen.

Lernaktivitäten-Module

Lernaktivitäten-Module befinden sich im mod Unterverzeichnis des Moodle-Verzeichnisses, wobei für jede Lernaktivität ein eigenes Unterverzeichnis existiert. Damit ein Modul von Moodle ordnungsgemäß eingebunden werden kann, ist es bei der Entwicklung eigener Module zwingend erforderlich, dass im Verzeichnis mod/IhrModul die folgenden Dateien vorhanden sind:

  • mod_form.php - eine Eingabemaske, um das Modul zu konfigurieren
  • version.php - Meta-Informationen des Moduls
  • icon.gif - ein 16x16 Icon für das Modul
  • db/install.xml - definiert die Struktur der Datenbanktabellen des Moduls; Verwendung während des Installationsvorgangs
  • db/upgrade.php - beinhaltet die Änderungen an der Datenbanktabellenstruktur des Moduls; Verwendung während des Aktualisierungsvorgangs
  • db/access.php - definiert Zugriffsrechte des Moduls
  • index.php - eine Seite, die alle Instanzen in einem Kurs auflistet
  • view.php - eine Seite, um eine Instanz des Moduls zu betrachten
  • lib.php - alle modulspezifischen Funktionen sollten in diese Datei geschrieben werden;
Beispiel: Wenn der Modulname widget ist, dann ist die Implementierung der folgenden Funktionen erforderlich:
  • widget_install() - wird während der Installation aufgerufen
  • widget_add_instance() - Code, um eine neue Instanz von widget hinzuzufügen
  • widget_update_instance() - Code, um eine existierende Instanz zu aktualisieren
  • widget_delete_instance() - Code, um eine Instanz zu löschen
  • widget_user_outline() - erstellt eine Zusammenfassung eines Nutzerbeitrags für eine Modulinstanz
  • widget_user_complete() - druckt Details zum Nutzerbeitrag für eine Modulinstanz aus
  • Andere Funktionen, die optional implementiert werden können:
    • widget_delete_course() - Code, um alles zu beseitigen, das nach dem Löschen der Instanzen übrig bleibt
    • widget_process_options() - Code, um Moduleinstellungen (siehe Datei mod_form.php) innerhalb eines Vorprozesses vorzuverarbeiten
    • widget_reset_course_form() und widget_reset_userdata() - wird verwendet, um die Kurs zurücksetzen-Funktionalität zu implementieren
  • Namenskonvention: Modulfunktionsnamen beginnen mit widget_ und Konstantennamen mit WIDGET_
  • backuplib.php und restorelib.php (optional)
  • settings.php oder settingstree.php (optional) - Definition einer Konfigurationsseite für den Administrator. Ein einfaches Beispiel hierfür wäre mod/assignment/settings.php. Ein komplexeres Beispiel hierfür ist mod/quiz/settingstree.php.
  • defaults.php - erlaubt die einfache Vorgabe von Standardwerten für Konfigurationsparameter. Der Inhalt dieser Datei wird durch das Modul upgrade_activity_modules in lib/adminlib.php eingebunden und sollte ein Array namens $defaults enthalten. Die Werte innerhalb dieses Arrays werden in die Konfigurationstabelle geladen. Alternativ und die empfohlene Vorgehensweise (Best Practice) wäre allerdings, den Wert $defaults['_use_config_plugins'] auf true zu setzen, so dass die Vorgabewerte in die config_plugins Tabelle geschrieben werden. Codebeispiel hierfür: mod/quiz/defaults.php
  • lang/en_utf8/resource_widget.php (optional) - Jedes Modul sollte Sprachdaten besitzen, die Übersetzungen für das Modul enthalten.

Wichtige Hinweise

  • Wenn Sie ein neues Modul anlegen, darf der Modulname keine Zahlen oder Sonderzeichen enthalten!
  • Sie müssen eine sogenannte Tabelle in der Moodle-Datenbank erstellen mit dem gleichen Namen, den Sie auch Ihrem Modul gegeben haben. Diese Tabelle muss mindestens drei Datenbankfelder besitzen:
   id 
   course 
   name
  • Vergewissern Sie sich bitte, dass ihr Modul (in angemessener Weise) auch für die Verwendung innerhalb von Gruppen und Metakursen ausgelegt ist.

Siehe auch

Diskussionsbeiträge im Kurs Using Moodle auf moodle.org: