SlideShare uma empresa Scribd logo
1 de 48
Mura CMS Plugins with FW/1
              MuraCon - Aug 24 2011

@JasPanesar    www.Panesar.net   Jas@Panesar.Net
Today
Intro   Why Mura    Why FW/       FW/1         Sean
                                               Q/A
         Plugins      1?         Plugin       Throws
                                               ... or
          Rock?                 Quickstart   Tomatoes
5 min    10 min                  25 min       10 min



         ~50 minutes to Mura Plugin Zen
Me
• Made in Canada

• I like building + connecting stuff > inventing
  technologies

• Started SMB + Enterprise consulting in '99.

• 20 in 10 years

• Lead Software Architect / System Integrator @ Damaag

• Custom web + desktop dev for SMB & Enterprise
  products, projects across NA
ColdFusion
• Discovered ColdFusion in '98

• Custom development in retail, manufacturing,
  shipping, logistics, workflow, legal, eLearning,
  eServices, eCommerce...

• Connecting the dots: Reporting, BI, accounting
  systems, ERP, shipping systems, JIT / lean
  manufacturing, barcoding and scanning everything,
  workflow management systems

• Whatever wells "I can probably figure it out"
  has thrown me down.
The Mura + Jas
        Love Story
• First site Mura 5.1 ish before plugins

• Wondered why it was called a CMS,
  seemed like more of a platform

• The kind of platform.. Where have you
  been all my life?
Mura + Jas Date
• My "list" for a relationship:

    • Do things one way, in one place

    • Actually "reuse code"

    • Avoid the 80% of apps we build over and over

    • I just want to build business logic and solve
      problems!

    • Fusebox, Coldbox have been nice, but I wanted
      more platform with the framework
Jas is skeptical
• Jas bugs Malcolm about A/B testing

• Jas bugs Matt about something

• Jas meets the Grant

• Jas asks the Grant "how do you best do.."
  x1000

• Jas is unhappy Mura didn't exist like this in
  1999.
Poll

• How many designers? Devs?

• Years of CFML experience?

• Mura experience?

• Plugin experience? With FW/1?
Why do plugins
Make the world go
     'round?
Plugins make it
         easier*
• Plugins help every skill level.

• Plugins reduce egos to re-invent the
  wheel.

• Plugins encourage code re-use and the
  right kind of lazy programming.

• Every plugin saves time.
                             * May only be in Mura
Plugin Zen
• Installing plugins is a cinch.

• Before receiving, there must be giving.

• Before giving, there must be creating.

• Creating and sharing is caring.

• We all like being cared about.
Plugins Grow
          Ecosystems
• What kind of ecosystems?

 • Your Personal Ecosystems of apps and sites

 • Mura Ecosystems

 • ColdFusion Ecosystems

 • Designer Ecosystems (WP, etc)

 • CMS Ecosystems (Drupal, Joomla, etc.)
Plugins are a big deal
 for Mura Developers
• Avoid The Application Logic trap

• Mura Plugins actually make customization easier

• Mura is actually, easily extendible unlike other
  CMS'

• Build your custom business logic very quickly

• Build modular, reusable code

• Spend your time on more interesting work and
  solving actual problems
Plugins are a big deal
    for Designers
• Extremely quick Turn-key websites ala WP

• More output.. Less hours

• Self managed websites = happy clients

• Great to theme in, plugins are growing, easy
  to install plugins

• Developers can be found to do your custom
  coding.
Plugins are a big deal
    for Managers
• The #1 cost in software dev is Developer time

• Mura gets more done, with less effort.

• Custom Mura plugins let you connect + share
  data locked in any 3rd system

• Extend your competitive advantage into new areas

• Easier to answer the one question everyone asks..
  Where is everything at?
Why Mura Plugins?
  Plugins Develop Ecosystems by Making it Easier.




          Customers             Need it           Mura CMS
                                   all!


    Agencies        Designers              Plugins            Themes



I wish I had one I wish I had one         If we build it, they won't just
  place to get      place to do             come.. more and more are
   everything..     everything..           already here looking for it.
