SlideShare a Scribd company logo

Joomla! Plugin Development

Yireo
Yireo

Presentation on Joomla! plugin development

1 of 45
Download to read offline
Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Joomla! plugin
development
Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
My name is Jisse Reitsma
Developer
Owner of Yireo
Joomla! & Magento
Extensies & development
Tutorials & blogs
Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Plugins I wrote so far
Language Domains
Auto Login IP
Demo Site
Fancybox
HTTP Authenticatie
New Relic
Piwik
WebP
ScriptMerge
SEF Test
SSL Redirection
Static Content
Trademark
32+ MageBridge plugins
10+ SimpleLists plugins
8+ Dynamic404 plugins
Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Book release in Autumn 2014
English
About 200-300 pages
Complete reference guide
Available through Amazon
(plus some other channels)
Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Developing plugins yourself
Part I - Why a plugin?
Part II - A bit of programming
Part III - Hmmm, braindump
Presentation online: http://slideshare.net/yireo
Tweets: @yireo
Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo
Jisse Reitsma (jisse@yireo.com) - Twitter @yireo
Part 1:
Why a plugin?

Recommended

Joomla! Menu-Items
Joomla! Menu-ItemsJoomla! Menu-Items
Joomla! Menu-ItemsYireo
 
8 Most Common Joomla! Hacks and How to Avoid Them
8 Most Common Joomla! Hacks and How to Avoid Them8 Most Common Joomla! Hacks and How to Avoid Them
8 Most Common Joomla! Hacks and How to Avoid ThemDaniel Kanchev
 
Joomla 3 JLayout's - Joomladay Netherlands 2014 #jd14nl
Joomla 3 JLayout's - Joomladay Netherlands 2014 #jd14nlJoomla 3 JLayout's - Joomladay Netherlands 2014 #jd14nl
Joomla 3 JLayout's - Joomladay Netherlands 2014 #jd14nlPhilip Locke
 
Joomla wireframing Template - Joomladay Netherlands 2014 #jd14nl
Joomla wireframing Template - Joomladay Netherlands 2014 #jd14nlJoomla wireframing Template - Joomladay Netherlands 2014 #jd14nl
Joomla wireframing Template - Joomladay Netherlands 2014 #jd14nlPhilip Locke
 
Bootstrap 3 in Joomla!
Bootstrap 3 in Joomla!Bootstrap 3 in Joomla!
Bootstrap 3 in Joomla!Hans Kuijpers
 
Joomla 1, Joomla 2, Joomla 3 (Joomla Versions Explained)
Joomla 1, Joomla 2, Joomla 3 (Joomla Versions Explained)Joomla 1, Joomla 2, Joomla 3 (Joomla Versions Explained)
Joomla 1, Joomla 2, Joomla 3 (Joomla Versions Explained)Sander Potjer
 
Joomla Tomorrow and Beyond
Joomla Tomorrow and BeyondJoomla Tomorrow and Beyond
Joomla Tomorrow and BeyondJessica Dunbar
 
Getting Started with the Joomla! Framework
Getting Started with the Joomla! FrameworkGetting Started with the Joomla! Framework
Getting Started with the Joomla! FrameworkMichael Babker
 

More Related Content

What's hot

40 WordPress Tips: Security, Engagement, SEO & Performance - SMX Sydney 2013
40 WordPress Tips: Security, Engagement, SEO & Performance - SMX Sydney 201340 WordPress Tips: Security, Engagement, SEO & Performance - SMX Sydney 2013
40 WordPress Tips: Security, Engagement, SEO & Performance - SMX Sydney 2013Bastian Grimm
 
Beginning WordPress Plugin Development
Beginning WordPress Plugin DevelopmentBeginning WordPress Plugin Development
Beginning WordPress Plugin DevelopmentAizat Faiz
 
WordPress Tips and Tricks (DFW Meetup)
WordPress Tips and Tricks (DFW Meetup)WordPress Tips and Tricks (DFW Meetup)
WordPress Tips and Tricks (DFW Meetup)Stephanie Leary
 
Develop Basic joomla! MVC component for version 3
Develop Basic joomla! MVC component for version 3Develop Basic joomla! MVC component for version 3
Develop Basic joomla! MVC component for version 3Gunjan Patel
 
A Beginner’s Guide to Wordpress - WordCamp Toronto 2011
A Beginner’s Guide to Wordpress - WordCamp Toronto 2011A Beginner’s Guide to Wordpress - WordCamp Toronto 2011
A Beginner’s Guide to Wordpress - WordCamp Toronto 2011Kathryn Presner
 
WordPress: Smart Ideas for Startup - SMW torino 2012
WordPress: Smart Ideas for Startup - SMW  torino 2012 WordPress: Smart Ideas for Startup - SMW  torino 2012
WordPress: Smart Ideas for Startup - SMW torino 2012 Maurizio Pelizzone
 
WordPress SEO in 2014 - WordCamp Baltimore 2014
WordPress SEO in 2014 - WordCamp Baltimore 2014WordPress SEO in 2014 - WordCamp Baltimore 2014
WordPress SEO in 2014 - WordCamp Baltimore 2014Arsham Mirshah
 
How to Jazz Up Your WordPress Site – without a lick o’ code
How to Jazz Up Your WordPress Site – without a lick o’ codeHow to Jazz Up Your WordPress Site – without a lick o’ code
How to Jazz Up Your WordPress Site – without a lick o’ codeKathryn Presner
 
