Your SlideShare is downloading. ×
Mura intergration-slides
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

Mura intergration-slides

243
views

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
243
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. New CMS & Legacy Apps Don’t Re-Write — Integrate! Thursday, 15 May 14
  • 2. 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
  • 5. Integration Options 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
  • 16. Demo App2 : Subfolders 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
  • 18. Demo App3 : Application.cfc 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
  • 20. Quick Start Plugins 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
  • 24. /plugin/config.xml.cfm Thursday, 15 May 14
  • 25. Display Objects registered via config.xml.cfm Thursday, 15 May 14
  • 26. Display Objects: .CFM Thursday, 15 May 14
  • 27. Display Objects: .CFC Thursday, 15 May 14
  • 28. Display Objects Thursday, 15 May 14
  • 29. Event Handlers registered via config.xml.cfm Thursday, 15 May 14
  • 30. eventHandler.cfc 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
  • 34. Thanks, You Rock. 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