#jd12nl Joomla 2.5 extensies

23
beknopt overzicht van verleden, heden en toekomst Herman Peeren, Yepr NL Joomla!Dagen 2012 Joomla! extensies maken

description

Verleden, heden en toekomst van Joomla! Extensies. Presentation for Dutch Joomla!Days 2012. For the links to work: please download the original pdf.

Transcript of #jd12nl Joomla 2.5 extensies

Page 1: #jd12nl Joomla 2.5 extensies

beknopt overzicht vanverleden, heden en toekomst

Herman Peeren, YeprNL Joomla!Dagen 2012

Joomla! extensies maken

Page 2: #jd12nl Joomla 2.5 extensies

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

Page 3: #jd12nl Joomla 2.5 extensies
Page 4: #jd12nl Joomla 2.5 extensies

MVC

Page 5: #jd12nl Joomla 2.5 extensies

1.5 extensies: boeken

Page 6: #jd12nl Joomla 2.5 extensies

Es gibt auch Deutsche Bücher

↓van de andere kant bekeken

Page 7: #jd12nl Joomla 2.5 extensies

1.6, 1.7, 2.5

video Joseph LeBlanc op Lynda.com (5:25 uur)

Page 8: #jd12nl Joomla 2.5 extensies

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

Page 9: #jd12nl Joomla 2.5 extensies

DaBook!• Mark Dexter & Louis Landry: Joomla!TM Programming

Page 10: #jd12nl Joomla 2.5 extensies

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

uit dat boek, pagina 182-185:

Page 11: #jd12nl Joomla 2.5 extensies

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.

Page 12: #jd12nl Joomla 2.5 extensies

Links: nieuw t.o.v. 1.5voor 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

Page 13: #jd12nl Joomla 2.5 extensies

ToolsNaast 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

Page 14: #jd12nl Joomla 2.5 extensies
Page 15: #jd12nl Joomla 2.5 extensies
Page 16: #jd12nl Joomla 2.5 extensies
Page 17: #jd12nl Joomla 2.5 extensies

Platform applicaties• los van, naast of samen met het CMS• ontwikkeling van platform gaat harder dan van CMS• legacy-tree voor CMS • ook CLI

Page 18: #jd12nl Joomla 2.5 extensies

Toekomst, ontwikkelingen MVC vernieuwd! • JModel, JView en JController: interfaces• basis classes•minderenbetergedefinieerdeafhankelijkheden• https://github.com/joomla/joomla-platform/pull/1120

UCM: Unified Content Model•https://groups.google.com/forum/?fromgroups#!topic/joomla-dev-platform/sqdZ0B_WCiQ

Page 19: #jd12nl Joomla 2.5 extensies

Documentatie• Platform-documentatie (nieuwe MVC): http://developer.joomla.org/manual/

Page 20: #jd12nl Joomla 2.5 extensies

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)

Page 21: #jd12nl Joomla 2.5 extensies
Page 22: #jd12nl Joomla 2.5 extensies

/* render list of performers for a category */foreach ($this->performers as $performer) { /* 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(); } }}

Nested ArrayCollections

Page 23: #jd12nl Joomla 2.5 extensies

Vragen?

Bedankt en tot [email protected]

www.hermanpeeren.nl www.yepr.eu