Fork CMS  Developers!
hashtag: #forkmeetupwifi: VergaderNet, wachtwoord:           ventilatie
I’m Dieter @dieterve
This is Davy@bauffman
In depth
Content‣   Applications‣   Backend‣   Frontend‣   API‣   Modules
Content‣   Applications‣   Backend‣   Frontend‣   API‣   Modules
Content‣   Applications‣   Backend‣   Frontend‣   API‣   Modules
Content‣   Applications‣   Backend‣   Frontend‣   API‣   Modules
Content‣   Applications‣   Backend‣   Frontend‣   API‣   Modules
applications - backend - frontend - api - modulesFrontend   Backend                      API            Library
applications - backend - frontend - api - modulesApplications‣   1 for each purpose‣   Clean separation between apps‣   Po...
applications - backend - frontend - api - modulesStructure‣   Core‣   Modules (some required)‣   Based on MVC‣   Limited t...
applications - backend - frontend - api - modulesCore‣   Routing‣   Templates‣   Authentication‣   Forms‣   ...
applications - backend - frontend - api - modulesModules actions ajax cronjobs (backend only) engine installer (backend on...
applications - backend - frontend - api - modulesLibrary‣    Global configuration‣    External classes    ‣ Google analytic...
applications - backend - frontend - api - modulesSpoon Library‣   PHP5 library‣   Basic components‣   UTF-8 support‣   Uni...
applications - backend - frontend - api - modulesError handling‣   SPOON_DEBUG true / false‣   Exceptions‣   PHP errors / ...
applications - backend - frontend - api - modules
applications - backend - frontend - api - modulesBackend‣    Content management‣    Authentication    ‣ Only logged in use...
applications - backend - frontend - api - modulesCore‣   Router    ‣ Loads module based on URL    ‣ http://<site>/private/...
applications - backend - frontend - api - modulesCore‣    Basic layout    ‣ Datagrids    ‣ Forms    ‣ Tabs    ‣ Filters
applications - backend - frontend - api - modules
applications - backend - frontend - api - modules
applications - backend - frontend - api - modulesBase classes‣    Base for actions‣    Less monkey jobs    ‣ Success/error...
applications - backend - frontend - api - modulesReporting
applications - backend - frontend - api - modulesAutoloading JS / CSS‣   <module>.js‣   <action>.js‣   <action>.css
applications - backend - frontend - api - modulesSpecific base classes‣    index / add / edit‣    BackendBaseActionAdd    ‣...
applications - backend - frontend - api - modulesBackend navigation‣    Per module (by installer)‣    Flexible‣    Not lim...
applications - backend - frontend - api - modulesAutoloader‣   BackendAnalyticsContent‣   BackendAnalyticsModel‣   Backend...
applications - backend - frontend - api - modulesDirectory structure actions ajax cronjobs engine installer js layout    t...
applications - backend - frontend - api - modulesAction‣   Controller‣   Interface for the user‣   Index / add / edit / de...
applications - backend - frontend - api - modulesLayout / template‣   View‣   Action template‣   <action>.tpl‣   SpoonTemp...
applications - backend - frontend - api - modulesEngine‣    Model    ‣ Class with static methods    ‣ Handles database int...
applications - backend - frontend - api - modulesAjax‣   Controller‣   Own base class‣   Authentication‣   Json output
applications - backend - frontend - api - modulesCronjob‣   Controller‣   Own base class‣   No authentication‣   Collision...
applications - backend - frontend - api - modulesInstaller‣   Set rights‣   Set navigation structure‣   Set extra’s (creat...
applications - backend - frontend - api - modulesFrontend‣    The website‣    Visitors    ‣ Guests    ‣ Registered visitor...
applications - backend - frontend - api - modulesFrontend‣    2 types of controllers    ‣ Action: 1 per page (route depend...
applications - backend - frontend - api - modulesPages‣    1 page = 1 template‣    1 template = * blocks‣    Block    ‣ Ac...
1Blocks indetemplate...   2              3              4       5                      6                  7
applications - backend - frontend - api - modulesPages
applications - backend - frontend - api - modulesCore‣    Routing    ‣ action to execute    ‣ widget(s) to execute    ‣ ba...
applications - backend - frontend - api - modulesMinify‣   SPOON_DEBUG = false‣   minified.css‣   Custom js / css = auto
applications - backend - frontend - api - modulesAPI‣   XML‣   JSON‣   Authentication possible‣    /api/1.0/?    method=<m...
applications - backend - frontend - api - modulesAPI‣   BackendBlogAPI‣   Public functions‣   Parameter validation
applications - backend - frontend - api - modulesSearch‣   Index pool‣   Fields defined per module‣   Callback per module
applications - backend - frontend - api - modulesAdd to index
applications - backend - frontend - api - modulesCallback
applications - backend - frontend - api - modulesTags‣   Create textbox‣   Save after validation
applications - backend - frontend - api - modulesTags
applications - backend - frontend - api - modulesTags
applications - backend - frontend - api - modulesMeta‣   Again 1 pool‣   SEO‣   Almost every module needs it
applications - backend - frontend - api - modules
applications - backend - frontend - api - modules
applications - backend - frontend - api - modulesMeta‣   Create form‣   Validate‣   Save
applications - backend - frontend - api - modulesLocale‣   Multi language‣   Maintainable by backend user‣   Split between...
applications - backend - frontend - api - modulesLocale - backend‣   Split between modules‣   Fallback to core
applications - backend - frontend - api - modulesLocale - frontend‣   1 pool
Questions?
www.fork-cms.com info@fork-cms.comtwitter.com/fork_cms
Fork 4 Developers
Upcoming SlideShare
Loading in...5
×

Fork 4 Developers

1,279

Published on

Over de code, structuur en API's van Fork CMS. Vooral gericht naar developers.

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

  • Be the first to like this

No Downloads
Views
Total Views
1,279
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
30
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Fork 4 Developers

  1. 1. Fork CMS Developers!
  2. 2. hashtag: #forkmeetupwifi: VergaderNet, wachtwoord: ventilatie
  3. 3. I’m Dieter @dieterve
  4. 4. This is Davy@bauffman
  5. 5. In depth
  6. 6. Content‣ Applications‣ Backend‣ Frontend‣ API‣ Modules
  7. 7. Content‣ Applications‣ Backend‣ Frontend‣ API‣ Modules
  8. 8. Content‣ Applications‣ Backend‣ Frontend‣ API‣ Modules
  9. 9. Content‣ Applications‣ Backend‣ Frontend‣ API‣ Modules
  10. 10. Content‣ Applications‣ Backend‣ Frontend‣ API‣ Modules
  11. 11. applications - backend - frontend - api - modulesFrontend Backend API Library
  12. 12. applications - backend - frontend - api - modulesApplications‣ 1 for each purpose‣ Clean separation between apps‣ Possible overlap (causing overhead)
  13. 13. applications - backend - frontend - api - modulesStructure‣ Core‣ Modules (some required)‣ Based on MVC‣ Limited template logic
  14. 14. applications - backend - frontend - api - modulesCore‣ Routing‣ Templates‣ Authentication‣ Forms‣ ...
  15. 15. applications - backend - frontend - api - modulesModules actions ajax cronjobs (backend only) engine installer (backend only) js layout templates widgets widgets
  16. 16. applications - backend - frontend - api - modulesLibrary‣ Global configuration‣ External classes ‣ Google analytics ‣ Facebook ‣ Akismet‣ Spoon Library
  17. 17. applications - backend - frontend - api - modulesSpoon Library‣ PHP5 library‣ Basic components‣ UTF-8 support‣ Unit tested‣ Open source (github)
  18. 18. applications - backend - frontend - api - modulesError handling‣ SPOON_DEBUG true / false‣ Exceptions‣ PHP errors / warnings / ...
  19. 19. applications - backend - frontend - api - modules
  20. 20. applications - backend - frontend - api - modulesBackend‣ Content management‣ Authentication ‣ Only logged in users‣ Module driven ‣ Semi clean url’s (GET)
  21. 21. applications - backend - frontend - api - modulesCore‣ Router ‣ Loads module based on URL ‣ http://<site>/private/en/module/ controller?param=value‣ Authentication ‣ Action level
  22. 22. applications - backend - frontend - api - modulesCore‣ Basic layout ‣ Datagrids ‣ Forms ‣ Tabs ‣ Filters
  23. 23. applications - backend - frontend - api - modules
  24. 24. applications - backend - frontend - api - modules
  25. 25. applications - backend - frontend - api - modulesBase classes‣ Base for actions‣ Less monkey jobs ‣ Success/error reporting ‣ Autoloading js/css ‣ Choosing template ‣ ...
  26. 26. applications - backend - frontend - api - modulesReporting
  27. 27. applications - backend - frontend - api - modulesAutoloading JS / CSS‣ <module>.js‣ <action>.js‣ <action>.css
  28. 28. applications - backend - frontend - api - modulesSpecific base classes‣ index / add / edit‣ BackendBaseActionAdd ‣ create and display form‣ BackendBaseActionIndex ‣ create and display datagrid‣ All you have to do is add data
  29. 29. applications - backend - frontend - api - modulesBackend navigation‣ Per module (by installer)‣ Flexible‣ Not limited to module context ‣ settings
  30. 30. applications - backend - frontend - api - modulesAutoloader‣ BackendAnalyticsContent‣ BackendAnalyticsModel‣ BackendAnalyticsHelper
  31. 31. applications - backend - frontend - api - modulesDirectory structure actions ajax cronjobs engine installer js layout templates widgets widgets
  32. 32. applications - backend - frontend - api - modulesAction‣ Controller‣ Interface for the user‣ Index / add / edit / delete / ...‣ Extends from base class(es)‣ Navigation links to action
  33. 33. applications - backend - frontend - api - modulesLayout / template‣ View‣ Action template‣ <action>.tpl‣ SpoonTemplate syntax
  34. 34. applications - backend - frontend - api - modulesEngine‣ Model ‣ Class with static methods ‣ Handles database interaction‣ Helper ‣ Can be anything
  35. 35. applications - backend - frontend - api - modulesAjax‣ Controller‣ Own base class‣ Authentication‣ Json output
  36. 36. applications - backend - frontend - api - modulesCronjob‣ Controller‣ Own base class‣ No authentication‣ Collisions‣ Command line or HTTP
  37. 37. applications - backend - frontend - api - modulesInstaller‣ Set rights‣ Set navigation structure‣ Set extra’s (create pages, ...)‣ install.sql‣ locale.xml
  38. 38. applications - backend - frontend - api - modulesFrontend‣ The website‣ Visitors ‣ Guests ‣ Registered visitors‣ Page driven (http://<site>/page)
  39. 39. applications - backend - frontend - api - modulesFrontend‣ 2 types of controllers ‣ Action: 1 per page (route dependant) ‣ Widget: * per page‣ Defined in pages module‣ All about pages
  40. 40. applications - backend - frontend - api - modulesPages‣ 1 page = 1 template‣ 1 template = * blocks‣ Block ‣ Action ‣ Widget
  41. 41. 1Blocks indetemplate... 2 3 4 5 6 7
  42. 42. applications - backend - frontend - api - modulesPages
  43. 43. applications - backend - frontend - api - modulesCore‣ Routing ‣ action to execute ‣ widget(s) to execute ‣ based on the current page
  44. 44. applications - backend - frontend - api - modulesMinify‣ SPOON_DEBUG = false‣ minified.css‣ Custom js / css = auto
  45. 45. applications - backend - frontend - api - modulesAPI‣ XML‣ JSON‣ Authentication possible‣ /api/1.0/? method=<module>.<function>&param=value..
  46. 46. applications - backend - frontend - api - modulesAPI‣ BackendBlogAPI‣ Public functions‣ Parameter validation
  47. 47. applications - backend - frontend - api - modulesSearch‣ Index pool‣ Fields defined per module‣ Callback per module
  48. 48. applications - backend - frontend - api - modulesAdd to index
  49. 49. applications - backend - frontend - api - modulesCallback
  50. 50. applications - backend - frontend - api - modulesTags‣ Create textbox‣ Save after validation
  51. 51. applications - backend - frontend - api - modulesTags
  52. 52. applications - backend - frontend - api - modulesTags
  53. 53. applications - backend - frontend - api - modulesMeta‣ Again 1 pool‣ SEO‣ Almost every module needs it
  54. 54. applications - backend - frontend - api - modules
  55. 55. applications - backend - frontend - api - modules
  56. 56. applications - backend - frontend - api - modulesMeta‣ Create form‣ Validate‣ Save
  57. 57. applications - backend - frontend - api - modulesLocale‣ Multi language‣ Maintainable by backend user‣ Split between applications
  58. 58. applications - backend - frontend - api - modulesLocale - backend‣ Split between modules‣ Fallback to core
  59. 59. applications - backend - frontend - api - modulesLocale - frontend‣ 1 pool
  60. 60. Questions?
  61. 61. www.fork-cms.com info@fork-cms.comtwitter.com/fork_cms
  1. A particular slide catching your eye?

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

×