Extend Joomla Forms Using Plugins
Extend Joomla Forms Using PluginsExtend Joomla Forms Using Plugins
Extend Joomla Forms Using PluginsYireo
 
Extension developer secrets - How to make money with Joomla
Extension developer secrets - How to make money with JoomlaExtension developer secrets - How to make money with Joomla
Extension developer secrets - How to make money with JoomlaTim Plummer
 
Hardening WordPress - SAScon Manchester 2013 (WordPress Security)
Hardening WordPress - SAScon Manchester 2013 (WordPress Security)Hardening WordPress - SAScon Manchester 2013 (WordPress Security)
Hardening WordPress - SAScon Manchester 2013 (WordPress Security)Bastian Grimm
 
Website Design Dos and Don’ts for a Successful Online Presence
Website Design Dos and Don’ts  for a Successful Online PresenceWebsite Design Dos and Don’ts  for a Successful Online Presence
Website Design Dos and Don’ts for a Successful Online PresenceBrad Williams
 
Wordpress for Newbies 2010-03-27
Wordpress for Newbies 2010-03-27Wordpress for Newbies 2010-03-27
Wordpress for Newbies 2010-03-27Shannon Smith
 
A Beginner's Guide to WordPress - WordCamp New York City 2012
A Beginner's Guide to WordPress - WordCamp New York City 2012A Beginner's Guide to WordPress - WordCamp New York City 2012
A Beginner's Guide to WordPress - WordCamp New York City 2012Kathryn Presner
 
SoCal WordPress Meetup - iWeb to WordPress aka WP99
SoCal WordPress Meetup - iWeb to WordPress aka WP99SoCal WordPress Meetup - iWeb to WordPress aka WP99
SoCal WordPress Meetup - iWeb to WordPress aka WP99Noel Saw
 
A Beginner's Guide to WordPress - WordCamp Montreal 2012
A Beginner's Guide to WordPress - WordCamp Montreal 2012A Beginner's Guide to WordPress - WordCamp Montreal 2012
A Beginner's Guide to WordPress - WordCamp Montreal 2012Kathryn Presner
 
WordPress for Girl Geeks 2009-11-24
WordPress for Girl Geeks 2009-11-24WordPress for Girl Geeks 2009-11-24
WordPress for Girl Geeks 2009-11-24Shannon Smith
 
WordPress Essentials for Beginners - YES Montreal December 2014
WordPress Essentials for Beginners - YES Montreal December 2014WordPress Essentials for Beginners - YES Montreal December 2014
WordPress Essentials for Beginners - YES Montreal December 2014Kathryn Presner
 
Amazing WordPress & Productivity Tips
Amazing WordPress & Productivity TipsAmazing WordPress & Productivity Tips
Amazing WordPress & Productivity TipsTony Cecala, Ph.D.
 

What's hot (20)

40 WordPress Tips: Security, Engagement, SEO & Performance - SMX Sydney 2013
40 WordPress Tips: Security, Engagement, SEO & Performance - SMX Sydney 201340 WordPress Tips: Security, Engagement, SEO & Performance - SMX Sydney 2013
40 WordPress Tips: Security, Engagement, SEO & Performance - SMX Sydney 2013
 
Beginning WordPress Plugin Development
Beginning WordPress Plugin DevelopmentBeginning WordPress Plugin Development
Beginning WordPress Plugin Development
 
WordPress Tips and Tricks (DFW Meetup)
WordPress Tips and Tricks (DFW Meetup)WordPress Tips and Tricks (DFW Meetup)
WordPress Tips and Tricks (DFW Meetup)
 
Develop Basic joomla! MVC component for version 3
Develop Basic joomla! MVC component for version 3Develop Basic joomla! MVC component for version 3
Develop Basic joomla! MVC component for version 3
 
A Beginner’s Guide to Wordpress - WordCamp Toronto 2011
A Beginner’s Guide to Wordpress - WordCamp Toronto 2011A Beginner’s Guide to Wordpress - WordCamp Toronto 2011
A Beginner’s Guide to Wordpress - WordCamp Toronto 2011
 
WordPress: Smart Ideas for Startup - SMW torino 2012
WordPress: Smart Ideas for Startup - SMW  torino 2012 WordPress: Smart Ideas for Startup - SMW  torino 2012
WordPress: Smart Ideas for Startup - SMW torino 2012
 
WordPress SEO in 2014 - WordCamp Baltimore 2014
WordPress SEO in 2014 - WordCamp Baltimore 2014WordPress SEO in 2014 - WordCamp Baltimore 2014
WordPress SEO in 2014 - WordCamp Baltimore 2014
 
How to Jazz Up Your WordPress Site – without a lick o’ code
How to Jazz Up Your WordPress Site – without a lick o’ codeHow to Jazz Up Your WordPress Site – without a lick o’ code
How to Jazz Up Your WordPress Site – without a lick o’ code
 
Extend Joomla Forms Using Plugins
Extend Joomla Forms Using PluginsExtend Joomla Forms Using Plugins
Extend Joomla Forms Using Plugins
 
Extension developer secrets - How to make money with Joomla
Extension developer secrets - How to make money with JoomlaExtension developer secrets - How to make money with Joomla
Extension developer secrets - How to make money with Joomla
 
WhiteHat SEO for Blog Owner
WhiteHat SEO for Blog OwnerWhiteHat SEO for Blog Owner
WhiteHat SEO for Blog Owner
 
