SlideShare ist ein Scribd-Unternehmen logo
Drupal Das Modulsystem in Drupal 11/2008 Johannes Haseitl derhasi.de | dug-hannover.org
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)
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
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$
Coding Standars http://drupal.org/coding-standards Generelle Richtlinien für Code in Drupalmodulen Basiert auf PEAR Coding Standards Dokumentierung im Doxygen Format
Hooks Zentrale Eingriffspunkte in Drupalfunktionalitäten Zugriff durch individuelle PHP-Funktionen hook_form_alter() hook_nodeapi() hook_menu() hook_perm() ...
Ansteuerung von Hooks Zum Ansteuern eines Hooks:  hook_hookname  wird im Modul (meinmodul.module) eine Funktion angelegt mit Namen function  meinmodul_hookname (...) Nun wird bei jedem Aufruf des Hooks diese Funktion aufgerufen.  Mehrere Module, gleicher Hook: Funktionen werden nacheinander ausgeführt. Variablen könnten überschrieben oder angepasst werden. Reihenfolge des Aufrufs nach Modulgewicht  (DB-Tabelle {system}.weight) , dann alphabetisch intern: Aufruf von  module_invoke_all()  oder  module_invoke()
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; }
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.)
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
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
Links Dokumentation: api.drupal.org drupal.org/contributors-guide Seiten fertiger Module: drupal.org/project/Modules drupalmodules.com

Weitere ähnliche Inhalte

PDF
WPDB - das unbekannte Objekt
PPTX
Object-orientied way of using mysqli interface - Workshop
PDF
Hooks
PDF
Einführung in Puppet
PDF
Seminar Joomla 1.5 SEF-Mechanismus
KEY
Doctrine 2 - An Introduction (German)
PPT
Epeoplepower Pms
PPT
Flac Presentation For CPA June08
WPDB - das unbekannte Objekt
Object-orientied way of using mysqli interface - Workshop
Hooks
Einführung in Puppet
Seminar Joomla 1.5 SEF-Mechanismus
Doctrine 2 - An Introduction (German)
Epeoplepower Pms
Flac Presentation For CPA June08

Ähnlich wie Modulsystem in Drupal (20)

PDF
Große Applikationen mit AngularJS
PDF
Symfony2
PDF
Powershell 3.0
PDF
Backbase Intro
PDF
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
PPTX
Entwickeln mit Wordpress
PDF
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
PDF
Domain Driven Design in Rails
PDF
FLOW3-Workshop F3X12
PDF
Einstieg in Xpath für SEO (Campixx2021)
PPT
Drupal inside out
ODP
Praesentation TYPO3Camp Berlin Speed mit Extbase
PDF
PHP-Module in statischen Seiten - Architektur-Ansätze
PDF
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
PPT
PDF
Feature Flags mit Togglz
PDF
Reactive Programming
PDF
DB-Schema-Evolution mit LiquiBase
PDF
TYPO3 CMS 7.6 - Die Neuerungen - pluswerk
PDF
Drupal 8: TWIG Template Engine
Große Applikationen mit AngularJS
Symfony2
Powershell 3.0
Backbase Intro
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Entwickeln mit Wordpress
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
Domain Driven Design in Rails
FLOW3-Workshop F3X12
Einstieg in Xpath für SEO (Campixx2021)
Drupal inside out
Praesentation TYPO3Camp Berlin Speed mit Extbase
PHP-Module in statischen Seiten - Architektur-Ansätze
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
Feature Flags mit Togglz
Reactive Programming
DB-Schema-Evolution mit LiquiBase
TYPO3 CMS 7.6 - Die Neuerungen - pluswerk
Drupal 8: TWIG Template Engine
Anzeige

Modulsystem in Drupal

  • 1. Drupal Das Modulsystem in Drupal 11/2008 Johannes Haseitl derhasi.de | dug-hannover.org
  • 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. 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 = &quot;5.x-1.x-dev&quot; project = &quot;taxonomy_image&quot; datestamp = &quot;1221178308&quot; 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. 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. Coding Standars http://drupal.org/coding-standards Generelle Richtlinien für Code in Drupalmodulen Basiert auf PEAR Coding Standards Dokumentierung im Doxygen Format
  • 6. Hooks Zentrale Eingriffspunkte in Drupalfunktionalitäten Zugriff durch individuelle PHP-Funktionen hook_form_alter() hook_nodeapi() hook_menu() hook_perm() ...
  • 7. Ansteuerung von Hooks Zum Ansteuern eines Hooks: hook_hookname wird im Modul (meinmodul.module) eine Funktion angelegt mit Namen function meinmodul_hookname (...) Nun wird bei jedem Aufruf des Hooks diese Funktion aufgerufen. Mehrere Module, gleicher Hook: Funktionen werden nacheinander ausgeführt. Variablen könnten überschrieben oder angepasst werden. Reihenfolge des Aufrufs nach Modulgewicht (DB-Tabelle {system}.weight) , dann alphabetisch intern: Aufruf von module_invoke_all() oder module_invoke()
  • 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. 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. 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. 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. Links Dokumentation: api.drupal.org drupal.org/contributors-guide Seiten fertiger Module: drupal.org/project/Modules drupalmodules.com