SlideShare a Scribd company logo
1 of 62
Download to read offline
Fork CMS
  Developers!
hashtag: #forkmeetup
wifi: 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 - modules




Frontend   Backend                      API


            Library
applications - backend - frontend - api - modules




Applications
‣   1 for each purpose
‣   Clean separation between apps
‣   Possible overlap (causing overhead)
applications - backend - frontend - api - modules




Structure
‣   Core
‣   Modules (some required)
‣   Based on MVC
‣   Limited template logic
applications - backend - frontend - api - modules




Core
‣   Routing
‣   Templates
‣   Authentication
‣   Forms
‣   ...
applications - backend - frontend - api - modules




Modules
 actions
 ajax
 cronjobs (backend only)
 engine
 installer (backend only)
 js
 layout
    templates
    widgets
 widgets
applications - backend - frontend - api - modules




Library
‣    Global configuration
‣    External classes
    ‣ Google analytics

    ‣ Facebook

    ‣ Akismet

‣   Spoon Library
applications - backend - frontend - api - modules




Spoon Library
‣   PHP5 library
‣   Basic components
‣   UTF-8 support
‣   Unit tested
‣   Open source (github)
applications - backend - frontend - api - modules




Error handling
‣   SPOON_DEBUG true / false
‣   Exceptions
‣   PHP errors / warnings / ...
applications - backend - frontend - api - modules
applications - backend - frontend - api - modules




Backend
‣    Content management
‣    Authentication
    ‣ Only logged in users

‣    Module driven
    ‣ Semi clean url’s (GET)
applications - backend - frontend - api - modules




Core
‣   Router
    ‣ Loads module based on URL

    ‣ http://<site>/private/en/module/

      controller?param=value
‣   Authentication
    ‣ Action level
applications - backend - frontend - api - modules




Core
‣    Basic layout
    ‣ Datagrids

    ‣ Forms

    ‣ Tabs

    ‣ Filters
applications - backend - frontend - api - modules
applications - backend - frontend - api - modules
applications - backend - frontend - api - modules




Base classes
‣    Base for actions
‣    Less monkey jobs
    ‣ Success/error reporting

    ‣ Autoloading js/css

    ‣ Choosing template

    ‣ ...
applications - backend - frontend - api - modules




Reporting
applications - backend - frontend - api - modules




Autoloading JS / CSS
‣   <module>.js
‣   <action>.js
‣   <action>.css
applications - backend - frontend - api - modules




Specific base classes
‣    index / add / edit
‣    BackendBaseActionAdd
    ‣ create and display form

‣   BackendBaseActionIndex
    ‣ create and display datagrid

‣   All you have to do is add data
applications - backend - frontend - api - modules




Backend navigation
‣    Per module (by installer)
‣    Flexible
‣    Not limited to module context
    ‣ settings
applications - backend - frontend - api - modules




Autoloader
‣   BackendAnalyticsContent
‣   BackendAnalyticsModel
‣   BackendAnalyticsHelper
applications - backend - frontend - api - modules




Directory structure
 actions
 ajax
 cronjobs
 engine
 installer
 js
 layout
    templates
    widgets
 widgets
applications - backend - frontend - api - modules




Action
‣   Controller
‣   Interface for the user
‣   Index / add / edit / delete / ...
‣   Extends from base class(es)
‣   Navigation links to action
applications - backend - frontend - api - modules




Layout / template
‣   View
‣   Action template
‣   <action>.tpl
‣   SpoonTemplate syntax
applications - backend - frontend - api - modules




Engine
‣    Model
    ‣ Class with static methods

    ‣ Handles database interaction

‣   Helper
    ‣ Can be anything
applications - backend - frontend - api - modules




Ajax
‣   Controller
‣   Own base class
‣   Authentication
‣   Json output
applications - backend - frontend - api - modules




Cronjob
‣   Controller
‣   Own base class
‣   No authentication
‣   Collisions
‣   Command line or HTTP
applications - backend - frontend - api - modules




Installer
‣   Set rights
‣   Set navigation structure
‣   Set extra’s (create pages, ...)
‣   install.sql
‣   locale.xml
applications - backend - frontend - api - modules




Frontend
‣    The website
‣    Visitors
    ‣ Guests

    ‣ Registered visitors