Hardening WordPress - SAScon Manchester 2013 (WordPress Security)
Hardening WordPress - SAScon Manchester 2013 (WordPress Security)Hardening WordPress - SAScon Manchester 2013 (WordPress Security)
Hardening WordPress - SAScon Manchester 2013 (WordPress Security)
 
Website Design Dos and Don’ts for a Successful Online Presence
Website Design Dos and Don’ts  for a Successful Online PresenceWebsite Design Dos and Don’ts  for a Successful Online Presence
Website Design Dos and Don’ts for a Successful Online Presence
 
Wordpress for Newbies 2010-03-27
Wordpress for Newbies 2010-03-27Wordpress for Newbies 2010-03-27
Wordpress for Newbies 2010-03-27
 
A Beginner's Guide to WordPress - WordCamp New York City 2012
A Beginner's Guide to WordPress - WordCamp New York City 2012A Beginner's Guide to WordPress - WordCamp New York City 2012
A Beginner's Guide to WordPress - WordCamp New York City 2012
 
SoCal WordPress Meetup - iWeb to WordPress aka WP99
SoCal WordPress Meetup - iWeb to WordPress aka WP99SoCal WordPress Meetup - iWeb to WordPress aka WP99
SoCal WordPress Meetup - iWeb to WordPress aka WP99
 
A Beginner's Guide to WordPress - WordCamp Montreal 2012
A Beginner's Guide to WordPress - WordCamp Montreal 2012A Beginner's Guide to WordPress - WordCamp Montreal 2012
A Beginner's Guide to WordPress - WordCamp Montreal 2012
 
WordPress for Girl Geeks 2009-11-24
WordPress for Girl Geeks 2009-11-24WordPress for Girl Geeks 2009-11-24
WordPress for Girl Geeks 2009-11-24
 
WordPress Essentials for Beginners - YES Montreal December 2014
WordPress Essentials for Beginners - YES Montreal December 2014WordPress Essentials for Beginners - YES Montreal December 2014
WordPress Essentials for Beginners - YES Montreal December 2014
 
Amazing WordPress & Productivity Tips
Amazing WordPress & Productivity TipsAmazing WordPress & Productivity Tips
Amazing WordPress & Productivity Tips
 

Similar to Joomla! Plugin Development

Joomla! templating
Joomla! templatingJoomla! templating
Joomla! templatingYireo
 
Joomla!: phpMyAdmin for Beginners
Joomla!: phpMyAdmin for BeginnersJoomla!: phpMyAdmin for Beginners
Joomla!: phpMyAdmin for BeginnersYireo
 
Joomla! and SSL
Joomla! and SSLJoomla! and SSL
Joomla! and SSLYireo
 
Joomla! security
Joomla! securityJoomla! security
Joomla! securityYireo
 
Joomla Multilinguality
Joomla MultilingualityJoomla Multilinguality
Joomla MultilingualityYireo
 
Joomla! versus Magento
Joomla! versus MagentoJoomla! versus Magento
Joomla! versus MagentoYireo
 
WordPress for Libraries PreConference Workshop
WordPress for Libraries PreConference WorkshopWordPress for Libraries PreConference Workshop
WordPress for Libraries PreConference WorkshopPolly Farrington
 
Customizing Magento email templates
Customizing Magento email templatesCustomizing Magento email templates
Customizing Magento email templatesYireo
 
Poliedric WordPress - Go!WebDesign
Poliedric WordPress - Go!WebDesignPoliedric WordPress - Go!WebDesign
Poliedric WordPress - Go!WebDesignMaurizio Pelizzone
 
USC Yahoo! BOSS, YAP and YQL Overview
USC Yahoo! BOSS, YAP and YQL OverviewUSC Yahoo! BOSS, YAP and YQL Overview
USC Yahoo! BOSS, YAP and YQL OverviewJonathan LeBlanc
 
YAP, Open Hack Day, Bangalore 2011
YAP, Open Hack Day, Bangalore 2011YAP, Open Hack Day, Bangalore 2011
YAP, Open Hack Day, Bangalore 2011kals_amit_kumar
 
Yahoo! Application Platform (YAP)
Yahoo! Application Platform (YAP)Yahoo! Application Platform (YAP)
Yahoo! Application Platform (YAP)Ravikiran J
 
Magento Debugging
Magento DebuggingMagento Debugging
Magento DebuggingYireo
 
CSI: WordPress -- Getting Into the Guts
CSI: WordPress -- Getting Into the GutsCSI: WordPress -- Getting Into the Guts
CSI: WordPress -- Getting Into the GutsDougal Campbell
 
Building Things Fast - and getting approval
Building Things Fast - and getting approvalBuilding Things Fast - and getting approval
Building Things Fast - and getting approvalSimon Willison
 
SEO and Social Media for Multilingual and Multidevice Sites
SEO and Social Media for Multilingual and Multidevice SitesSEO and Social Media for Multilingual and Multidevice Sites
SEO and Social Media for Multilingual and Multidevice Sitesluckyboost
 
Joomla Day Austin Part 4
Joomla Day Austin Part 4Joomla Day Austin Part 4
Joomla Day Austin Part 4Kyle Ledbetter
 
Joomla! on Heroku
Joomla! on HerokuJoomla! on Heroku
Joomla! on HerokuYireo
 

Similar to Joomla! Plugin Development (20)

Joomla! templating
Joomla! templatingJoomla! templating
Joomla! templating
 
Joomla!: phpMyAdmin for Beginners
Joomla!: phpMyAdmin for BeginnersJoomla!: phpMyAdmin for Beginners
Joomla!: phpMyAdmin for Beginners
 
