SlideShare une entreprise Scribd logo
1  sur  23
Télécharger pour lire hors ligne
Joomla! extensies maken
       beknopt overzicht van
   verleden, heden en toekomst




                     Herman Peeren, Yepr
                     NL Joomla!Dagen 2012
1.5, zelfde principes
•	componenten, MVC, JTable
•	modules in het template hangen
•	plugins reageren op events
•	minimaal 2 bestanden: php-bestand met
 de code en xml-bestand om te installeren
MVC
1.5 extensies: boeken
Es gibt auch
  Deutsche Bücher


             ↓
van de andere kant bekeken
1.6, 1.7, 2.5

video
Joseph
LeBlanc
op
Lynda.com
(5:25 uur)
meer 2.5 ontwikkel docu:
•	docs.joomla.org:
http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!2.5


•	gratis/gesponsord
 development
 beginners guide
 Hagen Graf:
http://cocoate.com/sites/cocoate.com/files/private/jdev.pdf
DaBook!
•	Mark Dexter & Louis Landry:
 Joomla! Programming
        TM
uit dat boek, pagina 182-185:

Excursie: overriding core
•	 core classes laden: jimport, autoloader
•	 worden maar 1x geladen
•	 systeem-plugins worden voor 1e event
   (onBeforeInitialise) geladen
•	 plugins kunnen behalve classes (of functies die gere-
  gistreerd moeten worden) ook “losse” code bevatten.
•	 die code wordt meteen uitgevoerd
•	 als je dan een class laadt (include_once), dan later niet
  meer...
Nieuw in 2.5 t.o.v. 1.5
•	JForm
 zie James Kennard:
 http://www.howtojoomla.net/how-tos/development/getting-started-with-jform
 veldtypes: http://docs.joomla.org/Form_field

•	 ACL
 zie Sander Potjer:
 http://www.aclmanager.net/blog/general/31-how-to-add-basic-acl-support-to-your-extension

•	Taal ook in je eigen componenten
•	En verder: globalen weg; afgeleide controllers en mo-
  dels (JModelForm, JModelAdmin, JModelList); Nested
  categories (JTableNested), ook voor eigen extensies;
  nieuwe events; packages; update; etc.
Links: nieuw t.o.v. 1.5
voor wat betreft extensies:

•	   http://docs.joomla.org/What’s_new_in_Joomla_1.6
•	   http://docs.joomla.org/16Events (1.5: http://docs.joomla.org/Plugin/Events)
•	   http://docs.joomla.org/Adapting_a_Joomla_1.5_extension_to_Joomla_1.6
•	   http://docs.joomla.org/Category:Specifications
Tools
Naast het gebruikelijke arsenaal:
•	 IDE (b.v. Eclipse of Netbeans)
•	 Git (SVN)
•	 tests: PHPunit, Selenium...Ja: TDD! Want achteraf testen is oersaai.
•	 building: (zoals Phing, Ant)

extensie-ontwikkel-hulpmiddelen:
•	EasyCreator:
 0.0.13: http://www.easy-joomla.org/de/news/45-easycreator-update-version-
 0013-und-fuer-joomla-16.html
 0.0.16: https://github.com/elkuku/EasyCreator/downloads (Nicolai Plath)
 http://www.joomla-wiki.de/dokumentation/Benutzer:Elkuku/Proyektz/EasyCreator
 gebruikt MVC-voorbeelden uit docs.joomla.org

•	Jacc http://www.janguo.de/lang-de/repository.html
•	JFooBar https://github.com/Niambie/jfoobar
 http://magazine.joomla.org/issues/Issue-Sept-2011/item/566-Site-Builders-can-
 Build-Custom-Joomla-Components
Platform applicaties
•	los van, naast of samen met het CMS
•	ontwikkeling van platform gaat harder
 dan van CMS
•	legacy-tree voor CMS
•	ook CLI
Toekomst, ontwikkelingen
 MVC vernieuwd!
•	JModel, JView en JController: interfaces
•	 basis classes
•	 minder en beter gedefinieerde afhankelijkheden
•	 https://github.com/joomla/joomla-platform/pull/1120

