Modulsystem in Drupal

2,750 views

Published on

In ein paar wenigen Slides werden die Grundlagen zu Modulen und Hooks, sowie der FormsAPI in Drupal aufgezeigt

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,750
On SlideShare
0
From Embeds
0
Number of Embeds
168
Actions
Shares
0
Downloads
16
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Modulsystem in Drupal

  1. 1. Drupal Das Modulsystem in Drupal 11/2008 Johannes Haseitl derhasi.de | dug-hannover.org
  2. 2. Dateistruktur modules Kernmodule (system, user, node, comment, locale) - im Regelfall nicht anzutasten!! - sites/all/modules Zusatzmodule für alle Multisiteinstallationen (cck, views, admin_menu, etc. & eigens geschriebene Module)
  3. 3. Info-Datei ; $Id: taxonomy_image.info,v 1.1.2.1.2.3 2008/03/03 02:02:51 nancyw Exp $ name = Taxonomy Image description = Upload and associate images with taxonomy terms. dependencies = taxonomy package = Taxonomy Image ; Information added by drupal.org packaging script on 2008-09-12 version = "5.x-1.x-dev" project = "taxonomy_image" datestamp = "1221178308" Beispiel aus Modul Taxonomy Image (drupal.org/project/taxonomy_image) (optional) ; $Id: : Infotag für CVS auf drupal.org, wird automatisch angepasst name : Modulname description : Modulbeschreibung für die Modulliste (admin/build/modules) dependencies : Abhängikeiten zu anderen Modulen package : Paket zur Gruppierung der Anzeige in admin/build/modules => Speichern unter: sites/all/modules/ meinmodul/meinmodul.info
  4. 4. Moduldatei sites/all/modules/ meinmodul/meinmodul.module Einfache PHP-Datei mit öffnender <?php-Klammer. Auf schließendes Tag wird verzichtet, u.a. wg. eventueller Leerzeichen die das Senden des HTTP-Headers vorzeitig auslösen könnten. // $Id$ erlaubt das hinzufügen von Versionsinformationen der Dateien durch CVS auf drupal.org. <?php // $Id$
  5. 5. Coding Standars http://drupal.org/coding-standards Generelle Richtlinien für Code in Drupalmodulen Basiert auf PEAR Coding Standards Dokumentierung im Doxygen Format
  6. 6. Hooks Zentrale Eingriffspunkte in Drupalfunktionalitäten Zugriff durch individuelle PHP-Funktionen hook_form_alter() hook_nodeapi() hook_menu() hook_perm() ...
  7. 7. Ansteuerung von Hooks <ul><li>Zum Ansteuern eines Hooks: hook_hookname wird im Modul (meinmodul.module) eine Funktion angelegt mit Namen </li></ul><ul><li>function meinmodul_hookname (...) </li></ul><ul><li>Nun wird bei jedem Aufruf des Hooks diese Funktion aufgerufen. </li></ul><ul><li>Mehrere Module, gleicher Hook: </li></ul><ul><li>Funktionen werden nacheinander ausgeführt. </li></ul><ul><li>Variablen könnten überschrieben oder angepasst werden. </li></ul><ul><li>Reihenfolge des Aufrufs nach </li></ul><ul><ul><li>Modulgewicht (DB-Tabelle {system}.weight) , dann alphabetisch </li></ul></ul><ul><li>intern: Aufruf von module_invoke_all() oder module_invoke() </li></ul>
  8. 8. FormsAPI drupal_get_form ('test_form') => Form-ID: 'test_form' test_form ($form_state) test_form_validate ($form, &$form_state) test_form_submit ($form, &$form_state) http://api.drupal.org/api/file/forms_api.html/5 http://api.drupal.org/api/file/forms_api_reference.html/5 function test_form($form_state){ $form = array(); $form['meintext'] = array( '#type'=>'textfield', '#title'=>t('My Textfield'), '#description'=>t('That is the description of my textfield'), '#default_value'=>'', ); return $form; }
  9. 9. Beispiele Beispielmodule für den Einstieg gibt es auch auf api.drupal.org (in den Beispielen kann mit einem Klick auf View Source die ganze .module-Datei angezeigt werden.)
  10. 10. Hooks von Zusatzmodulen CCK hook_field_info hook_field hook_field_settings hook_field_formatter_info hook_field_formatter hook_widget ... Views 1 hook_views_tables hook_views_arguments
  11. 11. Install-Datei Hinzufügen, Entfernen und Update von Datenbankeinträgen, Parametern und generellen Variablen. <?php // $Id$ function hook_install(){ ... } function hook_uninstall(){ ... } function hook_update_1(){ ... } function hook_update_2(){ ... } => Speichern unter: sites/all/modules/ meinmodul/meinmodul.install
  12. 12. Links Dokumentation: api.drupal.org drupal.org/contributors-guide Seiten fertiger Module: drupal.org/project/Modules drupalmodules.com

×