Joomla! and SSL
Joomla! and SSLJoomla! and SSL
Joomla! and SSL
 
Joomla! security
Joomla! securityJoomla! security
Joomla! security
 
Joomla Multilinguality
Joomla MultilingualityJoomla Multilinguality
Joomla Multilinguality
 
Joomla! versus Magento
Joomla! versus MagentoJoomla! versus Magento
Joomla! versus Magento
 
WordPress for Libraries PreConference Workshop
WordPress for Libraries PreConference WorkshopWordPress for Libraries PreConference Workshop
WordPress for Libraries PreConference Workshop
 
Customizing Magento email templates
Customizing Magento email templatesCustomizing Magento email templates
Customizing Magento email templates
 
Poliedric WordPress - Go!WebDesign
Poliedric WordPress - Go!WebDesignPoliedric WordPress - Go!WebDesign
Poliedric WordPress - Go!WebDesign
 
USC Yahoo! BOSS, YAP and YQL Overview
USC Yahoo! BOSS, YAP and YQL OverviewUSC Yahoo! BOSS, YAP and YQL Overview
USC Yahoo! BOSS, YAP and YQL Overview
 
YAP, Open Hack Day, Bangalore 2011
YAP, Open Hack Day, Bangalore 2011YAP, Open Hack Day, Bangalore 2011
YAP, Open Hack Day, Bangalore 2011
 
WordCamp Sofia 2012
WordCamp Sofia 2012WordCamp Sofia 2012
WordCamp Sofia 2012
 
Yahoo! Application Platform (YAP)
Yahoo! Application Platform (YAP)Yahoo! Application Platform (YAP)
Yahoo! Application Platform (YAP)
 
Magento Debugging
Magento DebuggingMagento Debugging
Magento Debugging
 
CSI: WordPress -- Getting Into the Guts
CSI: WordPress -- Getting Into the GutsCSI: WordPress -- Getting Into the Guts
CSI: WordPress -- Getting Into the Guts
 
Building Things Fast - and getting approval
Building Things Fast - and getting approvalBuilding Things Fast - and getting approval
Building Things Fast - and getting approval
 
SEO and Social Media for Multilingual and Multidevice Sites
SEO and Social Media for Multilingual and Multidevice SitesSEO and Social Media for Multilingual and Multidevice Sites
SEO and Social Media for Multilingual and Multidevice Sites
 
Wordpress as a CMS
Wordpress as a CMSWordpress as a CMS
Wordpress as a CMS
 
Joomla Day Austin Part 4
Joomla Day Austin Part 4Joomla Day Austin Part 4
Joomla Day Austin Part 4
 
Joomla! on Heroku
Joomla! on HerokuJoomla! on Heroku
Joomla! on Heroku
 

More from Yireo

Mage-OS Nederland
Mage-OS NederlandMage-OS Nederland
Mage-OS NederlandYireo
 
Modernizing Vue Storefront 1
Modernizing Vue Storefront 1Modernizing Vue Storefront 1
Modernizing Vue Storefront 1Yireo
 
Magento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshop
Magento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshopMagento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshop
Magento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshopYireo
 
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2Yireo
 
Magento 2 Seminar - Andra Lungu - API in Magento 2
Magento 2 Seminar - Andra Lungu - API in Magento 2Magento 2 Seminar - Andra Lungu - API in Magento 2
Magento 2 Seminar - Andra Lungu - API in Magento 2Yireo
 
Magento 2 Seminar - Roger Keulen - Machine learning
Magento 2 Seminar - Roger Keulen - Machine learningMagento 2 Seminar - Roger Keulen - Machine learning
Magento 2 Seminar - Roger Keulen - Machine learningYireo
 
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and VarnishMagento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and VarnishYireo
 
Magento 2 Seminar - Maarten Schuiling - The App Economy
Magento 2 Seminar - Maarten Schuiling - The App EconomyMagento 2 Seminar - Maarten Schuiling - The App Economy
Magento 2 Seminar - Maarten Schuiling - The App EconomyYireo
 
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelenMagento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelenYireo
 
Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2
Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2
Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2Yireo
 
Magento 2 Seminar - Arjen Miedema - Search Engine Optimisation
Magento 2 Seminar - Arjen Miedema - Search Engine OptimisationMagento 2 Seminar - Arjen Miedema - Search Engine Optimisation
Magento 2 Seminar - Arjen Miedema - Search Engine OptimisationYireo
 
Magento 2 Seminar - Tjitte Folkertsma - Beaumotica
Magento 2 Seminar - Tjitte Folkertsma - BeaumoticaMagento 2 Seminar - Tjitte Folkertsma - Beaumotica
Magento 2 Seminar - Tjitte Folkertsma - BeaumoticaYireo
 
Magento 2 Seminar - Jeroen Vermeulen Snelle Magento 2 Shops
Magento 2 Seminar - Jeroen Vermeulen  Snelle Magento 2 ShopsMagento 2 Seminar - Jeroen Vermeulen  Snelle Magento 2 Shops
Magento 2 Seminar - Jeroen Vermeulen Snelle Magento 2 ShopsYireo
 
Magento 2 Seminar - Christian Muench - Magerun2
Magento 2 Seminar - Christian Muench - Magerun2Magento 2 Seminar - Christian Muench - Magerun2
Magento 2 Seminar - Christian Muench - Magerun2Yireo
 
