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 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
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

Ähnlich wie Modulsystem in Drupal

Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
Sebastian Springer
 
Symfony2
Symfony2Symfony2
Symfony2
Mayflower GmbH
 
Powershell 3.0
Powershell 3.0Powershell 3.0
Powershell 3.0
Digicomp Academy AG
 
Backbase Intro
Backbase IntroBackbase Intro
Backbase Intro
Béla Varga
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
GFU Cyrus AG
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit Wordpress
Blogwerk AG
 
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerkTYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
die.agilen GmbH
 
Domain Driven Design in Rails
Domain Driven Design in RailsDomain Driven Design in Rails
Domain Driven Design in Rails
Angelo Maron
 
FLOW3-Workshop F3X12
FLOW3-Workshop F3X12FLOW3-Workshop F3X12
FLOW3-Workshop F3X12
Karsten Dambekalns
 
Einstieg in Xpath für SEO (Campixx2021)
Einstieg in Xpath für SEO (Campixx2021)Einstieg in Xpath für SEO (Campixx2021)
Einstieg in Xpath für SEO (Campixx2021)
Sebastian Adler
 
Praesentation TYPO3Camp Berlin Speed mit Extbase
Praesentation TYPO3Camp Berlin Speed mit ExtbasePraesentation TYPO3Camp Berlin Speed mit Extbase
Praesentation TYPO3Camp Berlin Speed mit Extbase
Stefan Frömken
 
PHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-AnsätzePHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-Ansätze
Ralf Lütke
 
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen AnwendungenJavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
molily
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive Programming
Sebastian Springer
 
DB-Schema-Evolution mit LiquiBase
DB-Schema-Evolution mit LiquiBaseDB-Schema-Evolution mit LiquiBase
DB-Schema-Evolution mit LiquiBase
gedoplan
 
TYPO3 CMS 7.6 - Die Neuerungen - pluswerk
TYPO3 CMS 7.6 - Die Neuerungen - pluswerkTYPO3 CMS 7.6 - Die Neuerungen - pluswerk
TYPO3 CMS 7.6 - Die Neuerungen - pluswerk
die.agilen GmbH
 
Drupal 8: TWIG Template Engine
Drupal 8:  TWIG Template EngineDrupal 8:  TWIG Template Engine
Drupal 8: TWIG Template Engine
drubb
 

Ähnlich wie Modulsystem in Drupal (20)

Große Applikationen mit AngularJS
Große Applikationen mit AngularJSGroße Applikationen mit AngularJS
Große Applikationen mit AngularJS
 
Symfony2
Symfony2Symfony2
Symfony2
 
Powershell 3.0
Powershell 3.0Powershell 3.0
Powershell 3.0
 
Backbase Intro
Backbase IntroBackbase Intro
Backbase Intro
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
 
Entwickeln mit Wordpress
Entwickeln mit WordpressEntwickeln mit Wordpress
Entwickeln mit Wordpress
 
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerkTYPO3 CMS 7.3 - Die Neuerungen - pluswerk
TYPO3 CMS 7.3 - Die Neuerungen - pluswerk
 
Domain Driven Design in Rails
Domain Driven Design in RailsDomain Driven Design in Rails
Domain Driven Design in Rails
 
FLOW3-Workshop F3X12
FLOW3-Workshop F3X12FLOW3-Workshop F3X12
FLOW3-Workshop F3X12
 
Einstieg in Xpath für SEO (Campixx2021)
Einstieg in Xpath für SEO (Campixx2021)Einstieg in Xpath für SEO (Campixx2021)
Einstieg in Xpath für SEO (Campixx2021)
 
Drupal inside out
Drupal inside outDrupal inside out
Drupal inside out
 
Praesentation TYPO3Camp Berlin Speed mit Extbase
Praesentation TYPO3Camp Berlin Speed mit ExtbasePraesentation TYPO3Camp Berlin Speed mit Extbase
Praesentation TYPO3Camp Berlin Speed mit Extbase
 
PHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-AnsätzePHP-Module in statischen Seiten - Architektur-Ansätze
PHP-Module in statischen Seiten - Architektur-Ansätze
 
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen AnwendungenJavaScript: Von einfachen Scripten zu komplexen Anwendungen
JavaScript: Von einfachen Scripten zu komplexen Anwendungen
 
MVVM Pattern
MVVM Pattern MVVM Pattern
MVVM Pattern
 
Feature Flags mit Togglz
Feature Flags mit TogglzFeature Flags mit Togglz
Feature Flags mit Togglz
 
Reactive Programming
Reactive ProgrammingReactive Programming
Reactive Programming
 
DB-Schema-Evolution mit LiquiBase
DB-Schema-Evolution mit LiquiBaseDB-Schema-Evolution mit LiquiBase
DB-Schema-Evolution mit LiquiBase
 
TYPO3 CMS 7.6 - Die Neuerungen - pluswerk
TYPO3 CMS 7.6 - Die Neuerungen - pluswerkTYPO3 CMS 7.6 - Die Neuerungen - pluswerk
TYPO3 CMS 7.6 - Die Neuerungen - pluswerk
 
Drupal 8: TWIG Template Engine
Drupal 8:  TWIG Template EngineDrupal 8:  TWIG Template Engine
Drupal 8: TWIG Template Engine
 

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.
  • 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