SlideShare una empresa de Scribd logo
1 de 35
Descargar para leer sin conexión
New CMS
& Legacy Apps
Don’t Re-Write — Integrate!
Thursday, 15 May 14
Thursday, 15 May 14
Agenda
• Overview of Mura CMS
• Integration Options
• Quick-start Plugins
Thursday, 15 May 14
Overview
of Mura CMS (demo)
Thursday, 15 May 14
Integration
Options
Thursday, 15 May 14
What Can I Use?
• Use any front-end framework you want
Thursday, 15 May 14
What Can I Use?
• Use any JavaScript framework you want
Thursday, 15 May 14
What Can I Use?
• Use any CFML framework you want
Thursday, 15 May 14
Demo
App1 : Uber Simple
Thursday, 15 May 14
App1 Review
• Copied application to the theme’s display_objects
directory
• Converted index.cfm into a front-end controller
• Added the application as a display object using a
code snippet
• [m]$.dspThemeInclude(‘display_objects/app1/index.cfm’)[/m]
Thursday, 15 May 14
Mura $cope
• Bean Factory:
• $.getBean(‘someBean’)
• $.getBean(‘user’).loadBy(username=‘Steve’)
• Mura Events:
• $.event(), announceEvent(‘yourEvent’)
• Sub-$copes:
• $.content(), $.currentUser(), $.globalConfig(),
$.siteConfig()
• Helpers:
• $.getContentRenderer(), $.getPlugin(), $.getImageURL(),
$.addToHTMLHeadQueue()
Thursday, 15 May 14
Mura $cope: Helpers
• $.siteConfig(‘themeAssetPath’)
• Outputs the path to your theme directory
• /{SiteID}/includes/themes/{ThemeName}
Thursday, 15 May 14
Mura $cope: Helpers
• $.dspThemeInclude(‘path/to/file/cfm’)
• Dynamic CFinclude of the desired file
• <cfinclude template=”/{SiteID}/includes/
themes/{ThemeName}/path/to/file.cfm”>
Thursday, 15 May 14
Mura Events
• Application Flow:
• Chain of events that fire in sequence
• Each link in the chain can be intercepted to:
• Provide additional OR,
• Even replace business logic
• eventHandler.cfc (Site & Theme)
Thursday, 15 May 14
Event Handlers
• Front End Requests: onSiteRequestStart, on{Type}{SubType}BodyRender
• Contextual Events
• Admin Life-Cycle Events: onGlobalRequestStart, onAdminRequestStart
• Application Events: onApplicationLoad, onGlobalError, onSiteError
• Admin Rendering Events: onContentEdit
• Content Tab Events
• Login Events
• Content Events: onBefore{Type}{SubType}Save
• Feed Events
• User Events
• Custom Events
Thursday, 15 May 14
Demo
App2 : Subfolders
Thursday, 15 May 14
App2 Review
• Copied application to the theme’s display_objects directory
• Converted index.cfm into a front-end controller
• Added a onSite404()event listener in the SITE
eventHandler.cfc
• Added the application as a display object using a code
snippet
• [m]$.dspThemeInclude(‘display_objects/app2/index.cfm’)[/m]
• Used $.addToHTMLHeadQueue() to add custom JS & CSS
to head
Thursday, 15 May 14
Demo
App3 : Application.cfc
Thursday, 15 May 14
App3 Review
• Copied application to the theme’s display_objects
directory
• Converted index.cfm into a front-end controller
• Added a custom eventHandler using the
onApplicationLoad() event in the THEME
eventHandler.cfc
• Added the application as a display object using a
code snippet
• [m]$.dspThemeInclude(‘display_objects/app3/index.cfm’)[/m]
Thursday, 15 May 14
Quick Start
Plugins
Thursday, 15 May 14
Why Plugins?
• Update-Safe Customizations:
• Extend Mura CMS
• Add new functionality
• Distribute Code Across Sites / Installs
• Custom Administrator
• Integrate Existing Applications
• GPL 2.0 License
Thursday, 15 May 14
Plugin Anatomy
• index.cfm*
• license.txt*
• /plugin
• /config.xml.cfm
• /plugin.cfc*
• /config.cfm*
• *Optional
Thursday, 15 May 14
/plugin/config.xml.cfm
• Setup Variables (base & custom)
• Register Your Plugin’s:
• Display Objects
• Event Handlers
Thursday, 15 May 14
/plugin/config.xml.cfm
Thursday, 15 May 14
Display Objects
registered via config.xml.cfm
Thursday, 15 May 14
Display Objects: .CFM
Thursday, 15 May 14
Display Objects: .CFC
Thursday, 15 May 14
Display Objects
Thursday, 15 May 14
Event Handlers
registered via config.xml.cfm
Thursday, 15 May 14
eventHandler.cfc
Thursday, 15 May 14
Admin Template
• Optionally use the Mura CMS look and feel
Thursday, 15 May 14
Advanced Options
• Configurable Display Objects
• Custom Events
• Object Relational Mapping (ORM)
• Bundle Options:
• toBundle(), fromBundle()
• CFML Frameworks:
• FW/1, Model-Glue, Fusebox, etc.
Thursday, 15 May 14
Plugin Examples
• MuraPlugin
• MuraFW1
• Visit https://github.com/stevewithington/muracms-
integration for a list of many more
Thursday, 15 May 14
Thanks,
You Rock.
Thursday, 15 May 14
Resources
• GetMura.com
• BlueRiver.com
• github.com/BlueRiver
• github.com/SteveWithington
• gist.github.com/SteveWithington
• Mura CMS Developers on Google Groups & LinkedIn
• Paid Support Plans: Short-Term & Annual
• Hosted, On-site & Online Training
Thursday, 15 May 14