‣   Page driven (http://<site>/page)
applications - backend - frontend - api - modules




Frontend
‣    2 types of controllers
    ‣ Action: 1 per page (route dependant)

    ‣ Widget: * per page

‣   Defined in pages module
‣   All about pages
applications - backend - frontend - api - modules




Pages
‣    1 page = 1 template
‣    1 template = * blocks
‣    Block
    ‣ Action

    ‣ Widget
1
Blocks in
de
template...   2



              3


              4       5

                      6
                  7
applications - backend - frontend - api - modules




Pages
applications - backend - frontend - api - modules




Core
‣    Routing
    ‣ action to execute

    ‣ widget(s) to execute

    ‣ based on the current page
applications - backend - frontend - api - modules




Minify
‣   SPOON_DEBUG = false
‣   minified.css
‣   Custom js / css = auto
applications - backend - frontend - api - modules




API
‣   XML
‣   JSON
‣   Authentication possible
‣
    /api/1.0/?
    method=<module>.<function>&param=value..
applications - backend - frontend - api - modules




API
‣   BackendBlogAPI
‣   Public functions
‣   Parameter validation
applications - backend - frontend - api - modules




Search
‣   Index pool
‣   Fields defined per module
‣   Callback per module
applications - backend - frontend - api - modules




Add to index
applications - backend - frontend - api - modules




Callback
applications - backend - frontend - api - modules




Tags
‣   Create textbox



‣   Save after validation
applications - backend - frontend - api - modules




Tags
applications - backend - frontend - api - modules




Tags
applications - backend - frontend - api - modules




Meta
‣   Again 1 pool
‣   SEO
‣   Almost every module needs it
applications - backend - frontend - api - modules
applications - backend - frontend - api - modules
applications - backend - frontend - api - modules




Meta
‣   Create form


‣   Validate


‣   Save
applications - backend - frontend - api - modules




Locale
‣   Multi language
‣   Maintainable by backend user
‣   Split between applications
applications - backend - frontend - api - modules




Locale - backend
‣   Split between modules
‣   Fallback to core
applications - backend - frontend - api - modules




Locale - frontend
‣   1 pool
Questions?
www.fork-cms.com

 info@fork-cms.com
twitter.com/fork_cms

More Related Content

Viewers also liked (8)

Fork CMS Iphone app
Fork CMS Iphone appFork CMS Iphone app
Fork CMS Iphone app
 
กุญแจประจาหลัก (Clef)
กุญแจประจาหลัก (Clef)กุญแจประจาหลัก (Clef)
กุญแจประจาหลัก (Clef)
 
Fork Overview
Fork OverviewFork Overview
Fork Overview
 
Trends voor lokale websites
Trends voor lokale websitesTrends voor lokale websites
Trends voor lokale websites
 
Fork 4 Frontenders
Fork 4 FrontendersFork 4 Frontenders
Fork 4 Frontenders
 
Fork Meetup - introduction
Fork Meetup - introductionFork Meetup - introduction
Fork Meetup - introduction
 
The middle ages
The middle agesThe middle ages
The middle ages
 
ใบความรู้ร้องเพลง
ใบความรู้ร้องเพลงใบความรู้ร้องเพลง
ใบความรู้ร้องเพลง
 

Similar to Fork 4 Developers

Movable Type 5.2 Overview at MTDDC 2012
Movable Type 5.2 Overview at MTDDC 2012Movable Type 5.2 Overview at MTDDC 2012
Movable Type 5.2 Overview at MTDDC 2012
Yuji Takayama
 
Build Database Applications for SharePoint!
Build Database Applications for SharePoint!Build Database Applications for SharePoint!
Build Database Applications for SharePoint!
Iron Speed
 
Build Database Applications for SharePoint
Build Database Applications for SharePointBuild Database Applications for SharePoint
Build Database Applications for SharePoint
Iron Speed
 

Similar to Fork 4 Developers (20)

Fork CMS
Fork CMSFork CMS
Fork CMS
 
Get your mobile app in production in 3 months: Native and Reactive Mobile Apps
Get your mobile app in production in 3 months: Native and Reactive Mobile AppsGet your mobile app in production in 3 months: Native and Reactive Mobile Apps
Get your mobile app in production in 3 months: Native and Reactive Mobile Apps
 
UI5con 2017 - UI5 Components - More Performance...
UI5con 2017 - UI5 Components - More Performance...UI5con 2017 - UI5 Components - More Performance...
UI5con 2017 - UI5 Components - More Performance...
 
Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!Frontend Monoliths: Run if you can!
Frontend Monoliths: Run if you can!
 
Vue micro frontend implementation patterns
Vue micro frontend implementation patternsVue micro frontend implementation patterns
Vue micro frontend implementation patterns
 
Testing with Codeception
Testing with CodeceptionTesting with Codeception
Testing with Codeception
 
Introduction to Palm's Mojo SDK
Introduction to Palm's Mojo SDKIntroduction to Palm's Mojo SDK
Introduction to Palm's Mojo SDK
 
using Mithril.js + postgREST to build and consume API's
using Mithril.js + postgREST to build and consume API'susing Mithril.js + postgREST to build and consume API's
using Mithril.js + postgREST to build and consume API's
 
Micro frontend
Micro frontendMicro frontend
Micro frontend
 
Movable Type 5.2 Overview at MTDDC 2012
Movable Type 5.2 Overview at MTDDC 2012Movable Type 5.2 Overview at MTDDC 2012
Movable Type 5.2 Overview at MTDDC 2012
 
Building Web Applications with Zend Framework
Building Web Applications with Zend FrameworkBuilding Web Applications with Zend Framework
Building Web Applications with Zend Framework
 
Introduction to YII framework
Introduction to YII frameworkIntroduction to YII framework
Introduction to YII framework
 
Alfresco Development Framework Basic
Alfresco Development Framework BasicAlfresco Development Framework Basic
Alfresco Development Framework Basic
 
Build Database Applications for SharePoint!
Build Database Applications for SharePoint!Build Database Applications for SharePoint!
Build Database Applications for SharePoint!
 
Build Database Applications for SharePoint
Build Database Applications for SharePointBuild Database Applications for SharePoint
Build Database Applications for SharePoint
 
High quality ap is with api platform
High quality ap is with api platformHigh quality ap is with api platform
High quality ap is with api platform
 
企业级软件的组件化和动态化开发实践
企业级软件的组件化和动态化开发实践企业级软件的组件化和动态化开发实践
企业级软件的组件化和动态化开发实践
 
Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011Plack basics for Perl websites - YAPC::EU 2011
Plack basics for Perl websites - YAPC::EU 2011
 
Continuous integration / continuous delivery
Continuous integration / continuous deliveryContinuous integration / continuous delivery
Continuous integration / continuous delivery
 
Google app-engine-with-python
Google app-engine-with-pythonGoogle app-engine-with-python
Google app-engine-with-python
 

Recently uploaded

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
giselly40
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Recently uploaded (20)

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
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
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 Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
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
 
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
 
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
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
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
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 

Fork 4 Developers