Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Craft CMS Summit 2014: Element Types & Plugin Development

Craft CMS Summit 2014: Element Types & Plugin Development

Ben Croker

June 17, 2014
Tweet

More Decks by Ben Croker

Other Decks in Technology

Transcript

  1. Element Types &
    Plugin Development
    Ben Croker • @ben_pylo • Craft CMS Summit 2014

    View Slide

  2. View Slide

  3. ExpressionEngine Add-Ons
    Craft Plugins

    View Slide

  4. Lead Developer

    View Slide

  5. Dublin (Ireland)
    !
    Vienna (Austria)

    View Slide

  6. View Slide

  7. View Slide

  8. Craft’s Architecture

    View Slide

  9. Caching • Logging • Validation • Authentication • Internationalisation

    View Slide

  10. MVC

    View Slide

  11. Controller
    Model View
    Request

    View Slide

  12. Controller
    View
    Record
    Database
    Controller Layer
    Data Layer
    Request

    View Slide

  13. Craft MVC

    View Slide

  14. Controller
    Template
    Request
    Service
    Services
    Record
    Database
    Controller Layer
    Service Layer
    Data Layer
    Router
    Request
    Routing Layer

    View Slide

  15. Controller
    Template
    Request
    Service
    Services
    Record
    Database
    Controller Layer
    Service Layer
    Data Layer
    Router
    Request
    Routing Layer

    View Slide

  16. Routing

    View Slide

  17. Resource Request
    URI contains resource trigger (“cpresources” by default)
    Action Request *
    URI contains action trigger (“actions” by default) or “action” parameter
    Element Request
    URI matches that of an element (entry, category or plugin)
    Dynamic Route
    URI matches a dynamic route in routes.php or as defined in control panel
    Template
    URI is a valid template path
    404
    URI cannot be resolved

    View Slide

  18. Plugin Development

    View Slide

  19. validator
    controllers
    elementtypes
    fieldtypes
    models
    records
    resources
    services
    templates
    variables
    ValidatorPlugin.php

    View Slide

  20. View Slide

  21. Services

    View Slide

  22. View Slide

  23. Records

    View Slide

  24. View Slide

  25. Sample Plugins

    View Slide

  26. Element Types

    View Slide

  27. View Slide

  28. View Slide

  29. app
    elementtypes
    AssetElementType.php
    CategoryElementType.php
    EntryElementType.php
    GlobalSetElementType.php
    MatrixBlockElementType.php
    TagElementType.php
    UserElementType.php

    View Slide

  30. View Slide

  31. Localisable
    Filterable
    Relatable
    Linkable

    View Slide

  32. E-Commerce

    View Slide

  33. Products & Orders = Entries
    Products = Entries; Orders = Distinct
    Products & Orders = Distinct

    View Slide

  34. Products & Orders = Native Elements

    View Slide

  35. Demo

    View Slide

  36. Unified Elemental Content Type
    Consistent User Experience

    View Slide

  37. What you knew before
    !
    Craft

    View Slide

  38. Thank You
    Ben Croker • @ben_pylo • Craft CMS Summit 2014

    View Slide