SlideShare une entreprise Scribd logo
1  sur  33
Télécharger pour lire hors ligne
Extending Mura CMS with
Custom Plugins

    cf.Objective(ANZ) 2011
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
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 through some simple
            plugin code
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
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
Mura

   Commercial licensing
    and support available,
    should you prefer
Mura (cont…)

   Features
       Easy for front end users
        to learn and use
            Novice users / no
             knowledge of HTML
       Templates and content
        styling
Mura (cont…)

   Features
       Easily extensible
            Mura Marketplace
        Plugins         Templates


            Create you own!
        Plugins         Templates
What are Mura Plugins?

   Extend Mura with new
    functionality
   Examples from the Mura
    Marketplace include:
       eCommerce, Google
        Maps integration, Survey
        module
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
How Mura Plugins work

   Provide Display
    Objects
   These are in turn
    embedded in Mura
    pages
   Can be used across
    multiple sites
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
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
So how is it done?

   Follow a standard file / directory
    structure
   Package as a zip file
   Upload via the Mura Admin interface
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 you can create it any way you wish
   My ant build.xml is available on github
       Link will be at end of slides
Demo 2 - More advanced

   The previous example was interesting,
    but not very useful
   Let’s hook up our plugin to Mura…
   …via events
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
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
More about PluginConfig
The <settings> element

   Contains settings that the plugin
    requires to function
   Specified by the user during plugin
    install
   Accessed programatically via
    pluginConfig.getSetting(‘settingName’)
The <settings> element
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:
EventHandlers (cont)
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
An example
   See demo3/plugin/plugin.cfc
Resources

Mura – http://getmura.com

Mura Marketplace -
http://www.getmura.com/marketplace/

Grant Shepert
http://www.grantshepert.com/
Resources (cont.)

Source code for demos –
https://github.com/am2605/cfoanz-2011-mura-
plugins




   Twitter: @am2605   Email: andrew@abm.id.au
Questions?
Thank you!

Contenu connexe

Similaire à Extending mura cms with custom plugins

Balsamiq mockups tutorial
Balsamiq mockups tutorialBalsamiq mockups tutorial
Balsamiq mockups tutorialHarikaReddy115
 
Web application framework
Web application frameworkWeb application framework
Web application frameworkPankaj Chand
 
CloudStack templates with OpenVM
CloudStack templates with OpenVMCloudStack templates with OpenVM
CloudStack templates with OpenVMShapeBlue
 
Kaltura, open source video
Kaltura, open source videoKaltura, open source video
Kaltura, open source videoBart Gysens
 
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptxAnypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptxAkshata Sawant
 
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptxMuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptxSteve Clarke
 
Symfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentSymfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentifour_bhavesh
 
Chicago Code Camp 2014 TFS Care and Feeding
Chicago Code Camp 2014   TFS Care and FeedingChicago Code Camp 2014   TFS Care and Feeding
Chicago Code Camp 2014 TFS Care and FeedingAngela Dugan
 
Mulesoft Training
Mulesoft TrainingMulesoft Training
Mulesoft Trainingsaichinnu11
 
Presentation on cloud computing
Presentation on cloud computingPresentation on cloud computing
Presentation on cloud computingRahul Mallik
 
That conference tfs care and feeding
That conference   tfs care and feedingThat conference   tfs care and feeding
That conference tfs care and feedingAngela Dugan
 
NET Event - Migrating WinForm
NET Event - Migrating WinFormNET Event - Migrating WinForm
NET Event - Migrating WinFormRaffaele Garofalo
 
Content management system
Content management systemContent management system
Content management systemgiri5624
 
Adobe Flex - Foundation to Advanced (Bundle) [A-FX-103] Frameworks
Adobe Flex - Foundation to Advanced (Bundle) [A-FX-103] FrameworksAdobe Flex - Foundation to Advanced (Bundle) [A-FX-103] Frameworks
Adobe Flex - Foundation to Advanced (Bundle) [A-FX-103] FrameworksStefano Virgilli
 

Similaire à Extending mura cms with custom plugins (20)

Balsamiq mockups tutorial
Balsamiq mockups tutorialBalsamiq mockups tutorial
Balsamiq mockups tutorial
 
Web application framework
Web application frameworkWeb application framework
Web application framework
 
PureMVC
PureMVCPureMVC
PureMVC
 
CloudStack templates with OpenVM
CloudStack templates with OpenVMCloudStack templates with OpenVM
CloudStack templates with OpenVM
 
MicroForntends.pdf
MicroForntends.pdfMicroForntends.pdf
MicroForntends.pdf
 
Kaltura, open source video
Kaltura, open source videoKaltura, open source video
Kaltura, open source video
 
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptxAnypoint Tools and MuleSoft Automation (DRAFT).pptx
Anypoint Tools and MuleSoft Automation (DRAFT).pptx
 
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptxMuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
MuleSoft Meetup #9 - Anypoint Tools and MuleSoft Automation (FINAL).pptx
 
Pyramid tutorial
Pyramid tutorialPyramid tutorial
Pyramid tutorial
 
Symfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web developmentSymfony framework-An overview and usability for web development
Symfony framework-An overview and usability for web development
 
Chicago Code Camp 2014 TFS Care and Feeding
Chicago Code Camp 2014   TFS Care and FeedingChicago Code Camp 2014   TFS Care and Feeding
Chicago Code Camp 2014 TFS Care and Feeding
 
Mulesoft Training
Mulesoft TrainingMulesoft Training
Mulesoft Training
 
Presentation on cloud computing
Presentation on cloud computingPresentation on cloud computing
Presentation on cloud computing
 
That conference tfs care and feeding
That conference   tfs care and feedingThat conference   tfs care and feeding
That conference tfs care and feeding
 
NET Event - Migrating WinForm
NET Event - Migrating WinFormNET Event - Migrating WinForm
NET Event - Migrating WinForm
 
Content management system
Content management systemContent management system
Content management system
 
Drupal vs sitecore comparisons
Drupal vs sitecore comparisonsDrupal vs sitecore comparisons
Drupal vs sitecore comparisons
 
Polyglot engineering
Polyglot engineeringPolyglot engineering
Polyglot engineering
 
Applications Report
Applications ReportApplications Report
Applications Report
 
Adobe Flex - Foundation to Advanced (Bundle) [A-FX-103] Frameworks
Adobe Flex - Foundation to Advanced (Bundle) [A-FX-103] FrameworksAdobe Flex - Foundation to Advanced (Bundle) [A-FX-103] Frameworks
Adobe Flex - Foundation to Advanced (Bundle) [A-FX-103] Frameworks
 

Dernier

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Dernier (20)

Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Extending mura cms with custom plugins

  • 1. Extending Mura CMS with Custom Plugins cf.Objective(ANZ) 2011
  • 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
  • 16. A simple plugin  The simplest example contains 3 files
  • 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:
  • 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. An example  See demo3/plugin/plugin.cfc
  • 30. Resources Mura – http://getmura.com Mura Marketplace - http://www.getmura.com/marketplace/ Grant Shepert http://www.grantshepert.com/
  • 31. Resources (cont.) Source code for demos – https://github.com/am2605/cfoanz-2011-mura- plugins Twitter: @am2605 Email: andrew@abm.id.au