Magento 2 Seminar - Anton Kril - Magento 2 Summary
Magento 2 Seminar - Anton Kril - Magento 2 SummaryMagento 2 Seminar - Anton Kril - Magento 2 Summary
Magento 2 Seminar - Anton Kril - Magento 2 SummaryYireo
 
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarksMagento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarksYireo
 
Magento 2 Seminar - Ben Marks - Keynote
Magento 2 Seminar - Ben Marks - KeynoteMagento 2 Seminar - Ben Marks - Keynote
Magento 2 Seminar - Ben Marks - KeynoteYireo
 
Magento 2 Seminar - Community agenda
Magento 2 Seminar - Community agendaMagento 2 Seminar - Community agenda
Magento 2 Seminar - Community agendaYireo
 
Magento 2 Seminar - Jisse Reitsma - Migratie Planning
Magento 2 Seminar - Jisse Reitsma - Migratie PlanningMagento 2 Seminar - Jisse Reitsma - Migratie Planning
Magento 2 Seminar - Jisse Reitsma - Migratie PlanningYireo
 
Magento 2 Seminar - Welkom
Magento 2 Seminar - WelkomMagento 2 Seminar - Welkom
Magento 2 Seminar - WelkomYireo
 

More from Yireo (20)

Mage-OS Nederland
Mage-OS NederlandMage-OS Nederland
Mage-OS Nederland
 
Modernizing Vue Storefront 1
Modernizing Vue Storefront 1Modernizing Vue Storefront 1
Modernizing Vue Storefront 1
 
Magento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshop
Magento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshopMagento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshop
Magento 2 Seminar - Peter-Jaap Blaakmeer - VR-webshop
 
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
Magento 2 Seminar - Toon van Dooren - Varnish in Magento 2
 
Magento 2 Seminar - Andra Lungu - API in Magento 2
Magento 2 Seminar - Andra Lungu - API in Magento 2Magento 2 Seminar - Andra Lungu - API in Magento 2
Magento 2 Seminar - Andra Lungu - API in Magento 2
 
Magento 2 Seminar - Roger Keulen - Machine learning
Magento 2 Seminar - Roger Keulen - Machine learningMagento 2 Seminar - Roger Keulen - Machine learning
Magento 2 Seminar - Roger Keulen - Machine learning
 
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and VarnishMagento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
Magento 2 Seminar - Miguel Balparda - M2 with PHP 7 and Varnish
 
Magento 2 Seminar - Maarten Schuiling - The App Economy
Magento 2 Seminar - Maarten Schuiling - The App EconomyMagento 2 Seminar - Maarten Schuiling - The App Economy
Magento 2 Seminar - Maarten Schuiling - The App Economy
 
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelenMagento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
Magento 2 Seminar - Jisse Reitsma - Magento 2 techniek vertalen naar voordelen
 
Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2
Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2
Magento 2 Seminar - Sander Mangel - Van Magento 1 naar 2
 
Magento 2 Seminar - Arjen Miedema - Search Engine Optimisation
Magento 2 Seminar - Arjen Miedema - Search Engine OptimisationMagento 2 Seminar - Arjen Miedema - Search Engine Optimisation
Magento 2 Seminar - Arjen Miedema - Search Engine Optimisation
 
Magento 2 Seminar - Tjitte Folkertsma - Beaumotica
Magento 2 Seminar - Tjitte Folkertsma - BeaumoticaMagento 2 Seminar - Tjitte Folkertsma - Beaumotica
Magento 2 Seminar - Tjitte Folkertsma - Beaumotica
 
Magento 2 Seminar - Jeroen Vermeulen Snelle Magento 2 Shops
Magento 2 Seminar - Jeroen Vermeulen  Snelle Magento 2 ShopsMagento 2 Seminar - Jeroen Vermeulen  Snelle Magento 2 Shops
Magento 2 Seminar - Jeroen Vermeulen Snelle Magento 2 Shops
 
Magento 2 Seminar - Christian Muench - Magerun2
Magento 2 Seminar - Christian Muench - Magerun2Magento 2 Seminar - Christian Muench - Magerun2
Magento 2 Seminar - Christian Muench - Magerun2
 
Magento 2 Seminar - Anton Kril - Magento 2 Summary
Magento 2 Seminar - Anton Kril - Magento 2 SummaryMagento 2 Seminar - Anton Kril - Magento 2 Summary
Magento 2 Seminar - Anton Kril - Magento 2 Summary
 
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarksMagento 2 Seminar - Daniel Genis - Magento 2 benchmarks
Magento 2 Seminar - Daniel Genis - Magento 2 benchmarks
 
Magento 2 Seminar - Ben Marks - Keynote
Magento 2 Seminar - Ben Marks - KeynoteMagento 2 Seminar - Ben Marks - Keynote
Magento 2 Seminar - Ben Marks - Keynote
 
Magento 2 Seminar - Community agenda
Magento 2 Seminar - Community agendaMagento 2 Seminar - Community agenda
Magento 2 Seminar - Community agenda
 
Magento 2 Seminar - Jisse Reitsma - Migratie Planning
Magento 2 Seminar - Jisse Reitsma - Migratie PlanningMagento 2 Seminar - Jisse Reitsma - Migratie Planning
Magento 2 Seminar - Jisse Reitsma - Migratie Planning
 
Magento 2 Seminar - Welkom
Magento 2 Seminar - WelkomMagento 2 Seminar - Welkom
Magento 2 Seminar - Welkom
 

Recently uploaded

Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Product School
 
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...Product School
 
