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 controlle...
Mura $cope
• Bean Factory:
• $.getBean(‘someBean’)
• $.getBean(‘user’).loadBy(username=‘Steve’)
• Mura Events:
• $.event()...
Mura $cope: Helpers
• $.siteConfig(‘themeAssetPath’)
• Outputs the path to your theme directory
• /{SiteID}/includes/theme...
Mura $cope: Helpers
• $.dspThemeInclude(‘path/to/file/cfm’)
• Dynamic CFinclude of the desired file
• <cfinclude template=...
Mura Events
• Application Flow:
• Chain of events that fire in sequence
• Each link in the chain can be intercepted to:
• ...
Event Handlers
• Front End Requests: onSiteRequestStart, on{Type}{SubType}BodyRender
• Contextual Events
• Admin Life-Cycl...
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 controlle...
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 controlle...
Quick Start
Plugins
Thursday, 15 May 14
Why Plugins?
• Update-Safe Customizations:
• Extend Mura CMS
• Add new functionality
• Distribute Code Across Sites / Inst...
Plugin Anatomy
• index.cfm*
• license.txt*
• /plugin
• /config.xml.cfm
• /plugin.cfc*
• /config.cfm*
• *Optional
Thursday,...
/plugin/config.xml.cfm
• Setup Variables (base & custom)
• Register Your Plugin’s:
• Display Objects
• Event Handlers
Thur...
/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:
• toBu...
Plugin Examples
• MuraPlugin
• MuraFW1
• Visit https://github.com/stevewithington/muracms-
integration for a list of many ...
Thanks,
You Rock.
Thursday, 15 May 14
Resources
• GetMura.com
• BlueRiver.com
• github.com/BlueRiver
• github.com/SteveWithington
• gist.github.com/SteveWithing...
Upcoming SlideShare
Loading in...5
×

Mura intergration-slides

280

Published on

Published in: Software, Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
280
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Mura intergration-slides

  1. 1. New CMS & Legacy Apps Don’t Re-Write — Integrate! Thursday, 15 May 14
  2. 2. Thursday, 15 May 14
  3. 3. Agenda • Overview of Mura CMS • Integration Options • Quick-start Plugins Thursday, 15 May 14
  4. 4. Overview of Mura CMS (demo) Thursday, 15 May 14
  5. 5. Integration Options Thursday, 15 May 14
  6. 6. What Can I Use? • Use any front-end framework you want Thursday, 15 May 14
  7. 7. What Can I Use? • Use any JavaScript framework you want Thursday, 15 May 14
  8. 8. What Can I Use? • Use any CFML framework you want Thursday, 15 May 14
  9. 9. Demo App1 : Uber Simple Thursday, 15 May 14
  10. 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. 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. 12. Mura $cope: Helpers • $.siteConfig(‘themeAssetPath’) • Outputs the path to your theme directory • /{SiteID}/includes/themes/{ThemeName} Thursday, 15 May 14
  13. 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. 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. 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
  16. 16. Demo App2 : Subfolders Thursday, 15 May 14
  17. 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
  18. 18. Demo App3 : Application.cfc Thursday, 15 May 14
  19. 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
  20. 20. Quick Start Plugins Thursday, 15 May 14
  21. 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. 22. Plugin Anatomy • index.cfm* • license.txt* • /plugin • /config.xml.cfm • /plugin.cfc* • /config.cfm* • *Optional Thursday, 15 May 14
  23. 23. /plugin/config.xml.cfm • Setup Variables (base & custom) • Register Your Plugin’s: • Display Objects • Event Handlers Thursday, 15 May 14
  24. 24. /plugin/config.xml.cfm Thursday, 15 May 14
  25. 25. Display Objects registered via config.xml.cfm Thursday, 15 May 14
  26. 26. Display Objects: .CFM Thursday, 15 May 14
  27. 27. Display Objects: .CFC Thursday, 15 May 14
  28. 28. Display Objects Thursday, 15 May 14
  29. 29. Event Handlers registered via config.xml.cfm Thursday, 15 May 14
  30. 30. eventHandler.cfc Thursday, 15 May 14
  31. 31. Admin Template • Optionally use the Mura CMS look and feel Thursday, 15 May 14
  32. 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. 33. Plugin Examples • MuraPlugin • MuraFW1 • Visit https://github.com/stevewithington/muracms- integration for a list of many more Thursday, 15 May 14
  34. 34. Thanks, You Rock. Thursday, 15 May 14
  35. 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
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×