UCM: Unified Content Model
•	https://groups.google.com/forum/?fromgroups#!topic/
  joomla-dev-platform/sqdZ0B_WCiQ
Documentatie
•	Platform-documentatie (nieuwe MVC):
 http://developer.joomla.org/manual/
En nog veel meer...
•	Nooku-server (Dry, Convention over
 Code, multi-site, eigen framework)
 http://www.nooku.org

•	Square One (Joomla! Light)
 http://www.squareonecms.org/

•	Molajo? https://github.com/Molajo/Molajo
•	CCK’s en dergelijke gaan ook door
•	DDD, ORM, Doctrine 2... (mijn eigen
 stokpaardje)
/* render list of performers for a category */
foreach ($this->performers as $performer)         Nested ArrayCollections
{
     /* general information about the performer */
    // echo $performer->getName(), $performer->getStory() etc.

    /* render pictures and videos for this performer */
    foreach ($performer->getMedia() as $medium)
    {
        // URL in $medium->getLocation();
    }

    /* render list of acts for that performer */
    foreach ($performer->getActs() as $act)
    {
         /* information about the act */
        // echo $act->getName(), $act->getStory() etc.

         /* render pictures and videos for this act */
         foreach ($act->getMedia() as $medium)
        {
             // URL in $medium->getLocation();
         }
    }
}
Vragen?




  Bedankt en tot ziens!
             herman@yepr.nl

www.hermanpeeren.nl           www.yepr.eu

Contenu connexe

En vedette

Programmeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereldProgrammeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereldHerman Peeren
 
Commercial gpljoomla
Commercial gpljoomlaCommercial gpljoomla
Commercial gpljoomlaHerman Peeren
 
Design Patterns - Part 1 of 2
Design Patterns - Part 1 of 2Design Patterns - Part 1 of 2
Design Patterns - Part 1 of 2Savio Sebastian
 
Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.Herman Peeren
 
Let us understand design pattern
Let us understand design patternLet us understand design pattern
Let us understand design patternMindfire Solutions
 
Design Patterns Illustrated
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns IllustratedHerman Peeren
 
Jump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternJump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternNishith Shukla
 

En vedette (7)

Programmeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereldProgrammeren, talen en het begrijpen van de wereld
Programmeren, talen en het begrijpen van de wereld
 
Commercial gpljoomla
Commercial gpljoomlaCommercial gpljoomla
Commercial gpljoomla
 
Design Patterns - Part 1 of 2
Design Patterns - Part 1 of 2Design Patterns - Part 1 of 2
Design Patterns - Part 1 of 2
 
Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.Webservices: connecting Joomla! with other programs.
Webservices: connecting Joomla! with other programs.
 
Let us understand design pattern
Let us understand design patternLet us understand design pattern
Let us understand design pattern
 
Design Patterns Illustrated
Design Patterns IllustratedDesign Patterns Illustrated
Design Patterns Illustrated
 
Jump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design PatternJump start to OOP, OOAD, and Design Pattern
Jump start to OOP, OOAD, and Design Pattern
 

Similaire à #jd12nl Joomla 2.5 extensies

Jug010 120320-templates
Jug010 120320-templatesJug010 120320-templates
Jug010 120320-templatesHerman Peeren
 
Joomla! Plugins Programmeren [NL]
Joomla! Plugins Programmeren [NL]Joomla! Plugins Programmeren [NL]
Joomla! Plugins Programmeren [NL]Yireo
 
PFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele testsPFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele testsRichard Tuin
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages IntroductieRob Bontekoe
 
The power of joomla!
The power of joomla!The power of joomla!
The power of joomla!Rick Spaan
 
The power of joomla!
The power of joomla!The power of joomla!
The power of joomla!Rick Spaan
 
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en Fluid
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en FluidTYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en Fluid
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en FluidTYPO3 Nederland
 
Presentatie WordPress Theme Frameworks WordCamp NL 2010
Presentatie WordPress Theme Frameworks WordCamp NL 2010Presentatie WordPress Theme Frameworks WordCamp NL 2010
Presentatie WordPress Theme Frameworks WordCamp NL 2010Remkus de Vries
 
General Drupal presentation in Dutch
General Drupal  presentation in DutchGeneral Drupal  presentation in Dutch
General Drupal presentation in DutchRoel Meester
 