Battle of React State Managers in frontend applications
Battle of React State Managers in frontend applicationsBattle of React State Managers in frontend applications
Battle of React State Managers in frontend applicationsEvangelia Mitsopoulou
 
Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?MENGSAYLOEM1
 
How we think about an advisor tech stack
How we think about an advisor tech stackHow we think about an advisor tech stack
How we think about an advisor tech stackSummit
 
My sample product research idea for you!
My sample product research idea for you!My sample product research idea for you!
My sample product research idea for you!KivenRaySarsaba
 
My Journey towards Artificial Intelligence
My Journey towards Artificial IntelligenceMy Journey towards Artificial Intelligence
My Journey towards Artificial IntelligenceVijayananda Mohire
 
"AIRe - AI Reliability Engineering", Denys Vasyliev
"AIRe - AI Reliability Engineering", Denys Vasyliev"AIRe - AI Reliability Engineering", Denys Vasyliev
"AIRe - AI Reliability Engineering", Denys VasylievFwdays
 
Apex Replay Debugger and Salesforce Platform Events.pptx
Apex Replay Debugger and Salesforce Platform Events.pptxApex Replay Debugger and Salesforce Platform Events.pptx
Apex Replay Debugger and Salesforce Platform Events.pptxmohayyudin7826
 
10 things that helped me advance my career - PHP UK Conference 2024
10 things that helped me advance my career - PHP UK Conference 202410 things that helped me advance my career - PHP UK Conference 2024
10 things that helped me advance my career - PHP UK Conference 2024Thijs Feryn
 
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docxLeveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docxVotarikari Shravan
 
"Platform Engineering with Development Containers", Igor Fesenko
"Platform Engineering with Development Containers", Igor Fesenko"Platform Engineering with Development Containers", Igor Fesenko
"Platform Engineering with Development Containers", Igor FesenkoFwdays
 
"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin
"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin
"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro KozhevinFwdays
 
"Testing of Helm Charts or There and Back Again", Yura Rochniak
"Testing of Helm Charts or There and Back Again", Yura Rochniak"Testing of Helm Charts or There and Back Again", Yura Rochniak
"Testing of Helm Charts or There and Back Again", Yura RochniakFwdays
 
IT Nation Evolve event 2024 - Quarter 1
IT Nation Evolve event 2024  - Quarter 1IT Nation Evolve event 2024  - Quarter 1
IT Nation Evolve event 2024 - Quarter 1Inbay UK
 
Confoo 2024 Gettings started with OpenAI and data science
Confoo 2024 Gettings started with OpenAI and data scienceConfoo 2024 Gettings started with OpenAI and data science
Confoo 2024 Gettings started with OpenAI and data scienceSusan Ibach
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfSafe Software
 
The Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product SchoolThe Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product SchoolProduct School
 
"How we created an SRE team in Temabit as a part of FOZZY Group in conditions...
"How we created an SRE team in Temabit as a part of FOZZY Group in conditions..."How we created an SRE team in Temabit as a part of FOZZY Group in conditions...
"How we created an SRE team in Temabit as a part of FOZZY Group in conditions...Fwdays
 

Recently uploaded (20)

Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
Harnessing the Power of GenAI for Exceptional Product Outcomes by Booking.com...
 
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
Synergy in Leadership and Product Excellence: A Blueprint for Growth by CPO, ...
 
Battle of React State Managers in frontend applications
Battle of React State Managers in frontend applicationsBattle of React State Managers in frontend applications
Battle of React State Managers in frontend applications
 
In sharing we trust. Taking advantage of a diverse consortium to build a tran...
In sharing we trust. Taking advantage of a diverse consortium to build a tran...In sharing we trust. Taking advantage of a diverse consortium to build a tran...
In sharing we trust. Taking advantage of a diverse consortium to build a tran...
 
Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?Are Human-generated Demonstrations Necessary for In-context Learning?
Are Human-generated Demonstrations Necessary for In-context Learning?
 
How we think about an advisor tech stack
How we think about an advisor tech stackHow we think about an advisor tech stack
How we think about an advisor tech stack
 
My sample product research idea for you!
My sample product research idea for you!My sample product research idea for you!
My sample product research idea for you!
 
My Journey towards Artificial Intelligence
My Journey towards Artificial IntelligenceMy Journey towards Artificial Intelligence
My Journey towards Artificial Intelligence
 
"AIRe - AI Reliability Engineering", Denys Vasyliev
"AIRe - AI Reliability Engineering", Denys Vasyliev"AIRe - AI Reliability Engineering", Denys Vasyliev
"AIRe - AI Reliability Engineering", Denys Vasyliev
 
Apex Replay Debugger and Salesforce Platform Events.pptx
Apex Replay Debugger and Salesforce Platform Events.pptxApex Replay Debugger and Salesforce Platform Events.pptx
Apex Replay Debugger and Salesforce Platform Events.pptx
 
10 things that helped me advance my career - PHP UK Conference 2024
10 things that helped me advance my career - PHP UK Conference 202410 things that helped me advance my career - PHP UK Conference 2024
10 things that helped me advance my career - PHP UK Conference 2024
 
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docxLeveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
Leveraging SLF4j for Effective Logging in IBM App Connect Enterprise.docx
 
"Platform Engineering with Development Containers", Igor Fesenko
"Platform Engineering with Development Containers", Igor Fesenko"Platform Engineering with Development Containers", Igor Fesenko
"Platform Engineering with Development Containers", Igor Fesenko
 
"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin
"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin
"DevOps Practisting Platform on EKS with Karpenter autoscaling", Dmytro Kozhevin
 
