Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Extending Mura CMS withCustom Plugins    cf.Objective(ANZ) 2011
About the presenter   Java developer for early part of career   Joined RISE in 2005   Developing in ColdFusion since… ...
About the audience?   Who is using a CMS?       Who is using Mura?            Who is using Mura plugins?
About the presentation   Overview of Mura    (brief)   Mura Plugins       when & why?       how?           walk throu...
About the presentation (cont.)   What you will take away:       Understanding of plugins & what they are       Starting...
Mura       Open Source Content        Management System        (CMS)       GPL, with exceptions for        plugins, them...
Mura   Commercial licensing    and support available,    should you prefer
Mura (cont…)   Features       Easy for front end users        to learn and use            Novice users / no            ...
Mura (cont…)   Features       Easily extensible            Mura Marketplace        Plugins         Templates            ...
What are Mura Plugins?   Extend Mura with new    functionality   Examples from the Mura    Marketplace include:       e...
What are Mura Plugins?   Extend Mura with new functionality   Installable, distributable package   Contains all the nec...
How Mura Plugins work   Provide Display    Objects   These are in turn    embedded in Mura    pages   Can be used acros...
When use Mura Plugins?   Plugins are only one of    numerous ways to    extend Mura   So when use them?       If planni...
Why use Mura Plugins?         Update safe         Packaged and organised         Easily distributable         Licensin...
So how is it done?   Follow a standard file / directory    structure   Package as a zip file   Upload via the Mura Admi...
A simple plugin   The simplest example contains 3 files
config.xml.cfm
dspHelloWorld.cfm
Build and install   Deployed as a zip file   I prefer to use ant from within Eclipse    to package the plugin       But...
Demo 2 - More advanced   The previous example was interesting,    but not very useful   Let’s hook up our plugin to Mura...
Introducing the Mura Scope   Provides a standard, concise syntax for    interfacing with Mura objects (and their    prope...
Introducing the Mura Scope   Provides a standard, concise syntax for    interfacing with Mura objects (and their    prope...
More about PluginConfig
The <settings> element   Contains settings that the plugin    requires to function   Specified by the user during plugin...
The <settings> element
EventHandlers   Map to Mura events, or events    announced in your plugins   Mura has an extensive event model –    more...
EventHandlers (cont)
Plugin.cfc   Allows you to run code that is needed    to properly install, update or delete a    plugin   Plugin.cfc mus...
An example   See demo3/plugin/plugin.cfc
ResourcesMura – http://getmura.comMura Marketplace -http://www.getmura.com/marketplace/Grant Sheperthttp://www.grantsheper...
Resources (cont.)Source code for demos –https://github.com/am2605/cfoanz-2011-mura-plugins   Twitter: @am2605   Email: and...
Questions?
Thank you!
Upcoming SlideShare
Loading in …5
×

Extending mura cms with custom plugins

2,458 views

Published on

Presentation from cf.Objective(ANZ) on creating plugins for Mura CMS.

Published in: Technology, Art & Photos
  • Be the first to comment

Extending mura cms with custom plugins

  1. 1. Extending Mura CMS withCustom Plugins cf.Objective(ANZ) 2011
  2. 2. About the presenter Java developer for early part of career Joined RISE in 2005 Developing in ColdFusion since… …and loving it! Twitter: @am2605 Email: andrew@abm.id.au
  3. 3. About the audience? Who is using a CMS?  Who is using Mura?  Who is using Mura plugins?
  4. 4. About the presentation Overview of Mura (brief) Mura Plugins  when & why?  how?  walk through some simple plugin code
  5. 5. About the presentation (cont.) What you will take away:  Understanding of plugins & what they are  Starting point for building your own plugins (published on github)  Development tips, techniques and pitfalls to avoid
  6. 6. Mura  Open Source Content Management System (CMS)  GPL, with exceptions for plugins, themes and bundles** See https://github.com/blueriver/MuraCMS/blob/develop/index.cfm
  7. 7. Mura Commercial licensing and support available, should you prefer
  8. 8. Mura (cont…) Features  Easy for front end users to learn and use  Novice users / no knowledge of HTML  Templates and content styling
  9. 9. Mura (cont…) Features  Easily extensible Mura Marketplace Plugins Templates Create you own! Plugins Templates
  10. 10. What are Mura Plugins? Extend Mura with new functionality Examples from the Mura Marketplace include:  eCommerce, Google Maps integration, Survey module
  11. 11. What are Mura Plugins? Extend Mura with new functionality Installable, distributable package Contains all the necessary elements to build powerful custom applications within Mura CMS
  12. 12. How Mura Plugins work Provide Display Objects These are in turn embedded in Mura pages Can be used across multiple sites
  13. 13. When use Mura Plugins? Plugins are only one of numerous ways to extend Mura So when use them?  If planning to distribute  Providing large or complex functionality
  14. 14. Why use Mura Plugins?  Update safe  Packaged and organised  Easily distributable  Licensing exception  Framework-friendly  FW/1, Model-Glue, etc.Credit: “Anatomy of a Mura Plugin” presentation – Sean Schroeder, Blue River Software
  15. 15. So how is it done? Follow a standard file / directory structure Package as a zip file Upload via the Mura Admin interface
  16. 16. A simple plugin The simplest example contains 3 files
  17. 17. config.xml.cfm
  18. 18. dspHelloWorld.cfm
  19. 19. Build and install Deployed as a zip file I prefer to use ant from within Eclipse to package the plugin  But you can create it any way you wish My ant build.xml is available on github  Link will be at end of slides
  20. 20. Demo 2 - More advanced The previous example was interesting, but not very useful Let’s hook up our plugin to Mura… …via events
  21. 21. Introducing the Mura Scope Provides a standard, concise syntax for interfacing with Mura objects (and their properties and events). Accessed as the “$” variable We’ll see an example of this shortly
  22. 22. Introducing the Mura Scope Provides a standard, concise syntax for interfacing with Mura objects (and their properties and events). In admin area  Must include plugins/config.cfm to obtain access to this When included in Mura page  Automagically available
  23. 23. More about PluginConfig
  24. 24. The <settings> element Contains settings that the plugin requires to function Specified by the user during plugin install Accessed programatically via pluginConfig.getSetting(‘settingName’)
  25. 25. The <settings> element
  26. 26. EventHandlers Map to Mura events, or events announced in your plugins Mura has an extensive event model – more info in links at end of slides Set up in config.xml.cfm:
  27. 27. EventHandlers (cont)
  28. 28. Plugin.cfc Allows you to run code that is needed to properly install, update or delete a plugin Plugin.cfc must extend mura.plugin.plugincfc
  29. 29. An example See demo3/plugin/plugin.cfc
  30. 30. ResourcesMura – http://getmura.comMura Marketplace -http://www.getmura.com/marketplace/Grant Sheperthttp://www.grantshepert.com/
  31. 31. Resources (cont.)Source code for demos –https://github.com/am2605/cfoanz-2011-mura-plugins Twitter: @am2605 Email: andrew@abm.id.au
  32. 32. Questions?
  33. 33. Thank you!

×