Drupal7 Development
Drupal7 DevelopmentDrupal7 Development
Drupal7 DevelopmentHans Rossel
 
Mijn eerste Joomla! plugin
Mijn eerste Joomla! pluginMijn eerste Joomla! plugin
Mijn eerste Joomla! pluginStudioDeOorzaak
 
Een autodealer website bouwen met Form2Content - René Kreijveld - #jd15nl
Een autodealer website bouwen met Form2Content - René Kreijveld - #jd15nlEen autodealer website bouwen met Form2Content - René Kreijveld - #jd15nl
Een autodealer website bouwen met Form2Content - René Kreijveld - #jd15nlJoomla!Days Netherlands
 
Drupal Uitgebreide Starters Training
Drupal Uitgebreide Starters TrainingDrupal Uitgebreide Starters Training
Drupal Uitgebreide Starters TrainingLuciuswebsystems
 
Introductie Drupal development
Introductie Drupal developmentIntroductie Drupal development
Introductie Drupal developmentBart Hanssens
 
Zelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginnersZelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginnersRachel Walraven
 
De extensie Attachements
De extensie AttachementsDe extensie Attachements
De extensie AttachementsMargreet Bekema
 
Lucius Drupal Development Cursus
Lucius Drupal Development CursusLucius Drupal Development Cursus
Lucius Drupal Development CursusLuciuswebsystems
 

Similaire à #jd12nl Joomla 2.5 extensies (20)

Jug010 120320-templates
Jug010 120320-templatesJug010 120320-templates
Jug010 120320-templates
 
Joomla! Plugins Programmeren [NL]
Joomla! Plugins Programmeren [NL]Joomla! Plugins Programmeren [NL]
Joomla! Plugins Programmeren [NL]
 
PFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele testsPFZ Workshop - Automatiseren van functionele tests
PFZ Workshop - Automatiseren van functionele tests
 
XPages Introductie
XPages IntroductieXPages Introductie
XPages Introductie
 
The power of joomla!
The power of joomla!The power of joomla!
The power of joomla!
 
The power of joomla!
The power of joomla!The power of joomla!
The power of joomla!
 
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en Fluid
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en FluidTYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en Fluid
TYPO3 Congres 2012 - Aan de slag met TYPO3 Extbase en Fluid
 
Presentatie WordPress Theme Frameworks WordCamp NL 2010
Presentatie WordPress Theme Frameworks WordCamp NL 2010Presentatie WordPress Theme Frameworks WordCamp NL 2010
Presentatie WordPress Theme Frameworks WordCamp NL 2010
 
General Drupal presentation in Dutch
General Drupal  presentation in DutchGeneral Drupal  presentation in Dutch
General Drupal presentation in Dutch
 
Drupal7 Development
Drupal7 DevelopmentDrupal7 Development
Drupal7 Development
 
Joomla
JoomlaJoomla
Joomla
 
Mijn eerste Joomla! plugin
Mijn eerste Joomla! pluginMijn eerste Joomla! plugin
Mijn eerste Joomla! plugin
 
Een autodealer website bouwen met Form2Content - René Kreijveld - #jd15nl
Een autodealer website bouwen met Form2Content - René Kreijveld - #jd15nlEen autodealer website bouwen met Form2Content - René Kreijveld - #jd15nl
Een autodealer website bouwen met Form2Content - René Kreijveld - #jd15nl
 
Drupal Uitgebreide Starters Training
Drupal Uitgebreide Starters TrainingDrupal Uitgebreide Starters Training
Drupal Uitgebreide Starters Training
 
Introductie Drupal development
Introductie Drupal developmentIntroductie Drupal development
Introductie Drupal development
 
Zelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginnersZelf je Joomla! template bouwen voor beginners
Zelf je Joomla! template bouwen voor beginners
 
Eduvision - Webinar Joomla
Eduvision - Webinar JoomlaEduvision - Webinar Joomla
Eduvision - Webinar Joomla
 
De extensie Attachements
De extensie AttachementsDe extensie Attachements
De extensie Attachements
 