"Testing of Helm Charts or There and Back Again", Yura Rochniak
"Testing of Helm Charts or There and Back Again", Yura Rochniak"Testing of Helm Charts or There and Back Again", Yura Rochniak
"Testing of Helm Charts or There and Back Again", Yura Rochniak
 
IT Nation Evolve event 2024 - Quarter 1
IT Nation Evolve event 2024  - Quarter 1IT Nation Evolve event 2024  - Quarter 1
IT Nation Evolve event 2024 - Quarter 1
 
Confoo 2024 Gettings started with OpenAI and data science
Confoo 2024 Gettings started with OpenAI and data scienceConfoo 2024 Gettings started with OpenAI and data science
Confoo 2024 Gettings started with OpenAI and data science
 
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdfIntroducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
Introducing the New FME Community Webinar - Feb 21, 2024 (2).pdf
 
The Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product SchoolThe Future of Product, by Founder & CEO, Product School
The Future of Product, by Founder & CEO, Product School
 
"How we created an SRE team in Temabit as a part of FOZZY Group in conditions...
"How we created an SRE team in Temabit as a part of FOZZY Group in conditions..."How we created an SRE team in Temabit as a part of FOZZY Group in conditions...
"How we created an SRE team in Temabit as a part of FOZZY Group in conditions...
 