Plugins + Themes Grow Mura.

                  More Mura,
                  Plugins and
                  Themes




                                      Mura uptake
                                      Easier
                    Usage++
       design +




                  Community++
        More
         dev




                  Commerce++



                          Customer
                         needs grow
Everyone needs plugins,
  even that weird one.
• No plugin is too lonely, simple, or has
  code that's too ugly, especially if you use
  FW/1.  

• Put it on GitHub, and let someone else
  improve it with you.  

• If it worked for you, chances are it will
  work for someone else.
Every plugin is special
 and valuable like you.
• "I can't be the first one with this need...
  There has to be a plugin.."

• Small plugins still save big time.
 In the short + long term, do you really want to hand
 code the weather in?

• Big plugins = entire applications.
 Plugins + FW/1 let create apps inside Mura
I throw many gauntlets
     at your heads.
• Build a simple plugin and put it on
  GitHub. Let it be embarrassing. Let it be
  too simple.

• Designers: throw some ideas out for what
  you need on the Mura Forums.

• Developers: solve the next small problem
  you have with a plugin, or one on the
  Forum, or find a WP plugin ;)
Join the
    Mura is easy train.


• Build a plugin in the next.

• Not glorious. Simple. Essential. Not my
  crowning achievement in life.
So, now you want to
maybe build a plugin..
I use FW/1? Besides the fact Sean is in the room?
FW/1 is like, different.
• FW/1 is invisible.
 The most invisible MVC framework I've seen.

• FW/1 does everything, and nothing.
 Does nothing but leaves nothing undone.

• FW/1 stays out of the way.
 Doesn't aim to solve every problem I've ever had before I have it.


• FW/1 let's you do it your way.
 Roll your own user login, or use entire Mura platform in FW/1.
FW/1 fits all.
• Cowboy coding / Proof of concept.
 Faster to build a plugin than a straight script for a demo.

• Weekend/hobby projects.
 FW/1 is perfect to build and organize it as you go.

• Build entire web apps.
 Ever dream of just starting to build business logic functionality
 without caring about login/out/security...?


• Software as a Service breakfast eater.
 Between CF, Mura and FW/1, I dare you.
FW/1 + Mura,
        sitting in a tree...
• First, Mura plugins fit Mura perfectly.
 Plugins and CMS fit each other so well that I haven't
 found in any other CMS.

• Mura and FW/1 may be a perfect marriage.

• Effortless.
 Mura handles app logic. FW/1 keeps your business
 logic organized.

• How can you start solving your problems today?
Mura Plugin
QuickStart!
So quick I'll do it hands free.
How Mura plugins work.
• Plugins are installed globally.
  All sites can be given access to it in
  Site Settings > Global Settings > Plugins Tab

• Plugins have display objects.
  Display objects are a plugins’ views that embed in a page.
  FW/1 manages these views very well.

• Display objects are embedded in a Mura page
  under Content Objects.
  That's all.

• Thanks Grant, Steve and Sean.
Layers of
FW/1 Plugin File Structure
        • Config Layer
         We need to edit/set these
         up before starting.

        • Sub-systems
         Easily seperate admin screens
         from public/end-user screens.
Mura FW/1 folders
   • /assets store your
     Plugins Assets, css, Etc.

   • /model created manually
     to store ORM or DAL.
    -  Admin pages rendering inside Mura
    Admin
    - Public Subsystem pages rendering in CMS
    pages for end-user
Mura FW/1 structure
    • FW/1 Subsystems separate
      Client + Admin Logic

    • Mura Plugin has Admin +
      Public subsystems as default.
     -  Admin pages rendering inside Mura Admin
     - Public Subsystem pages rendering in CMS pages
     for end-user


    • Access Mura scope inside
      plugin via rc.$
Step 1: Download.
• Download the latest FW/1 base
  plugin from Marketplace

• http://bit.ly/mura-fw1-plugin

• Mura FW/1 Plugin is an *almost*
  ready-to-upload ZIP file

 • ... with a tiny bit of config ..

  ..we pre-package the plugin for
  development
Step 2a: Configure.

• Before we begin... Name the plugin

 • We need a display App name
   App Name: “MuraCon Plugin”


 • We need a unique package name
   Pkg Name: “MuraConPlugin” (Unique, no spaces)