Más contenido relacionado

Destacado

Cfobjective fusion reactor sponsor talk
Cfobjective fusion reactor sponsor talkCfobjective fusion reactor sponsor talk
Cfobjective fusion reactor sponsor talk
ColdFusionConference
 
Setting up your multiengine environment Apache Railo ColdFusion
Setting up your multiengine environment Apache Railo ColdFusionSetting up your multiengine environment Apache Railo ColdFusion
Setting up your multiengine environment Apache Railo ColdFusion
ColdFusionConference
 
Cf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanshipCf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanship
ColdFusionConference
 

Destacado (20)

Getting started with mobile application development
Getting started with mobile application developmentGetting started with mobile application development
Getting started with mobile application development
 
Where is cold fusion headed
Where is cold fusion headedWhere is cold fusion headed
Where is cold fusion headed
 
Git sourcecontrolpreso
Git sourcecontrolpresoGit sourcecontrolpreso
Git sourcecontrolpreso
 
Cfobjective fusion reactor sponsor talk
Cfobjective fusion reactor sponsor talkCfobjective fusion reactor sponsor talk
Cfobjective fusion reactor sponsor talk
 
Fr sponsor talk may 2015
Fr sponsor talk may 2015Fr sponsor talk may 2015
Fr sponsor talk may 2015
 
Adaptive Development in a Creative World
Adaptive Development in a Creative WorldAdaptive Development in a Creative World
Adaptive Development in a Creative World
 
Our application got popular and now it breaks
Our application got popular and now it breaksOur application got popular and now it breaks
Our application got popular and now it breaks
 
Multiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mqMultiply like rabbits with rabbit mq
Multiply like rabbits with rabbit mq
 
Monitoring CF What are my options? Why Should I?
Monitoring CF What are my options? Why Should I?Monitoring CF What are my options? Why Should I?
Monitoring CF What are my options? Why Should I?
 
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember DataIn The Trenches With Tomster, Upgrading Ember.js & Ember Data
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
 
PostCSS: A dumb name for an awesome thing
PostCSS: A dumb name for an awesome thingPostCSS: A dumb name for an awesome thing
PostCSS: A dumb name for an awesome thing
 
Intro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio CodeIntro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio Code
 
Locking Down CF Servers
Locking Down CF ServersLocking Down CF Servers
Locking Down CF Servers
 
Setting up your multiengine environment Apache Railo ColdFusion
Setting up your multiengine environment Apache Railo ColdFusionSetting up your multiengine environment Apache Railo ColdFusion
Setting up your multiengine environment Apache Railo ColdFusion
 