Joomla! Plugin Development

  • 1. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Joomla! plugin development
  • 2. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo My name is Jisse Reitsma Developer Owner of Yireo Joomla! & Magento Extensies & development Tutorials & blogs
  • 3. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Plugins I wrote so far Language Domains Auto Login IP Demo Site Fancybox HTTP Authenticatie New Relic Piwik WebP ScriptMerge SEF Test SSL Redirection Static Content Trademark 32+ MageBridge plugins 10+ SimpleLists plugins 8+ Dynamic404 plugins
  • 4. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Book release in Autumn 2014 English About 200-300 pages Complete reference guide Available through Amazon (plus some other channels)
  • 5. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Developing plugins yourself Part I - Why a plugin? Part II - A bit of programming Part III - Hmmm, braindump Presentation online: http://slideshare.net/yireo Tweets: @yireo
  • 6. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Part 1: Why a plugin?
  • 7. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Joomla! extensions Component Modules Plugins Libraries Language files
  • 8. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Definition of a Joomla! plugin A Joomla! extension that offers functionality based on a triggered event. The Joomla! core has various core-events by default, but every Joomla! extension can trigger additional events.
  • 9. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Plugin-groups (core) Authentication Content System User Editors Editors Xtd Search Finder CAPTCHA Extension Quickicon
  • 10. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Plugin-groups (3rd party) VirtueMart [product, custom] JomSocial [community] K2 [fields] Yireo Dynamic404 Match Lookups SimpleLists Content / Link MageBridge Product Sales / Newsletter Subscriptions
  • 11. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo User-plugin events onUserLogin onUserLogout onUserAuthenticate onUserLoginFailure onUserBeforeSave / onUserAfterSave onUserBeforeDelete / onUserAfterDelete
  • 12. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo System-plugin events onAfterInitialise onAfterRoute onAfterDispatch onBeforeRender / onAfterRender onBeforeCompileHead
  • 13. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Part 2: A bit of programming
  • 14. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Reasons for a custom plugin Modifying HTML-code Tweaking document-headers Extending an user-formulier Extra authentication-type ... and a lot more
  • 15. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo System Plugin files plugins/system/example/example.php plugins/system/example/example.xml plugins/system/example/index.html administrator/languages/en-GB/en-GB.plg_system_example.ini administrator/languages/en-GB/en- GB.plg_system_example.sys.ini
  • 16. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo System Plugin files plugins/system/example/example.php plugins/system/example/example.xml plugins/system/example/index.html administrator/languages/en-GB/en-GB.plg_system_example.ini administrator/languages/en-GB/en- GB.plg_system_example.sys.ini
  • 17. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Language files (1/2) PLG_SYSTEM_EXAMPLE="System ­ Example" PLG_SYSTEM_EXAMPLE_DESC="An example System Plugin"
  • 18. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Language files (2/2) *.sys.ini = Always loaded Add plugin title + description, but not much more *.ini = Only loaded specifically When editing a plugin in backend When showing plugin in frontend ($autoLoadLanguage = true) Add all language strings you need (backend + frontend)
  • 19. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo System Plugin files plugins/system/example/example.php plugins/system/example/example.xml plugins/system/example/index.html administrator/languages/en-GB/en-GB.plg_system_example.ini administrator/languages/en-GB/en- GB.plg_system_example.sys.ini
  • 20. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo index.html
  • 21. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo System Plugin files plugins/system/example/example.php plugins/system/example/example.xml plugins/system/example/index.html administrator/languages/en-GB/en-GB.plg_system_example.ini administrator/languages/en-GB/en- GB.plg_system_example.sys.ini
  • 22. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo XML-manifest <?xml version="1.0" encoding="utf­8"?> <extension version="3.0" type="plugin" group="system">   <name>PLG_SYSTEM_EXAMPLE</name>   <description>PLG_SYSTEM_EXAMPLE_DESC</description>   <version>0.0.1</version>   <files>     <filename plugin=”example”>example.php</filename>     <filename>index.html</filename>   </files>   <languages>     <language tag=”en­GB”>en­GB.plg_system_example.ini</language>     <language tag=”en­GB”>en­GB.plg_system_example.sys.ini</language>   </languages> </extension>
  • 23. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo System Plugin files plugins/system/example/example.php plugins/system/example/example.xml plugins/system/example/index.html administrator/languages/en-GB/en-GB.plg_system_example.ini administrator/languages/en-GB/en- GB.plg_system_example.sys.ini
  • 24. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo System Plugin - basic structure <?php defined('_JEXEC') or die(); jimport( 'joomla.plugin.plugin' ); class plgSystemExample extends JPlugin { }
  • 25. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Reasons for a custom plugin Modifying HTML-code Tweaking document-headers Extending an user-formulier Extra authentication-type ... and a lot more
  • 26. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo System Plugin - hacking HTML <?php defined('_JEXEC') or die(); jimport( 'joomla.plugin.plugin' ); class plgSystemExample extends JPlugin {     public function onAfterRender()     {         $body = JResponse::getBody();         // @todo: Do something with the $body         JResponse::setBody($body);     } }
  • 27. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Reasons for a custom plugin Modifying HTML-code Tweaking document-headers Extending an user-formulier Extra authentication-type ... and a lot more
  • 28. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo System Plugin - add headers <?php defined('_JEXEC') or die(); jimport( 'joomla.plugin.plugin' ); class plgSystemExample extends JPlugin {     public function onAfterDispatch()     {         $document = JFactory::getDocument();         $document­>setGenerator('drupal');         $document­>addScriptDeclaration($script);     } }
  • 29. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Reasons for a custom plugin Modifying HTML-code Tweaking document-headers Extending an user-formulier Extra authentication-type ... and a lot more
  • 30. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Content Plugin - remove a field <?php defined('_JEXEC') or die(); jimport( 'joomla.plugin.plugin' ); class plgContentExample extends JPlugin {     public function onContentPrepareForm($form, $data)     {         $form­>removeField('name', 'profile');         return true;     } }
  • 31. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Reasons for a custom plugin Modifying HTML-code Tweaking document-headers Extending an user-formulier Extra authentication-type ... and a lot more
  • 32. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Authenticatie Plugin (1/1) <?php defined('_JEXEC') or die(); jimport( 'joomla.plugin.plugin' ); class plgAuthenticationExample extends JPlugin {   public function onUserAuthenticate($credentials, $options, &$response )   {     if ($credentials['password'] == 'joomla') {       $response­>status = JAuthentication::STATUS_SUCCESS;       $response­>error_message = '';     } else {       $response­>status = JAuthentication::STATUS_FAILURE;       $response­>error_message = JText::_('JGLOBAL_AUTH_INVALID_PASS')     }   } }
  • 33. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Reasons for a custom plugin Modifying HTML-code Tweaking document-headers Extending an user-formulier Extra authentication-type ... and a lot more
  • 34. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Part 3: Braindump
  • 35. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Calling a content-event [1/2] Scenario: Own component is offering content-object ($item) Purpose is to modify the $item title through extra plugins Use of content-event onContentContent All $item-properties can be modified through this event Dispatch event in component-view For example in views/item/view.html.php
  • 36. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Calling a content-event [2/2] JPluginHelper::importPlugin( 'content' ); $dispatcher = JDispatcher::getInstance(); $arguments = array(&$item, &$item_params, 0); $results = $dispatcher­>trigger( 'onPrepareContent', $arguments ); Note $item is a PHP reference (ampersand &). Return-variabele $results contains at most an event-status.
  • 37. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Calling your own event (1/3) Create a custom component components/com_example Create a custom plugin-group plugins/custom Create a custom plugin plugins/custom/example/example.php plugins/custom/example/example.xml plugins/custom/example/index.html
  • 38. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Calling your own event (2/3) jimport( 'joomla.plugin.plugin' ); class plgCustomExample extends JPlugin {     public function doSomething()     {         // @todo: Do something     } }
  • 39. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Calling your own event (3/3) Add this to the right place in your MVC-component: JPluginHelper::importPlugin('custom'); $dispatcher = JDispatcher::getInstance(); $arguments = null; $results = $dispatcher­>trigger( 'doSomething', $arguments );
  • 40. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Checks (1/2) Handy variables: $app = JFactory::getApplication(); $document = JFactory::getDocument(); Check whether the current application is the frontend: if(!JFactory::getApplication()­>isSite()) return false; Check whether the current output is an HTML document: if (JFactory::getDocument()­>getType() != 'html')  return false;
  • 41. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Checks (2/2) Ignore AJAX-requests: $input = JFactory::getApplication()­>input; if ($input­>getCmd('tmpl') == 'component') return false; if ($input­>getCmd('format') == 'raw') return false; if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) &&  strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) ==  'xmlhttprequest') return false;
  • 42. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Parameters in J1.5 vs J2.5 private function getParams() {   jimport('joomla.version');   $version = new JVersion();   if(version_compare($version­>RELEASE, '1.5', 'eq')) {     $plugin = JPluginHelper::getPlugin('system','example');        $params = new JParameter($plugin­>params);     return $params;   } else {     return $this­>params;   } }
  • 43. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Loading a language file - Joomla! 2.5 public function __construct(& $subject, $config) {   parent::__construct($subject, $config);   $this­>loadLanguage(); }
  • 44. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo Loading a language file - Joomla! 3.x protected $autoloadLanguage = true;
  • 45. Presentation “Joomla! Plugin Development” - http://slideshare.net/yireo Jisse Reitsma (jisse@yireo.com) - Twitter @yireo tweet @yireo