SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Live Content
Finding new ways to Publish



     By Christopher Imrie
     Lead Developer, Moresoda
Christopher Imrie
Lead Developer, Moresoda


• Aerospace Engineer

• Ex-freelancer

• Adobe Certified Instructor

• PHP, JS, MySQL

• CodeIgniter, ExpressionEngine

• Problem Solver
3 Ideas

                               •   Live Content

                               •   Better ? Different?




          Flexible publish page
            Client side data
             Data services
Ideas & Techniques




   • New ideas lead to new techniques
   • My techniques != your techniques
   • Not gospel, just showing whats
     possible
The aim?




     Look at ExpressionEngine as
different kind of publishing platform
Live Content
Finding new ways to publish


Flexible Publish Page
Publish Page
Publish Page



   • Easy to understand
   • Clients love it
   • Flexible
   • Extendible with Custom
     Fieldtypes
   • Could be better?
Publish Page




  Channel       Fieldgroups   Fieldtypes


  • Tedious?
  • Could be better?
  • Arcane?
What would be better?




  Channel                         Fieldtypes


  • Remove the fieldgroup concept?
  • Brandon Kelly proposed this (Aug 2010)
  • Problem persists...
The Problem




  Developer makes all the
       connections
Article / OpenDNS
Article / Next American City
WYSIWYG Editors


   • Designed as one size fits all
   • Bloat
   • HTML produced can be bag of
     hurt
   • Just awful for certain tasks
     (Blogging about code anyone?)
   • Developers love the control
A better way
Let the publisher create
fields as they need them
What would this look
       like?
Composer

  Demo
Technical Overview



   • JavaScript Fieldtype Framework
   • Powered by RequireJS
     (AMD, load on demand)
   • Many fields work without
     modification
   • A fieldtype can be a single JS file
Front end control
         Article Page

 Title


     WYSWYG
                        • “Linear” story allows layout
                          control
         Gallery        • Each “block” can be targeted
                          with CSS

     WYSWYG             • RSS + Atom feeds still work



         Image
Open Source




               Github
              Coming Soon...
Live Content
Finding new ways to publish


Client Side Data
Data




   • Store thousands of entries
   • Channels, Categories & Status
   • Extensible suite of template tags
Data




       What about client side data?
Client Side Data



    Control Panel                 Templates
 1. AJAX request to custom   1. AJAX request to custom JS/XML
    module method               template

 2. Parse AJAX request       2. Channel Entries Tag

 3. Query DB
                             Not flexible enough
 4. EE->output->             No query strings
    send_ajax_response()
Channel Entries API




   • PHP
   • Create, Update, Delete...
   • No Read API (!)
EE JavaScript API


    • Why doesn’t it exist?
    • Fieldtypes tricky
    • What about:
        • Channels
        • Categories
        • Entry meta data
        • Site preferences
    • Standardised & predictable
EE JavaScript API




     What would this look
            like?
EEJS

Demo
EEJS Overview


   • JavaScript Utility
   • Async (jQuery Deferreds)
   • Methods for:
       • Accessing Configuration
       • Building URLs (Templates, Actions,
         CP etc)
       • Channels and Channel Entries
   • Works in CP & Templates
EEJS in Templates




   • Works outside the Control Panel
   • Integrates with Web Apps
   • Makes your life easier
Open Source




              Github
         github.com/ckimrie/eejs
Live Content
Finding new ways to publish


Data Services
Data Services



   • EEJS makes working with data
     easy
   • CP & Templates
   • What about off-site?
   • APIs
   • Mobile Apps
Data Services




   • No standard external API
   • Custom APIs possible with
     templates
   • Tedious
Data Services




   Like EEJS, standardised data can
          be made available
Considerations




   • REST
   • CodeIgniter, not ExpressionEngine
   • Performance                EE Sessions,
                                template tracking,
                                template parsing,

   • Output format              are not needed !
Data Services




     What would this look
            like?
Data API

  Demo
Data API Overview



   • CodeIgniter Application
   • No installation
   • Uses EE configuration
   • Cacheable
   • Separate App = Customisable
Open Source




                Github
       github.com/ckimrie/ee-data-api
So you’ve seen...




                 3 Ideas
     that make ExpressionEngine a different
           kind of publishing platform
3 Ideas




          Flexible Publishing
           Client Side Data
            Data Services
Thank You


@chrisimrie

github.com/ckimrie

chris@moresoda.co.uk

Weitere ähnliche Inhalte

Was ist angesagt?

Syllabus for Technical courses
Syllabus for Technical coursesSyllabus for Technical courses
Syllabus for Technical courses
Montek1Learning
 
Sr_Lead_QA_April_2016
Sr_Lead_QA_April_2016Sr_Lead_QA_April_2016
Sr_Lead_QA_April_2016
Nick Yefimov
 
3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k
IBM
 
jimnresumesse
jimnresumessejimnresumesse
jimnresumesse
Jim Nye
 

Was ist angesagt? (20)