Lucius Drupal Development Cursus
Lucius Drupal Development CursusLucius Drupal Development Cursus
Lucius Drupal Development Cursus
 
Robocon @ Immune-it
Robocon @ Immune-itRobocon @ Immune-it
Robocon @ Immune-it
 

Plus de Herman Peeren

ProjectionalForms-2023-11-14.pdf
ProjectionalForms-2023-11-14.pdfProjectionalForms-2023-11-14.pdf
ProjectionalForms-2023-11-14.pdfHerman Peeren
 
ExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdfExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdfHerman Peeren
 
Improve our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional ProgrammingImprove our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional ProgrammingHerman Peeren
 
DCI DDD-BE April 2015
DCI DDD-BE April 2015DCI DDD-BE April 2015
DCI DDD-BE April 2015Herman Peeren
 
Design patterns illustrated-2015-03
Design patterns illustrated-2015-03Design patterns illustrated-2015-03
Design patterns illustrated-2015-03Herman Peeren
 
Design patterns illustrated 010PHP
Design patterns illustrated 010PHPDesign patterns illustrated 010PHP
Design patterns illustrated 010PHPHerman Peeren
 
Print, geen kunst aan
Print, geen kunst aanPrint, geen kunst aan
Print, geen kunst aanHerman Peeren
 
Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!Herman Peeren
 
Flash templates for Joomla!
Flash templates for Joomla!Flash templates for Joomla!
Flash templates for Joomla!Herman Peeren
 

Plus de Herman Peeren (13)

ProjectionalForms-2023-11-14.pdf
ProjectionalForms-2023-11-14.pdfProjectionalForms-2023-11-14.pdf
ProjectionalForms-2023-11-14.pdf
 
ExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdfExtensionGenerator-JoomlaDagen2023-slides.pdf
ExtensionGenerator-JoomlaDagen2023-slides.pdf
 
Cut & Shave
Cut & ShaveCut & Shave
Cut & Shave
 
Dci in PHP
Dci in PHPDci in PHP
Dci in PHP
 
Improve our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional ProgrammingImprove our PHP code with ideas from Functional Programming
Improve our PHP code with ideas from Functional Programming
 
DCI DDD-BE April 2015
DCI DDD-BE April 2015DCI DDD-BE April 2015
DCI DDD-BE April 2015
 
Design patterns illustrated-2015-03
Design patterns illustrated-2015-03Design patterns illustrated-2015-03
Design patterns illustrated-2015-03
 
Event Sourcing
Event SourcingEvent Sourcing
Event Sourcing
 
Design patterns illustrated 010PHP
Design patterns illustrated 010PHPDesign patterns illustrated 010PHP
Design patterns illustrated 010PHP
 
Print, geen kunst aan
Print, geen kunst aanPrint, geen kunst aan
Print, geen kunst aan
 
Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!Jooctrine - Doctrine ORM in Joomla!
Jooctrine - Doctrine ORM in Joomla!
 
#jd12nl Seblod 2
#jd12nl  Seblod 2#jd12nl  Seblod 2
#jd12nl Seblod 2
 
Flash templates for Joomla!
Flash templates for Joomla!Flash templates for Joomla!
Flash templates for Joomla!
 

