Slide 1

Slide 1 text

A N I N T R O T O

Slide 2

Slide 2 text

M Y N A M E I S P H I L I P Z A E N G L E I C O D E A N D D O B U S I N E S S I N G T H I N G $ Z A E N G L E . C O M / @ Z A E N G L E S L I D E S B Y D E R E K N E L S O N ^

Slide 3

Slide 3 text

L E T S T A L K A B O U T C R A F T C M S

Slide 4

Slide 4 text

W H A T I S C R A F T ? 41

Slide 5

Slide 5 text

Craft is a general-purpose CMS designed to do one thing really well: manage content. “ P I X E L A N D T O N I C B U I L D E R S O F C R A F T C M S

Slide 6

Slide 6 text

C R A F T I S B U I L T O N • PHP 5.3.0+ • Yii framework • Twig template engine • Developed, maintained by Pixel & Tonic and sold >

Slide 7

Slide 7 text

$299.00 C O M M E R C I A L

Slide 8

Slide 8 text

O M G O S H !

Slide 9

Slide 9 text

$299.00 C O M M E R C I A L • $100 x 3hrs = $300 • Staff support! • Case studies!! • Full time staff!!!

Slide 10

Slide 10 text

C O N S I D E R A T I O N S • Speed to deployment • Feature fit

Slide 11

Slide 11 text

Craft is like WordPress if it was stripped naked and then clothed in Advanced Custom Fields. “ M E G A N Z L O C K F R O N T - E N D D E V E L O P E R / V I G E T

Slide 12

Slide 12 text

W H Y

Slide 13

Slide 13 text

C R A F T F O R A U T H O R S • Fully responsive 
 control panel • Content preview • Drafts / change notes • Highly intuitive

Slide 14

Slide 14 text

C R A F T F O R D E S I G N E R S • Complete front-end control • Editorial content simplified • Complex content modeling • Designers can {{code}} • Pretty intuitive

Slide 15

Slide 15 text

• Twig • Documented API • Architecture
 (and lot’s of it) • Mostly intuitive • And more: localization,
 cloud asset storage, 
 user permissioning C R A F T F O R D E V E L O P E R S

Slide 16

Slide 16 text

T W I G W H A T ! ?

Slide 17

Slide 17 text

{# I’m a comment #} {{ variableName }} {% set variableName = “Phil Zaengle” %} T W I G 1 0 1

Slide 18

Slide 18 text

{{ variableName | upper }} {% for var in arrayVar %} {{ var }} {% endfor %} T W I G 1 0 2

Slide 19

Slide 19 text

{% set next = “Let’s Build” %} {% for i in 0..10 %} {{ i }} - {{ next | upper }} {% endfor %} T W I G 2 0 0

Slide 20

Slide 20 text

T i t l e B o d y C o n t e n t e n t r y . t i t l e e n t r y . b o d y L E T ’ S B U I L D A P A G E

Slide 21

Slide 21 text

N O W D O I T . / /

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

C O N T E N T D E S I G N C O N T E N T M O D E L C O D E > > >

Slide 24

Slide 24 text

Title { Content {

Slide 25

Slide 25 text

Header / Title { Body Content { Quote Block { Body Content { Code Example { Body Content { Code Example {

Slide 26

Slide 26 text

T i t l e I n t r o H e r o I m a g e E d i t o r i a l C o n t e n t - > S l i d e s h o w - > B o d y - > P u l l Q u o t e - > B l o g R e l a t i o n s h i p e n t r y . t i t l e e n t r y . i n t r o e n t r y . h e r o I m a g e e n t r y . m a t r i x - > m a t r i x . s l i d e s h o w - > m a t r i x . b o d y - > m a t r i x . q u o t e - > m a t r i x . b l o g s L E T ’ S B U I L D B L O G

Slide 27

Slide 27 text

craft.entries .section(‘blog’) .limit(10) .before(2012) .offset(2) .order(‘dateCreated desc’) C R A F T T W I G

Slide 28

Slide 28 text

{% set entries = craft.entries.section(‘blog’) %} {% for entry in entries %}

{{ entry.title }}

{% endfor %} C R A F T T W I G

Slide 29

Slide 29 text

{% paginate craft.entries.section(‘blog’) as page, entries %} {% for entry in entries %}

{{ entry.title }}

{% endfor %} C R A F T T W I G

Slide 30

Slide 30 text

N O W D O I T . / /

Slide 31

Slide 31 text

No content

Slide 32

Slide 32 text

full localization user accounts robust api growing community J U S T S T A R T I N G

Slide 33

Slide 33 text

philip@zaengle.com T H A N K S ! @zaengle

Slide 34

Slide 34 text

No content