ColdFusion in Transit action
ColdFusion in Transit actionColdFusion in Transit action
ColdFusion in Transit action
 
Accelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using CachingAccelerate your ColdFusion Applications using Caching
Accelerate your ColdFusion Applications using Caching
 
Web hackingtools 2015
Web hackingtools 2015Web hackingtools 2015
Web hackingtools 2015
 
Java scriptconfusingbits
Java scriptconfusingbitsJava scriptconfusingbits
Java scriptconfusingbits
 
Understanding bdd and tdd with lego
Understanding bdd and tdd with legoUnderstanding bdd and tdd with lego
Understanding bdd and tdd with lego
 
Cf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanshipCf objective2014 software-craftsmanship
Cf objective2014 software-craftsmanship
 

Similar a Mura intergration-slides

Similar a Mura intergration-slides (20)

High ROI Testing in Angular.pptx
High ROI Testing in Angular.pptxHigh ROI Testing in Angular.pptx
High ROI Testing in Angular.pptx
 
Wireless Wednesdays: Beyond the Basics - Enhance your Enterprise Mobile Appli...
Wireless Wednesdays: Beyond the Basics - Enhance your Enterprise Mobile Appli...Wireless Wednesdays: Beyond the Basics - Enhance your Enterprise Mobile Appli...
Wireless Wednesdays: Beyond the Basics - Enhance your Enterprise Mobile Appli...
 
Diving Into Xamarin.Forms
Diving Into Xamarin.Forms Diving Into Xamarin.Forms
Diving Into Xamarin.Forms
 
Ember addons, served three ways
Ember addons, served three waysEmber addons, served three ways
Ember addons, served three ways
 
Webinar - Building Custom Extensions With AppDynamics
Webinar - Building Custom Extensions With AppDynamicsWebinar - Building Custom Extensions With AppDynamics
Webinar - Building Custom Extensions With AppDynamics
 
Angular 7 Firebase5 CRUD Operations with Reactive Forms
Angular 7 Firebase5 CRUD Operations with Reactive FormsAngular 7 Firebase5 CRUD Operations with Reactive Forms
Angular 7 Firebase5 CRUD Operations with Reactive Forms
 
Data/Applications Visualization and Mashup
Data/Applications Visualization and MashupData/Applications Visualization and Mashup
Data/Applications Visualization and Mashup
 
SaaS + CMS: Tricode's Technical Roadtrip
SaaS + CMS: Tricode's Technical RoadtripSaaS + CMS: Tricode's Technical Roadtrip
SaaS + CMS: Tricode's Technical Roadtrip
 
Magnolia conference 2014: Tricode, Technical road to Tricode SAAS, powered by...
Magnolia conference 2014: Tricode, Technical road to Tricode SAAS, powered by...Magnolia conference 2014: Tricode, Technical road to Tricode SAAS, powered by...
Magnolia conference 2014: Tricode, Technical road to Tricode SAAS, powered by...
 
Build Your First SharePoint Framework Webpart
Build Your First SharePoint Framework WebpartBuild Your First SharePoint Framework Webpart
Build Your First SharePoint Framework Webpart
 
Building a mobile app connected to WordPress with WP-AppKit
Building a mobile app connected to WordPress with WP-AppKitBuilding a mobile app connected to WordPress with WP-AppKit
Building a mobile app connected to WordPress with WP-AppKit
 
Angular - Chapter 3 - Components
Angular - Chapter 3 - ComponentsAngular - Chapter 3 - Components
Angular - Chapter 3 - Components
 
T44u 2015, sample data
T44u 2015, sample dataT44u 2015, sample data
T44u 2015, sample data
 
An Overview of Angular 4
An Overview of Angular 4 An Overview of Angular 4
An Overview of Angular 4
 
Angularjs2 presentation
Angularjs2 presentationAngularjs2 presentation
Angularjs2 presentation
 
Alfresco Development Framework Basic
Alfresco Development Framework BasicAlfresco Development Framework Basic
Alfresco Development Framework Basic
 
Hydrosphere.io for ODSC: Webinar on Kubeflow
Hydrosphere.io for ODSC: Webinar on KubeflowHydrosphere.io for ODSC: Webinar on Kubeflow
Hydrosphere.io for ODSC: Webinar on Kubeflow
 
