Live ContentFinding new ways to Publish     By Christopher Imrie     Lead Developer, Moresoda
Christopher ImrieLead Developer, Moresoda• Aerospace Engineer• Ex-freelancer• Adobe Certified Instructor• PHP, JS, MySQL• C...
3 Ideas                               •   Live Content                               •   Better ? Different?          Flex...
Ideas & Techniques   • New ideas lead to new techniques   • My techniques != your techniques   • Not gospel, just showing ...
The aim?     Look at ExpressionEngine asdifferent kind of publishing platform
Live ContentFinding new ways to publishFlexible Publish Page
Publish Page
Publish Page   • Easy to understand   • Clients love it   • Flexible   • Extendible with Custom     Fieldtypes   • Could b...
Publish Page  Channel       Fieldgroups   Fieldtypes  • Tedious?  • Could be better?  • Arcane?
What would be better?  Channel                         Fieldtypes  • Remove the fieldgroup concept?  • Brandon Kelly propos...
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 cer...
A better way
Let the publisher createfields 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 wo...
Front end control         Article Page Title     WYSWYG                        • “Linear” story allows layout             ...
Open Source               Github              Coming Soon...
Live ContentFinding new ways to publishClient 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  ...
Channel Entries API   • PHP   • Create, Update, Delete...   • No Read API (!)
EE JavaScript API    • Why doesn’t it exist?    • Fieldtypes tricky    • What about:        • Channels        • Categories...
EE JavaScript API     What would this look            like?
EEJSDemo
EEJS Overview   • JavaScript Utility   • Async (jQuery Deferreds)   • Methods for:       • Accessing Configuration       • ...
EEJS in Templates   • Works outside the Control Panel   • Integrates with Web Apps   • Makes your life easier
Open Source              Github         github.com/ckimrie/eejs
Live ContentFinding new ways to publishData 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,                 ...
Data Services     What would this look            like?
Data API  Demo
Data API Overview   • CodeIgniter Application   • No installation   • Uses EE configuration   • Cacheable   • Separate App ...
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@chrisimriegithub.com/ckimriechris@moresoda.co.uk
Upcoming SlideShare
Loading in …5
×

Live Content: Finding new ways to publish

1,986
-1

Published on

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

No Downloads
Views
Total Views
1,986
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
11
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Live Content: Finding new ways to publish

    1. 1. Live ContentFinding new ways to Publish By Christopher Imrie Lead Developer, Moresoda
    2. 2. Christopher ImrieLead Developer, Moresoda• Aerospace Engineer• Ex-freelancer• Adobe Certified Instructor• PHP, JS, MySQL• CodeIgniter, ExpressionEngine• Problem Solver
    3. 3. 3 Ideas • Live Content • Better ? Different? Flexible publish page Client side data Data services
    4. 4. Ideas & Techniques • New ideas lead to new techniques • My techniques != your techniques • Not gospel, just showing whats possible
    5. 5. The aim? Look at ExpressionEngine asdifferent kind of publishing platform
    6. 6. Live ContentFinding new ways to publishFlexible Publish Page
    7. 7. Publish Page
    8. 8. Publish Page • Easy to understand • Clients love it • Flexible • Extendible with Custom Fieldtypes • Could be better?
    9. 9. Publish Page Channel Fieldgroups Fieldtypes • Tedious? • Could be better? • Arcane?
    10. 10. What would be better? Channel Fieldtypes • Remove the fieldgroup concept? • Brandon Kelly proposed this (Aug 2010) • Problem persists...
    11. 11. The Problem Developer makes all the connections
    12. 12. Article / OpenDNS
    13. 13. Article / Next American City
    14. 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
    15. 15. A better way
    16. 16. Let the publisher createfields as they need them
    17. 17. What would this look like?
    18. 18. Composer Demo
    19. 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. 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. 21. Open Source Github Coming Soon...
    22. 22. Live ContentFinding new ways to publishClient Side Data
    23. 23. Data • Store thousands of entries • Channels, Categories & Status • Extensible suite of template tags
    24. 24. Data What about client side data?
    25. 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. 26. Channel Entries API • PHP • Create, Update, Delete... • No Read API (!)
    27. 27. EE JavaScript API • Why doesn’t it exist? • Fieldtypes tricky • What about: • Channels • Categories • Entry meta data • Site preferences • Standardised & predictable
    28. 28. EE JavaScript API What would this look like?
    29. 29. EEJSDemo
    30. 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. 31. EEJS in Templates • Works outside the Control Panel • Integrates with Web Apps • Makes your life easier
    32. 32. Open Source Github github.com/ckimrie/eejs
    33. 33. Live ContentFinding new ways to publishData Services
    34. 34. Data Services • EEJS makes working with data easy • CP & Templates • What about off-site? • APIs • Mobile Apps
    35. 35. Data Services • No standard external API • Custom APIs possible with templates • Tedious
    36. 36. Data Services Like EEJS, standardised data can be made available
    37. 37. Considerations • REST • CodeIgniter, not ExpressionEngine • Performance EE Sessions, template tracking, template parsing, • Output format are not needed !
    38. 38. Data Services What would this look like?
    39. 39. Data API Demo
    40. 40. Data API Overview • CodeIgniter Application • No installation • Uses EE configuration • Cacheable • Separate App = Customisable
    41. 41. Open Source Github github.com/ckimrie/ee-data-api
    42. 42. So you’ve seen... 3 Ideas that make ExpressionEngine a different kind of publishing platform
    43. 43. 3 Ideas Flexible Publishing Client Side Data Data Services
    44. 44. Thank You@chrisimriegithub.com/ckimriechris@moresoda.co.uk
    1. A particular slide catching your eye?

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

    ×