#jd12nl Joomla 2.5 extensies

  • 1. Joomla! extensies maken beknopt overzicht van verleden, heden en toekomst Herman Peeren, Yepr NL Joomla!Dagen 2012
  • 2. 1.5, zelfde principes • componenten, MVC, JTable • modules in het template hangen • plugins reageren op events • minimaal 2 bestanden: php-bestand met de code en xml-bestand om te installeren
  • 3.
  • 4. MVC
  • 6. Es gibt auch Deutsche Bücher ↓ van de andere kant bekeken
  • 8. meer 2.5 ontwikkel docu: • docs.joomla.org: http://docs.joomla.org/Developing_a_Model-View-Controller_%28MVC%29_Component_for_Joomla!2.5 • gratis/gesponsord development beginners guide Hagen Graf: http://cocoate.com/sites/cocoate.com/files/private/jdev.pdf
  • 9. DaBook! • Mark Dexter & Louis Landry: Joomla! Programming TM
  • 10. uit dat boek, pagina 182-185: Excursie: overriding core • core classes laden: jimport, autoloader • worden maar 1x geladen • systeem-plugins worden voor 1e event (onBeforeInitialise) geladen • plugins kunnen behalve classes (of functies die gere- gistreerd moeten worden) ook “losse” code bevatten. • die code wordt meteen uitgevoerd • als je dan een class laadt (include_once), dan later niet meer...
  • 11. Nieuw in 2.5 t.o.v. 1.5 • JForm zie James Kennard: http://www.howtojoomla.net/how-tos/development/getting-started-with-jform veldtypes: http://docs.joomla.org/Form_field • ACL zie Sander Potjer: http://www.aclmanager.net/blog/general/31-how-to-add-basic-acl-support-to-your-extension • Taal ook in je eigen componenten • En verder: globalen weg; afgeleide controllers en mo- dels (JModelForm, JModelAdmin, JModelList); Nested categories (JTableNested), ook voor eigen extensies; nieuwe events; packages; update; etc.
  • 12. Links: nieuw t.o.v. 1.5 voor wat betreft extensies: • http://docs.joomla.org/What’s_new_in_Joomla_1.6 • http://docs.joomla.org/16Events (1.5: http://docs.joomla.org/Plugin/Events) • http://docs.joomla.org/Adapting_a_Joomla_1.5_extension_to_Joomla_1.6 • http://docs.joomla.org/Category:Specifications
  • 13. Tools Naast het gebruikelijke arsenaal: • IDE (b.v. Eclipse of Netbeans) • Git (SVN) • tests: PHPunit, Selenium...Ja: TDD! Want achteraf testen is oersaai. • building: (zoals Phing, Ant) extensie-ontwikkel-hulpmiddelen: • EasyCreator: 0.0.13: http://www.easy-joomla.org/de/news/45-easycreator-update-version- 0013-und-fuer-joomla-16.html 0.0.16: https://github.com/elkuku/EasyCreator/downloads (Nicolai Plath) http://www.joomla-wiki.de/dokumentation/Benutzer:Elkuku/Proyektz/EasyCreator gebruikt MVC-voorbeelden uit docs.joomla.org • Jacc http://www.janguo.de/lang-de/repository.html • JFooBar https://github.com/Niambie/jfoobar http://magazine.joomla.org/issues/Issue-Sept-2011/item/566-Site-Builders-can- Build-Custom-Joomla-Components
  • 14.
  • 15.
  • 16.
  • 17. Platform applicaties • los van, naast of samen met het CMS • ontwikkeling van platform gaat harder dan van CMS • legacy-tree voor CMS • ook CLI
  • 18. Toekomst, ontwikkelingen MVC vernieuwd! • JModel, JView en JController: interfaces • basis classes • minder en beter gedefinieerde afhankelijkheden • https://github.com/joomla/joomla-platform/pull/1120 UCM: Unified Content Model • https://groups.google.com/forum/?fromgroups#!topic/ joomla-dev-platform/sqdZ0B_WCiQ
  • 19. Documentatie • Platform-documentatie (nieuwe MVC): http://developer.joomla.org/manual/
  • 20. En nog veel meer... • Nooku-server (Dry, Convention over Code, multi-site, eigen framework) http://www.nooku.org • Square One (Joomla! Light) http://www.squareonecms.org/ • Molajo? https://github.com/Molajo/Molajo • CCK’s en dergelijke gaan ook door • DDD, ORM, Doctrine 2... (mijn eigen stokpaardje)
  • 21.
  • 22. /* render list of performers for a category */ foreach ($this->performers as $performer) Nested ArrayCollections { /* general information about the performer */ // echo $performer->getName(), $performer->getStory() etc. /* render pictures and videos for this performer */ foreach ($performer->getMedia() as $medium) { // URL in $medium->getLocation(); } /* render list of acts for that performer */ foreach ($performer->getActs() as $act) { /* information about the act */ // echo $act->getName(), $act->getStory() etc. /* render pictures and videos for this act */ foreach ($act->getMedia() as $medium) { // URL in $medium->getLocation(); } } }
  • 23. Vragen? Bedankt en tot ziens! herman@yepr.nl www.hermanpeeren.nl www.yepr.eu