Behavioral driven development with Behat
Behavioral driven development with BehatBehavioral driven development with Behat
Behavioral driven development with Behat
 
Charla desarrollo de apps con sharepoint y office 365
Charla   desarrollo de apps con sharepoint y office 365Charla   desarrollo de apps con sharepoint y office 365
Charla desarrollo de apps con sharepoint y office 365
 
Ember - introduction
Ember - introductionEmber - introduction
Ember - introduction
 

Más de ColdFusionConference

Más de ColdFusionConference (20)

Api manager preconference
Api manager preconferenceApi manager preconference
Api manager preconference
 
Cf ppt vsr
Cf ppt vsrCf ppt vsr
Cf ppt vsr
 
Building better SQL Server Databases
Building better SQL Server DatabasesBuilding better SQL Server Databases
Building better SQL Server Databases
 
API Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIsAPI Economy, Realizing the Business Value of APIs
API Economy, Realizing the Business Value of APIs
 
Don't just pdf, Smart PDF
Don't just pdf, Smart PDFDon't just pdf, Smart PDF
Don't just pdf, Smart PDF
 
Crafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an ArchitectCrafting ColdFusion Applications like an Architect
Crafting ColdFusion Applications like an Architect
 
Security And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API ManagerSecurity And Access Control For APIS using CF API Manager
Security And Access Control For APIS using CF API Manager
 
Monetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APISMonetizing Business Models: ColdFusion and APIS
Monetizing Business Models: ColdFusion and APIS
 
Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016Become a Security Rockstar with ColdFusion 2016
Become a Security Rockstar with ColdFusion 2016
 
Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016Developer Insights for Application Upgrade to ColdFusion 2016
Developer Insights for Application Upgrade to ColdFusion 2016
 
ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995ColdFusion Keynote: Building the Agile Web Since 1995
ColdFusion Keynote: Building the Agile Web Since 1995
 
Instant ColdFusion with Vagrant
Instant ColdFusion with VagrantInstant ColdFusion with Vagrant
Instant ColdFusion with Vagrant
 
Restful services with ColdFusion
Restful services with ColdFusionRestful services with ColdFusion
Restful services with ColdFusion
 
Super Fast Application development with Mura CMS
Super Fast Application development with Mura CMSSuper Fast Application development with Mura CMS
Super Fast Application development with Mura CMS
 
Build your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and webBuild your own secure and real-time dashboard for mobile and web
Build your own secure and real-time dashboard for mobile and web
 
Why Everyone else writes bad code
Why Everyone else writes bad codeWhy Everyone else writes bad code
Why Everyone else writes bad code
 
Securing applications
Securing applicationsSecuring applications
Securing applications
 
Testing automaton
Testing automatonTesting automaton
Testing automaton
 
Rest ful tools for lazy experts
Rest ful tools for lazy expertsRest ful tools for lazy experts
Rest ful tools for lazy experts
 
Herding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandboxHerding cats managing ColdFusion servers with commandbox
Herding cats managing ColdFusion servers with commandbox
 

Último

The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Último (20)

SHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions PresentationSHRMPro HRMS Software Solutions Presentation
SHRMPro HRMS Software Solutions Presentation
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Announcing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK SoftwareAnnouncing Codolex 2.0 from GDK Software
Announcing Codolex 2.0 from GDK Software
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 