API Docs Made Right / RAML - Swagger rant
API Docs Made Right / RAML - Swagger rantAPI Docs Made Right / RAML - Swagger rant
API Docs Made Right / RAML - Swagger rant
 
Past, Present and Future of APIs of Mobile and Web Apps
Past, Present and Future of APIs of Mobile and Web AppsPast, Present and Future of APIs of Mobile and Web Apps
Past, Present and Future of APIs of Mobile and Web Apps
 
Sakeesoft
Sakeesoft Sakeesoft
Sakeesoft
 
Resume2015-V1
Resume2015-V1Resume2015-V1
Resume2015-V1
 
Syllabus for Technical courses
Syllabus for Technical coursesSyllabus for Technical courses
Syllabus for Technical courses
 
Sr_Lead_QA_April_2016
Sr_Lead_QA_April_2016Sr_Lead_QA_April_2016
Sr_Lead_QA_April_2016
 
The API Facade Pattern: People - Episode 4
The API Facade Pattern: People - Episode 4The API Facade Pattern: People - Episode 4
The API Facade Pattern: People - Episode 4
 
Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules Extending Titanium with native iOS and Android modules
Extending Titanium with native iOS and Android modules
 
Soa204 Kawasaki Final
Soa204 Kawasaki FinalSoa204 Kawasaki Final
Soa204 Kawasaki Final
 
3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k3 rad extensibility-srilakshmi_s_rajesh_k
3 rad extensibility-srilakshmi_s_rajesh_k
 
jimnresumesse
jimnresumessejimnresumesse
jimnresumesse
 
RESTful Web APIs – Mike Amundsen, Principal API Architect, Layer 7
RESTful Web APIs – Mike Amundsen, Principal API Architect, Layer 7RESTful Web APIs – Mike Amundsen, Principal API Architect, Layer 7
RESTful Web APIs – Mike Amundsen, Principal API Architect, Layer 7
 
Javascript handbook
Javascript handbook Javascript handbook
Javascript handbook
 
Web Apps atop a Content Repository
Web Apps atop a Content RepositoryWeb Apps atop a Content Repository
Web Apps atop a Content Repository
 
Extending Appcelerator Titanium Mobile through Native Modules
Extending Appcelerator Titanium Mobile through Native ModulesExtending Appcelerator Titanium Mobile through Native Modules
Extending Appcelerator Titanium Mobile through Native Modules
 
Java keynote preso
Java keynote presoJava keynote preso
Java keynote preso
 
Introduction to Module Development with Appcelerator Titanium
Introduction to Module Development with Appcelerator TitaniumIntroduction to Module Development with Appcelerator Titanium
Introduction to Module Development with Appcelerator Titanium
 
Picking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use CasePicking the Right Node.js Framework for Your Use Case
Picking the Right Node.js Framework for Your Use Case
 
Kamala_latest_CV
Kamala_latest_CVKamala_latest_CV
Kamala_latest_CV
 
Triangle Node Meetup : APIs in Minutes with Node.js
Triangle Node Meetup :  APIs in Minutes with Node.jsTriangle Node Meetup :  APIs in Minutes with Node.js
Triangle Node Meetup : APIs in Minutes with Node.js
 

Ähnlich wie Live Content: Finding new ways to publish

U of A Web Strategy and Sitecore
U of A Web Strategy and SitecoreU of A Web Strategy and Sitecore
U of A Web Strategy and Sitecore
Tim Schneider
 
The things we found in your website
The things we found in your websiteThe things we found in your website
The things we found in your website
hernanibf
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your Website
Acquia
 
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Gabriel Villa
 
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Jeremy Likness
 

Ähnlich wie Live Content: Finding new ways to publish (20)

Xamarin.Forms Bootcamp
Xamarin.Forms BootcampXamarin.Forms Bootcamp
Xamarin.Forms Bootcamp
 
Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?Custom Development in SharePoint – What are my options now?
Custom Development in SharePoint – What are my options now?
 
U of A Web Strategy and Sitecore
U of A Web Strategy and SitecoreU of A Web Strategy and Sitecore
U of A Web Strategy and Sitecore
 
Sp biz conf - using office graph api
Sp biz conf - using office graph apiSp biz conf - using office graph api
Sp biz conf - using office graph api
 
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and AngularEscaping the yellow bubble - rewriting Domino using MongoDb and Angular
Escaping the yellow bubble - rewriting Domino using MongoDb and Angular
 
O365: Attack of the Clones
O365: Attack of the ClonesO365: Attack of the Clones
O365: Attack of the Clones
 
The things we found in your website
The things we found in your websiteThe things we found in your website
The things we found in your website
 
5 Common Mistakes You are Making on your Website
 5 Common Mistakes You are Making on your Website 5 Common Mistakes You are Making on your Website
5 Common Mistakes You are Making on your Website
 
Bayt training
Bayt trainingBayt training
Bayt training
 
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
Develop a Quick and Dirty Web interface to your database: for the DBA and oth...
 
Zero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApExZero to Sixty with Oracle ApEx
Zero to Sixty with Oracle ApEx
 