Step 2b: Configure.
• Setup the plugin with a unique app name + unique
  package name
  App Name: “MuraCon Plugin” Pkg Name: “MuraConPlugin”



 •    /plugin/config.xml.cfm
     •   Plugin Name

     •   Package Name

     •   Unique Version #

 •    /fw1config.cfm
     •   UNIQUE Package Name - this will feed
         ?PackageNameAction=subsystem:cfcName.FunctionName

     •   set framework.reloadApplicationOnEveryRequest = true;

• Zip the folder up into an archive to load into your Mura
  install.
Step 2: Configure.
Step 3: Upload
• Upload your updated plugin file into
  Mura via Mura Admin > Global Settings >
  Plugins

• We are almost ready to start coding a
  plugin!
Step 3: Upload.
Step 4: Develop.

• Let’s build an Admin feature

• New admin subsystem action called
  users.list to list all users in the system
Step 4. Before we begin..
                 FW/1 MVC Refresh
 • If your plugin URL is
   ?PackageNameaction=public:main.home ..
   FW/1 will call in this order:

 • First the code in a function called home() located in
   {Mura Dir}/{plugin dir}/public/controllers/main.cfc

 • Second your view (output to screen) in
   {Mura Dir}/plugin dir}/public/views/main/home.cfm

 • *** Move information between controller
   and view through the request context (rc)

 • bit.ly/fw1cheatsheet
Step 4. Before we begin..
                    Datasources
 • Prefix all field + table names
  (“mcp_”)


 • No matter how, prefix custom tables
  ie.. “mcp_” for muraConPlugin

    • Mura Datasource

    • Seperate Datasource

    • ORM
Step 4: Develop.
Step 4: Develop

• Let’s build an public feature

• New public subsystem action called
  users.list to list all users in the system
Step 4: Public Dev
Step 4b: Forms..!
Step 5: Package it.
• Download your completed plugin as a zip file

• SCM is possible with Mura / Plugins too..
Step 7: Release.
• Upload your plugin to GitHub and Mura
  Plugin Marketplace


• Seriously.
Step 8: Repeat.
• Betcha can't make just one.

• Need a Plugin contest.. like Twilio
Links and stuff.
• bit.ly/mura-fw1-plugin

• bit.ly/murafw1cheatsheet

• http://bit.ly/submit-fw1-plugin

• github.com
Q&A
      MuraCon - Building Plugins with FW/1
@JasPanesar  www.Panesar.net     Jas@Panesar.Net

Mais conteúdo relacionado

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

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
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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...
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
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
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Destaque

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Destaque (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

Building Mura CMS Plugins with FW/1 at MuraCon 2011

  • 1. Mura CMS Plugins with FW/1 MuraCon - Aug 24 2011 @JasPanesar www.Panesar.net Jas@Panesar.Net
  • 2. Today Intro Why Mura Why FW/ FW/1 Sean Q/A Plugins 1? Plugin Throws ... or Rock? Quickstart Tomatoes 5 min 10 min 25 min 10 min ~50 minutes to Mura Plugin Zen
  • 3. Me • Made in Canada • I like building + connecting stuff > inventing technologies • Started SMB + Enterprise consulting in '99. • 20 in 10 years • Lead Software Architect / System Integrator @ Damaag • Custom web + desktop dev for SMB & Enterprise products, projects across NA
  • 4. ColdFusion • Discovered ColdFusion in '98 • Custom development in retail, manufacturing, shipping, logistics, workflow, legal, eLearning, eServices, eCommerce... • Connecting the dots: Reporting, BI, accounting systems, ERP, shipping systems, JIT / lean manufacturing, barcoding and scanning everything, workflow management systems • Whatever wells "I can probably figure it out" has thrown me down.
  • 5. The Mura + Jas Love Story • First site Mura 5.1 ish before plugins • Wondered why it was called a CMS, seemed like more of a platform • The kind of platform.. Where have you been all my life?
  • 6. Mura + Jas Date • My "list" for a relationship: • Do things one way, in one place • Actually "reuse code" • Avoid the 80% of apps we build over and over • I just want to build business logic and solve problems! • Fusebox, Coldbox have been nice, but I wanted more platform with the framework
  • 7. Jas is skeptical • Jas bugs Malcolm about A/B testing • Jas bugs Matt about something • Jas meets the Grant • Jas asks the Grant "how do you best do.." x1000 • Jas is unhappy Mura didn't exist like this in 1999.
  • 8. Poll • How many designers? Devs? • Years of CFML experience? • Mura experience? • Plugin experience? With FW/1?
  • 9. Why do plugins Make the world go 'round?
  • 10. Plugins make it easier* • Plugins help every skill level. • Plugins reduce egos to re-invent the wheel. • Plugins encourage code re-use and the right kind of lazy programming. • Every plugin saves time. * May only be in Mura
  • 11. Plugin Zen • Installing plugins is a cinch. • Before receiving, there must be giving. • Before giving, there must be creating. • Creating and sharing is caring. • We all like being cared about.
  • 12. Plugins Grow Ecosystems • What kind of ecosystems? • Your Personal Ecosystems of apps and sites • Mura Ecosystems • ColdFusion Ecosystems • Designer Ecosystems (WP, etc) • CMS Ecosystems (Drupal, Joomla, etc.)
  • 13. Plugins are a big deal for Mura Developers • Avoid The Application Logic trap • Mura Plugins actually make customization easier • Mura is actually, easily extendible unlike other CMS' • Build your custom business logic very quickly • Build modular, reusable code • Spend your time on more interesting work and solving actual problems
  • 14. Plugins are a big deal for Designers • Extremely quick Turn-key websites ala WP • More output.. Less hours • Self managed websites = happy clients • Great to theme in, plugins are growing, easy to install plugins • Developers can be found to do your custom coding.
  • 15. Plugins are a big deal for Managers • The #1 cost in software dev is Developer time • Mura gets more done, with less effort. • Custom Mura plugins let you connect + share data locked in any 3rd system • Extend your competitive advantage into new areas • Easier to answer the one question everyone asks.. Where is everything at?
  • 16. Why Mura Plugins? Plugins Develop Ecosystems by Making it Easier. Customers Need it Mura CMS all! Agencies Designers Plugins Themes I wish I had one I wish I had one If we build it, they won't just place to get place to do come.. more and more are everything.. everything.. already here looking for it.
  • 17. Plugins + Themes Grow Mura. More Mura, Plugins and Themes Mura uptake Easier Usage++ design + Community++ More dev Commerce++ Customer needs grow
  • 18. Everyone needs plugins, even that weird one. • No plugin is too lonely, simple, or has code that's too ugly, especially if you use FW/1.   • Put it on GitHub, and let someone else improve it with you.   • If it worked for you, chances are it will work for someone else.
  • 19. Every plugin is special and valuable like you. • "I can't be the first one with this need... There has to be a plugin.." • Small plugins still save big time. In the short + long term, do you really want to hand code the weather in? • Big plugins = entire applications. Plugins + FW/1 let create apps inside Mura
  • 20. I throw many gauntlets at your heads. • Build a simple plugin and put it on GitHub. Let it be embarrassing. Let it be too simple. • Designers: throw some ideas out for what you need on the Mura Forums. • Developers: solve the next small problem you have with a plugin, or one on the Forum, or find a WP plugin ;)
  • 21. Join the Mura is easy train. • Build a plugin in the next. • Not glorious. Simple. Essential. Not my crowning achievement in life.
  • 22. So, now you want to maybe build a plugin.. I use FW/1? Besides the fact Sean is in the room?
  • 23. FW/1 is like, different. • FW/1 is invisible. The most invisible MVC framework I've seen. • FW/1 does everything, and nothing. Does nothing but leaves nothing undone. • FW/1 stays out of the way. Doesn't aim to solve every problem I've ever had before I have it. • FW/1 let's you do it your way. Roll your own user login, or use entire Mura platform in FW/1.
  • 24. FW/1 fits all. • Cowboy coding / Proof of concept. Faster to build a plugin than a straight script for a demo. • Weekend/hobby projects. FW/1 is perfect to build and organize it as you go. • Build entire web apps. Ever dream of just starting to build business logic functionality without caring about login/out/security...? • Software as a Service breakfast eater. Between CF, Mura and FW/1, I dare you.
  • 25. FW/1 + Mura, sitting in a tree... • First, Mura plugins fit Mura perfectly. Plugins and CMS fit each other so well that I haven't found in any other CMS. • Mura and FW/1 may be a perfect marriage. • Effortless. Mura handles app logic. FW/1 keeps your business logic organized. • How can you start solving your problems today?
  • 26. Mura Plugin QuickStart! So quick I'll do it hands free.
  • 27. How Mura plugins work. • Plugins are installed globally. All sites can be given access to it in Site Settings > Global Settings > Plugins Tab • Plugins have display objects. Display objects are a plugins’ views that embed in a page. FW/1 manages these views very well. • Display objects are embedded in a Mura page under Content Objects. That's all. • Thanks Grant, Steve and Sean.
  • 28. Layers of FW/1 Plugin File Structure • Config Layer We need to edit/set these up before starting. • Sub-systems Easily seperate admin screens from public/end-user screens.
  • 29. Mura FW/1 folders • /assets store your Plugins Assets, css, Etc. • /model created manually to store ORM or DAL. - Admin pages rendering inside Mura Admin - Public Subsystem pages rendering in CMS pages for end-user
  • 30. Mura FW/1 structure • FW/1 Subsystems separate Client + Admin Logic • Mura Plugin has Admin + Public subsystems as default. - Admin pages rendering inside Mura Admin - Public Subsystem pages rendering in CMS pages for end-user • Access Mura scope inside plugin via rc.$
  • 31. Step 1: Download. • Download the latest FW/1 base plugin from Marketplace • http://bit.ly/mura-fw1-plugin • Mura FW/1 Plugin is an *almost* ready-to-upload ZIP file • ... with a tiny bit of config .. ..we pre-package the plugin for development
  • 32. Step 2a: Configure. • Before we begin... Name the plugin • We need a display App name App Name: “MuraCon Plugin” • We need a unique package name Pkg Name: “MuraConPlugin” (Unique, no spaces)
  • 33. Step 2b: Configure. • Setup the plugin with a unique app name + unique package name App Name: “MuraCon Plugin” Pkg Name: “MuraConPlugin” • /plugin/config.xml.cfm • Plugin Name • Package Name • Unique Version # • /fw1config.cfm • UNIQUE Package Name - this will feed ?PackageNameAction=subsystem:cfcName.FunctionName • set framework.reloadApplicationOnEveryRequest = true; • Zip the folder up into an archive to load into your Mura install.
  • 35. Step 3: Upload • Upload your updated plugin file into Mura via Mura Admin > Global Settings > Plugins • We are almost ready to start coding a plugin!
  • 37. Step 4: Develop. • Let’s build an Admin feature • New admin subsystem action called users.list to list all users in the system
  • 38. Step 4. Before we begin.. FW/1 MVC Refresh • If your plugin URL is ?PackageNameaction=public:main.home .. FW/1 will call in this order: • First the code in a function called home() located in {Mura Dir}/{plugin dir}/public/controllers/main.cfc • Second your view (output to screen) in {Mura Dir}/plugin dir}/public/views/main/home.cfm • *** Move information between controller and view through the request context (rc) • bit.ly/fw1cheatsheet
  • 39. Step 4. Before we begin.. Datasources • Prefix all field + table names (“mcp_”) • No matter how, prefix custom tables ie.. “mcp_” for muraConPlugin • Mura Datasource • Seperate Datasource • ORM
  • 41. Step 4: Develop • Let’s build an public feature • New public subsystem action called users.list to list all users in the system
  • 44. Step 5: Package it. • Download your completed plugin as a zip file • SCM is possible with Mura / Plugins too..
  • 45. Step 7: Release. • Upload your plugin to GitHub and Mura Plugin Marketplace • Seriously.
  • 46. Step 8: Repeat. • Betcha can't make just one. • Need a Plugin contest.. like Twilio
  • 47. Links and stuff. • bit.ly/mura-fw1-plugin • bit.ly/murafw1cheatsheet • http://bit.ly/submit-fw1-plugin • github.com
  • 48. Q&A MuraCon - Building Plugins with FW/1 @JasPanesar www.Panesar.net Jas@Panesar.Net