SlideShare uma empresa Scribd logo
1 de 33
Baixar para ler offline
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!

Mais conteúdo relacionado

Semelhante a 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
 

Semelhante a 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
 

Último

Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelDeepika Singh
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Zilliz
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
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
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfOverkill Security
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
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
 

Último (20)

Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot ModelNavi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Navi Mumbai Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
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...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
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
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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...
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Ransomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdfRansomware_Q4_2023. The report. [EN].pdf
Ransomware_Q4_2023. The report. [EN].pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
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...
 

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