Web design training , Web Design Training In Kolkata
Web design training , Web Design Training In KolkataWeb design training , Web Design Training In Kolkata
Web design training , Web Design Training In Kolkata
 
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
SPS Monaco 2017 - The Lay of the Land of Client-Side Development circa 2017
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
 
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
How to JavaOne 2016 - Generate Customized Java 8 Code from Your Database [TUT...
 
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
JavaOne2016 - How to Generate Customized Java 8 Code from Your Database [TUT4...
 
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
Wintellect - Devscovery - Enterprise JavaScript Development 2 of 2
 
Add-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his DutyAdd-On Development: EE Expects that Every Developer will do his Duty
Add-On Development: EE Expects that Every Developer will do his Duty
 
presentation
presentationpresentation
presentation
 
Beyond Domino Designer
Beyond Domino DesignerBeyond Domino Designer
Beyond Domino Designer
 

Kürzlich hochgeladen

EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

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
 
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...
 
Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
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
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
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
 
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
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 

Live Content: Finding new ways to publish

  • 1. Live Content Finding new ways to Publish By Christopher Imrie Lead Developer, Moresoda
  • 2. Christopher Imrie Lead Developer, Moresoda • Aerospace Engineer • Ex-freelancer • Adobe Certified Instructor • PHP, JS, MySQL • CodeIgniter, ExpressionEngine • Problem Solver
  • 3. 3 Ideas • Live Content • Better ? Different? Flexible publish page Client side data Data services
  • 4. Ideas & Techniques • New ideas lead to new techniques • My techniques != your techniques • Not gospel, just showing whats possible
  • 5. The aim? Look at ExpressionEngine as different kind of publishing platform
  • 6. Live Content Finding new ways to publish Flexible Publish Page
  • 8. Publish Page • Easy to understand • Clients love it • Flexible • Extendible with Custom Fieldtypes • Could be better?
  • 9. Publish Page Channel Fieldgroups Fieldtypes • Tedious? • Could be better? • Arcane?
  • 10. What would be better? Channel Fieldtypes • Remove the fieldgroup concept? • Brandon Kelly proposed this (Aug 2010) • Problem persists...
  • 11. The Problem Developer makes all the connections
  • 13. Article / Next American City
  • 14. WYSIWYG Editors • Designed as one size fits all • Bloat • HTML produced can be bag of hurt • Just awful for certain tasks (Blogging about code anyone?) • Developers love the control
  • 16. Let the publisher create fields as they need them
  • 17. What would this look like?
  • 19. Technical Overview • JavaScript Fieldtype Framework • Powered by RequireJS (AMD, load on demand) • Many fields work without modification • A fieldtype can be a single JS file
  • 20. Front end control Article Page Title WYSWYG • “Linear” story allows layout control Gallery • Each “block” can be targeted with CSS WYSWYG • RSS + Atom feeds still work Image
  • 21. Open Source Github Coming Soon...
  • 22. Live Content Finding new ways to publish Client Side Data
  • 23. Data • Store thousands of entries • Channels, Categories & Status • Extensible suite of template tags
  • 24. Data What about client side data?
  • 25. Client Side Data Control Panel Templates 1. AJAX request to custom 1. AJAX request to custom JS/XML module method template 2. Parse AJAX request 2. Channel Entries Tag 3. Query DB Not flexible enough 4. EE->output-> No query strings send_ajax_response()
  • 26. Channel Entries API • PHP • Create, Update, Delete... • No Read API (!)
  • 27. EE JavaScript API • Why doesn’t it exist? • Fieldtypes tricky • What about: • Channels • Categories • Entry meta data • Site preferences • Standardised & predictable
  • 28. EE JavaScript API What would this look like?
  • 30. EEJS Overview • JavaScript Utility • Async (jQuery Deferreds) • Methods for: • Accessing Configuration • Building URLs (Templates, Actions, CP etc) • Channels and Channel Entries • Works in CP & Templates
  • 31. EEJS in Templates • Works outside the Control Panel • Integrates with Web Apps • Makes your life easier
  • 32. Open Source Github github.com/ckimrie/eejs
  • 33. Live Content Finding new ways to publish Data Services
  • 34. Data Services • EEJS makes working with data easy • CP & Templates • What about off-site? • APIs • Mobile Apps
  • 35. Data Services • No standard external API • Custom APIs possible with templates • Tedious
  • 36. Data Services Like EEJS, standardised data can be made available
  • 37. Considerations • REST • CodeIgniter, not ExpressionEngine • Performance EE Sessions, template tracking, template parsing, • Output format are not needed !
  • 38. Data Services What would this look like?
  • 39. Data API Demo
  • 40. Data API Overview • CodeIgniter Application • No installation • Uses EE configuration • Cacheable • Separate App = Customisable
  • 41. Open Source Github github.com/ckimrie/ee-data-api
  • 42. So you’ve seen... 3 Ideas that make ExpressionEngine a different kind of publishing platform
  • 43. 3 Ideas Flexible Publishing Client Side Data Data Services

Hinweis der Redaktion

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n