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. About the audience?
Who is using a CMS?
Who is using Mura?
Who is using Mura plugins?
4. About the presentation
Overview of Mura
(brief)
Mura Plugins
when & why?
how?
walk through some simple
plugin code
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. 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. Mura
Commercial licensing
and support available,
should you prefer
8. Mura (cont…)
Features
Easy for front end users
to learn and use
Novice users / no
knowledge of HTML
Templates and content
styling
9. Mura (cont…)
Features
Easily extensible
Mura Marketplace
Plugins Templates
Create you own!
Plugins Templates
10. What are Mura Plugins?
Extend Mura with new
functionality
Examples from the Mura
Marketplace include:
eCommerce, Google
Maps integration, Survey
module
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. How Mura Plugins work
Provide Display
Objects
These are in turn
embedded in Mura
pages
Can be used across
multiple sites
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. 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. So how is it done?
Follow a standard file / directory
structure
Package as a zip file
Upload via the Mura Admin interface
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. Demo 2 - More advanced
The previous example was interesting,
but not very useful
Let’s hook up our plugin to Mura…
…via events
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. 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
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’)
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: