Lucius Drupal Development Cursus

  • 5,105 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
No Downloads

Views

Total Views
5,105
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
233
Comments
1
Likes
3

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. DRUPAL DEV Training
    • Introductie
    • Lucius Websystems Robbenkoog 29a 1822 BA Alkmaar 072-564 90 90 [email_address]
  • 2. About Drupal
  • 3. Introductie Drupal
    • Geschiedenis
    • Huidige stats
    • Drupal association & DrupalCons
    Drupal
  • 4. Wanneer Drupal?
    • Bedrijfswebsites
    • Online communities
    • Intranets
    • Enterprise oplossingen
    • Webwinkel
    • Weblog
    • Multi site platforms
    • And many more..
    Drupal
  • 5. Enkele Drupal Features
    • Multi talig
    • Version control
    • Commentaarsysteem
    • Download systeem
    • Logs en error-reporting
    • Forum
    • Blog (+API)
    • Poll
    Drupal
    • Zoekmachine
    • Aggregator
    • RSS
    • Gebruikersrechten – beheer (ACL)
    • Multi – site
    • Taxonomy
  • 6. Waarom Drupal?
    • Stabiele foundation en gepassioneerde community
    • Snel en veilig
    • Krachtig en schaalbaar
    • Innoverend
    • Zeer zoekmachinevriendelijk
    • Krachtig en Flexibel templating systeem
    • Award winning
    • Many more..
    Drupal
  • 7. Waarom Drupal? part 2
    • Modulair systeem
    • Hooks
    • Content types
    • Taxonomy
    • Drupal API
    • Theming & overriding
    • NBS (Node Based System)
    • Vele modules werken met elkaar samen  Synergie
    • Backend en frontend theming
    Drupal
  • 8. Waarom Drupal? part 3
    • Content management op maat
    • Content invoer (oa CCK)
    • Content output (oa Views)
    Drupal
  • 9. Benodigde kennis
    • PHP 5
    • MySQL
    • SQL
    • (X)HTML / CSS & Webstandaarden (W3c)
    • FTP
    • Localhost voor ontwikkeling
    Drupal
  • 10. Aftasting kennis in huis
    • Wie heeft wat al gedaan?
    • Belangrijke Drupal modules:
      • Administration Menu
      • CCK
      • Views
      • Image / assist / api
      • Pathauto
      • Global redirect
      • Token
      • Webform
      • Poormanscron
      • FCK Editor
      • Devel
    Drupal
  • 11. Belangrijke Drupal terminologie
    • Module
    • Nodes
    • Users
    • Blocks
    • Pages
    • Taxonomy
    • Content typen & Content (cck) fields
    • Sessions
    Drupal
    • Hooks
    • Theme
    • Cron
    • Cache
    • Input format
    • Watchdog
    • API
    • i18n
  • 12. Drupal File Layout Drupal Bron afbeelding: http://www.ddj.com/linux-open-source/199201603?pgno=5
  • 13. Introductie Drupal modules
    • Hoe om te gaan met open source modules
    • Goed kijken hoe ‘contrib’ modules gemaakt zijn. Soms beter dan core modules, omdat die al lang in dev zijn.
    • Gebruik de enorm actieve community correcte wijze
    • Vele modules werken met elkaar samen
    • Drupal werkt veel met titles , naamgeving is belangrijk
    • Dagelijks checken:
      • Latest Drupal modules http://drupal.org/project/modules?solrsort=ds_project_latest_release%20desc
      • http://www.drupal.org/planet
    Drupal
  • 14. Online Developer resources
    • Module developer's guide http://drupal.org/contributors-guide
    • Drupal beyond the basics: http://drupal.org/handbook/customization
    • Drupal coding standards: http://drupal.org/coding-standards
    • Writing secure code: http://drupal.org/writing-secure-code
    • Best practices: http://drupal.org/node/287350
    • Working with Drupal API http://drupal.org/node/326
    • Use of underscore in Drupal functions http://drupal.org/node/70335
    • Guidelines for writing efficient SQL code http://drupal.org/node/559302
    • Creating new content type http://drupal.org/node/231019
    • Using Theme layer http://drupal.org/node/165706
    Drupal
  • 15. Online Developer tools
    • Drupal for firebug http://drupal.org/project/drupalforfirebug
    • Devel module: http://drupal.org/project/devel
    • Cache disable http://drupal.org/project/cache_disable
    • Use to check you coding on: http://drupal.org/project/coder
    • Use to extensivly check your code on: http://drupal.org/project/coder_tough_love
    • Trace http://ar.to/2006/12/easier-drupal-debugging-with-trace
    • Looking for a module: http://www.drupalmodules.comLooking for a module: http://www.drupalmodules.com
    Drupal
  • 16. Developer boeken
    • Pro Drupal development – John vanDyk & Matt Westgate
    • Learning Drupal 6 module development – Matt Butcher
    • Leveraging Drupal – Victor Kane
    • Cracking Drupal – Greg James Knaddison
    Drupal
  • 17. Coding standards & best practices
    • Coding standards: http://drupal.org/coding-standards
    • Writing secure code: http://drupal.org/writing-secure-code
    • Best practices: http://drupal.org/node/287350
    • Voorbeeld:
      • $string = "Foo $bar"; (PHP)
    • Online resources:
      • Standards, security and best practices http://drupal.org/node/360052
      • Readme.txt van module coder tough love
    Drupal
  • 18. Drupal API
    • De Drupal API http://api.drupal.org
    • Enkele API functies
      • l();
      • url();
      • node_load();
      • node_view()
      • arg();
      • t();
      • drupal_get_path();
      • check_plain();
      • variable_set, variable_get() & variable_del()
      • database abstraction layer
    Drupal
  • 19. Database
    • API reference http://api.drupal.org/api/group/database/6
    • Secure code: http://drupal.org/writing-secure-code
    • Schema API: http://drupal.org/node/146843
      • Updaten Schema van een module : check system table
    Drupal
  • 20. Creating modules
    • Creating modules tutorial: http://drupal.org/node/206753
    • API reference http://api.drupal.org
    • Hooks http://api.drupal.org/api/group/hooks/6
    • PHP Library: http://w3schools.com/php/
    • SQL Library: http://w3schools.com/sql/
    • Creating modules tutorial: http://drupal.org/node/206753
    Drupal
  • 21. Module architectuur
    • Benodigde bestanden:
      • .info definiering module info en dependencies
      • .module de code
    • Optioneel
      • LICENSE.txt wordt automatisch door drupal toegevoegd
      • README.txt handmatig toevoegen
      • .inc voornamelijk voor modules met veel code
      • .install
      • Help
      • Translation files in aparte folder
      • Theming files (tpl.php)
      • UPGRADE.txt
    Drupal
  • 22. Module architectuur
      • Naamgeving is zeer belangrijk in module
      • Zorg voor unieke id in benaming van module, de naam werkt door in:
      • Module map en definiering
      • Functies in de module
      • Dbase tables system variables
      • url
      • css classes
      • Hooks
      • Theming files
    • Drupal doorloopt de modules in alfabetische volgorde.
    • Het is mogelijk een weight aan een module toe te kennen.
    Drupal
  • 23. Hooks
    • Uitleg: Wat is een Hook en wat kan je ermee
    • Alle acties binnen cms waar je een hook kunt verwachten, daar zit er een.
    • Hooks http://api.drupal.org/api/group/hooks/6
    • Cheatsheet http://drupal.org/files/drupal_6_core_hooks_cheat_sheet.pdf
    • Demo gebruik van enkele Hooks
    Drupal
  • 24. Code validatie
    • Demo code validatie in Drupal
    Drupal
  • 25. Content filtering
    • Demo input formats
    Drupal
  • 26. Productie filter module
    • Opdracht 1: produceer een filter module
    • Definieer module / benodigde files
    Drupal
  • 27. Productie filter module, tip toevoegen Drupal
    • Opdracht 2: produceer de filter tip
      • Zoek correct hook op
      • Schrijf de code
  • 28. Productie filter module
    • Opdracht 3: produceer een filter, die ingevoerde tekst analyseert en bij output een woord hierin wijzigd.
    Drupal
  • 29. Productie filter module
    • Opdracht 4: produceer admin gedeelte je te wijzigen woord kan instellen
    Drupal
  • 30. Productie filter module
    • De code toegelicht
    • Code validatie
    Drupal
  • 31. i18n opdracht
    • Demo i18n
    • Oefening i18n
  • 32. Taxonomy
    • Vocabularies & terms
    • Content types & taxonomy
    • Taxonomy API functions
      • Taxonomy output in theme, voorbeeld
    • Kan gebruikt worden door modules (bv forum)
    • Check hoe Drupal bv taxonomy_node_get_terms() gebruikt op api.drupal.org
  • 33. Menu system
    • hook_menu()
      • Menu item & wildcard voor variabele
      • Title
      • Page callback
      • Page arguments
      • Access arguments
      • Type
        • MENU_NORMAL_ITEM (default, maakt menu item aan)
        • MENU_CALLBACK
  • 34. Hook menu
        • MENU_LOCAL_TASK (gebruik werkwoord)
        • MENU_DEFAULT_LOCAL_TASK (gebruik werkwoord)
      • Weight
      • File
    • Hooken in bestaande menu items hook_menu_alter()
    • Menu tabs
    • Verbergen van menu items
  • 35. Enkele API Functies
    • pager_query
    • drupal_set_message()
    • watchdog()
    • cache_clear_all()
    • user_access()
    • format_date()
    • drupal_set_header()
    • node_access()
    • pager_query
    • menu_tree_all_data
    • drupal_goto
    • function image_get_info
    • user_is_logged_in
  • 36. Drupal files systeem
    • Demo file handling in Drupal
  • 37. Form API
    • Form API reference http://api.drupal.org/api/file/developer/topics/forms_api_reference.html
    • Form API: http://drupal.org/node/37775
    • Form API upload field :http://drupal.org/node/111782 & http://www.imedstudios.com/labs/node/22
    • Form API Elements reference http://api.drupal.org/api/drupal/developer--topics--forms_api_reference.html/6
    • Form functions http://api.drupal.org/api/group/form_api/6
  • 38. Enkele ‘Form controls’
    • Texfield
    • Submit
    • Checkboxes
    • Select
    • Hidden
    • Radios
    • Weight
    • Fieldset
    • Markup
    • Button
    • Date
    • Password
    • Item
  • 39. Enkele ‘Form Attributes’
    • #theme
    • #tree
    • #access
    • #title
    • #default_value
    • #maxlenght
    • #required
    • #weight
    • #description
    • #prefix & #suffix
    • #ahah
    • #attributes
  • 40. Form API functies
    • Uitleg van enkele belangrijke form functies:
      • http://api.drupal.org/api/group/form_api/6
  • 41. Form API, Validate
    • Validate functies stanaard
    • Validatie functies toevoegen aan een bestaand form
  • 42. Form API, Submit
    • Submit functies standaard
    • Submit functies toevoegen aan een bestaand form
  • 43. Productie ‘lingo’ module
    • Nieuwe module aanmaken
    • Menu hook
    • Alleen definiering velden mbv FAPI
  • 44. Productie ‘lingo’ module
    • Extra veld definieren
    • Veld verplicht maken (*)
  • 45. Productie ‘lingo’ module
    • Vergelijken tekstvelden
    • Foutmelding wanneer niet gelijk
    • Wanneer ‘te raden woord’ leeg: foutmelding uit core
    • Wanneer ‘gok’ leeg is: custom foutmelding verschijnt
  • 46. Productie ‘lingo’ module
    • Voorbeeld functionaliteit
  • 47. Productie ‘lingo’ module
    • Voorbeeld functionaliteit
  • 48. Productie ‘lingo’ module
    • Productie 2e menu hook
    • Validatie veld: altijd 6 karakters, kleine letter, geen cijfers
    • Opslaan veld in dbase
  • 49. Productie ‘lingo’ module
    • Melding geven wanneer nieuwe invoer voor oplossing gevalideerd is
  • 50. Productie ‘lingo’ module
    • Antwoord verborgen inladen
    • Vergelijken van invoer met antwoord
    • 1e letter weergeven van antwoord
  • 51. Productie ‘lingo’ module
    • Foutmelding bij verkeerde gok
    • Log toevoegen: welke waarden zijn al gegokt.
    • Waarden schrijven naar ‘watchdog’ (log)
  • 52. Productie ‘lingo’ module
    • Je hebt max 6 pogingen, daarna verschijnt antwoord
    • Log op beeld leeg na 6 pogingen
    • Counter resetten, zodat je opnieuw kan proberen
  • 53. Productie ‘lingo’ module
    • Oplossing is goed
    • Log in beeld leegmaken
    • Goedmelding geven
  • 54. Productie ‘lingo’ module
    • Permissies toevoegen
  • 55. Diverse demo’s
    • Demo multiple-page
    • Demo multi button
    • Demo Captcha implementatie
  • 56. Database Schema API
    • Demo gebruik Database Schema API
      • .install file
    • Oefening gebruik Database Schame API
  • 57. Drupal Theming System
  • 58. Theming system
    • xHTML / CSS
    • Javascript & jQuery
    • Custom vs voorgecodeerd
    • Veel themes beschikbaar
    • Garland als voorbeeld theme
    • Garland als backend theme
  • 59. Online resources
    • Anatomy of Drupal 6 theme http://drupal.org/node/171194
    • Drupal 6 theming documentation http://drupal.org/theme-guide/6
    • Core tpl-files and vars (cheat sheet) http://drupal.org/node/190815
    • Drupal coding documentation: http://drupal.org/node/360052
    • Secure code http://drupal.org/writing-secure-code
    • Use the Theme developer module http://drupal.org/project/devel
    • HTML en CSS tools en techniques http://drupal.org/node/37156
    • Theming forum http://drupal.org/forum/3
    • Theming layer in modules http://drupal.org/node/165706
  • 60. Theme anatomy Bron afbeelding:http://drupal.org/node/171194
  • 61. Enkele Theme Files
    • In Folder : sites/all/themes/[theme_naam]
    • .info
    • page.tpl.php
    • node.tpl.php
    • block.tpl.php
    • template.php
    • page-front.tpl.php
    • Images folder
    • Css folder
    • Screenshot.png
    • Comment.tpl.php
    • Favicon
  • 62. Enkele Theme Files
    • .info variabelen: http://drupal.org/node/171205 deafults: http://drupal.org/node/171206 theme_get_registry()
    • page.tpl.php http://api.drupal.org/api/file/modules/system/page.tpl.php/6
    • node.tpl.php http://api.drupal.org/api/file/modules/node/node.tpl.php/6
  • 63. Features en color
    • Toevoegen features http://drupal.org/project/themesettingsapi
    • Color module http://drupal.org/node/108459
  • 64. Regions
    • Assignen van blocks/content aan regions http://drupal.org/node/171224
    • Demo inrichten regions
  • 65. Theme variables
    • $styles
    • $scripts
    • $head
    • $content
    • $closure
    • $base_path
    • $language
    • print $ regionname
    • $directory
    • $tabs
    • $tabs2
    • $title
    • $breadcrumb
    • $show_messages /$messages
    • $help
    • $front_page
    • $is_front
    • Core templates (cheat sheet) http://drupal.org/node/190815
  • 66. Enkele API functies voor theming
    • format_date()
    • l()
    • url()
    • t()
    • Sanitizing functions
      • check_plain()
      • check_markup()
      • filter_access()
      • filter_xss_admin()
    • drupal_add_css()
  • 67. API functions in theme
    • Demo API functions in theme aanroepen
  • 68. Theme overriding
    • “ Overriding”, dus geen “overwriting”
    • pages
    • blocks
    • tpl.php files in modules
    • Overriden van tpl files mbv theme functies
    • Standaard Drupal functions:
      • theme('item_list')
      • theme(’table’)
  • 69. Overriding voorbeeld
    • pages
      • Page- [front|internal/path].tpl.php
    • blocks
      • Block- modulename-delta.tpl.php
      • Block- modulename.tpl.php
      • Block-region.tpl.php
      • Block.tpl.php
  • 70. Theme hooks & overriding
    • Functions in modules (theme_%)
      • http://api.drupal.org/api/group/themeable/6
    • Overriden van tpl files mbv theme functies
    • Sinds D6: registreren theme hooks
    • Theme registry & cache
  • 71. Custom variables in theme
    • http://drupal.org/node/223430
    • Extra variabelen toevoegen in preprocessing
      • <?php function template_preprocess_foo(&$variables) {   $variables['foo_list'] = array(    'list item 1',    'list item 2',    'list item 3',  ); } ?>
    • Wijzigen/ toevoegen data aan bestaande variabelen.
  • 72. Theming tools
    • Devel module
    • Validatie html & css. http://validator.w3.org
    • Firefox:
      • Drupal for firebug. http://drupal.org/project/drupalforfirebug
      • Web developer toolbar
      • Firebug
      • Yslow
      • Total validator
  • 73. Oefening
    • Registreer theme
    • Screenshot toevoegen
    • Theme activeren in Front-end
  • 74. Oefening
    • Implementeer statische html
      • mbv theme files en variables
  • 75. Oefening
    • Regio’s definieren
  • 76. Oefening
    • Themen page, variabelen inladen
  • 77. Oefening
    • Menu items themen
    • Block themen
    • List page themen mbv:
      • Views
      • CCK
      • Imagefield (+dependecies)
      • Imagecache
      • Image api
      • + dependencies
  • 78. Oefening
    • List page themen mbv menu hook in custom module
    • Submenu afhankelijk van hoofdmenu tonen
    • Submenu active state themen
  • 79. Oefening, CCK themen
    • Extra content type definieren
    • Met CCK velden definieren
    • Output voor die velden themen
    • De custom ‘CCK’ velden:
      • Image mbv: Imagecache
      • Introtekst
  • 80. Divers
    • Demo Multi site theming
    • Demo LTR / RTL (Left To Right / Right To Left)
    • Demo Subtheming
  • 81. Oefening
    • Oefening Multi site theming
    • Oefening LTR / RTL (Left To Right / Right To Left)
    • Oefening Subtheming
  • 82. Afsluiting, wrap it up