Mura intergration-slides

  • 1. New CMS & Legacy Apps Don’t Re-Write — Integrate! Thursday, 15 May 14
  • 3. Agenda • Overview of Mura CMS • Integration Options • Quick-start Plugins Thursday, 15 May 14
  • 4. Overview of Mura CMS (demo) Thursday, 15 May 14
  • 6. What Can I Use? • Use any front-end framework you want Thursday, 15 May 14
  • 7. What Can I Use? • Use any JavaScript framework you want Thursday, 15 May 14
  • 8. What Can I Use? • Use any CFML framework you want Thursday, 15 May 14
  • 9. Demo App1 : Uber Simple Thursday, 15 May 14
  • 10. App1 Review • Copied application to the theme’s display_objects directory • Converted index.cfm into a front-end controller • Added the application as a display object using a code snippet • [m]$.dspThemeInclude(‘display_objects/app1/index.cfm’)[/m] Thursday, 15 May 14
  • 11. Mura $cope • Bean Factory: • $.getBean(‘someBean’) • $.getBean(‘user’).loadBy(username=‘Steve’) • Mura Events: • $.event(), announceEvent(‘yourEvent’) • Sub-$copes: • $.content(), $.currentUser(), $.globalConfig(), $.siteConfig() • Helpers: • $.getContentRenderer(), $.getPlugin(), $.getImageURL(), $.addToHTMLHeadQueue() Thursday, 15 May 14
  • 12. Mura $cope: Helpers • $.siteConfig(‘themeAssetPath’) • Outputs the path to your theme directory • /{SiteID}/includes/themes/{ThemeName} Thursday, 15 May 14
  • 13. Mura $cope: Helpers • $.dspThemeInclude(‘path/to/file/cfm’) • Dynamic CFinclude of the desired file • <cfinclude template=”/{SiteID}/includes/ themes/{ThemeName}/path/to/file.cfm”> Thursday, 15 May 14
  • 14. Mura Events • Application Flow: • Chain of events that fire in sequence • Each link in the chain can be intercepted to: • Provide additional OR, • Even replace business logic • eventHandler.cfc (Site & Theme) Thursday, 15 May 14
  • 15. Event Handlers • Front End Requests: onSiteRequestStart, on{Type}{SubType}BodyRender • Contextual Events • Admin Life-Cycle Events: onGlobalRequestStart, onAdminRequestStart • Application Events: onApplicationLoad, onGlobalError, onSiteError • Admin Rendering Events: onContentEdit • Content Tab Events • Login Events • Content Events: onBefore{Type}{SubType}Save • Feed Events • User Events • Custom Events Thursday, 15 May 14
  • 17. App2 Review • Copied application to the theme’s display_objects directory • Converted index.cfm into a front-end controller • Added a onSite404()event listener in the SITE eventHandler.cfc • Added the application as a display object using a code snippet • [m]$.dspThemeInclude(‘display_objects/app2/index.cfm’)[/m] • Used $.addToHTMLHeadQueue() to add custom JS & CSS to head Thursday, 15 May 14
  • 19. App3 Review • Copied application to the theme’s display_objects directory • Converted index.cfm into a front-end controller • Added a custom eventHandler using the onApplicationLoad() event in the THEME eventHandler.cfc • Added the application as a display object using a code snippet • [m]$.dspThemeInclude(‘display_objects/app3/index.cfm’)[/m] Thursday, 15 May 14
  • 21. Why Plugins? • Update-Safe Customizations: • Extend Mura CMS • Add new functionality • Distribute Code Across Sites / Installs • Custom Administrator • Integrate Existing Applications • GPL 2.0 License Thursday, 15 May 14
  • 22. Plugin Anatomy • index.cfm* • license.txt* • /plugin • /config.xml.cfm • /plugin.cfc* • /config.cfm* • *Optional Thursday, 15 May 14
  • 23. /plugin/config.xml.cfm • Setup Variables (base & custom) • Register Your Plugin’s: • Display Objects • Event Handlers Thursday, 15 May 14
  • 25. Display Objects registered via config.xml.cfm Thursday, 15 May 14
  • 29. Event Handlers registered via config.xml.cfm Thursday, 15 May 14
  • 31. Admin Template • Optionally use the Mura CMS look and feel Thursday, 15 May 14
  • 32. Advanced Options • Configurable Display Objects • Custom Events • Object Relational Mapping (ORM) • Bundle Options: • toBundle(), fromBundle() • CFML Frameworks: • FW/1, Model-Glue, Fusebox, etc. Thursday, 15 May 14
  • 33. Plugin Examples • MuraPlugin • MuraFW1 • Visit https://github.com/stevewithington/muracms- integration for a list of many more Thursday, 15 May 14
  • 35. Resources • GetMura.com • BlueRiver.com • github.com/BlueRiver • github.com/SteveWithington • gist.github.com/SteveWithington • Mura CMS Developers on Google Groups & LinkedIn • Paid Support Plans: Short-Term & Annual • Hosted, On-site & Online Training Thursday, 15 May 14