[t3cb13] integrating websites with neos

69
Integrating Websites with TYPO3 Neos Dienstag, 28. Mai 13

Upload: christian-mueller

Post on 12-May-2015

580 views

Category:

Technology


2 download

DESCRIPTION

Talk about Neos website integration and TypoScript at the TYPO3 Camp Berlin 2013

TRANSCRIPT

Page 1: [T3CB13] Integrating websites with neos

Integrating Websites with TYPO3 Neos

Dienstag, 28. Mai 13

Page 2: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 3: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 4: [T3CB13] Integrating websites with neos

3 Ways to go on

Dienstag, 28. Mai 13

Page 5: [T3CB13] Integrating websites with neos

Classic Templating

3 Ways to go on

Dienstag, 28. Mai 13

Page 6: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 7: [T3CB13] Integrating websites with neos

Templavoila

3 Ways to go on

Dienstag, 28. Mai 13

Page 8: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 9: [T3CB13] Integrating websites with neos

Fluid Template

3 Ways to go on

Dienstag, 28. Mai 13

Page 10: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 11: [T3CB13] Integrating websites with neos

Write Typoscript

Dienstag, 28. Mai 13

Page 12: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 13: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 14: [T3CB13] Integrating websites with neos

Create Pages

Dienstag, 28. Mai 13

Page 15: [T3CB13] Integrating websites with neos

Add Dummy Content

Dienstag, 28. Mai 13

Page 16: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 17: [T3CB13] Integrating websites with neos

Folder Structure?

Dienstag, 28. Mai 13

Page 18: [T3CB13] Integrating websites with neos

Folder Structure?

fileadmin

templates

extension?

Dienstag, 28. Mai 13

Page 19: [T3CB13] Integrating websites with neos

TypoScript?

Dienstag, 28. Mai 13

Page 20: [T3CB13] Integrating websites with neos

TYPO3 Neos

Dienstag, 28. Mai 13

Page 21: [T3CB13] Integrating websites with neos

Installation

Dienstag, 28. Mai 13

Page 22: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 23: [T3CB13] Integrating websites with neos

Site Package

Dienstag, 28. Mai 13

Page 24: [T3CB13] Integrating websites with neos

MyCompany.MySite

Classes

Configuration

Resources

Site Package Contents

Dienstag, 28. Mai 13

Page 25: [T3CB13] Integrating websites with neos

Resources Contents

Resources

Public

Private

Dienstag, 28. Mai 13

Page 26: [T3CB13] Integrating websites with neos

Public

StyleSheets

Images

Scripts

Public Resources Contents

...

Dienstag, 28. Mai 13

Page 27: [T3CB13] Integrating websites with neos

Private

Content

Templates

TypoScripts

Private Resources Contents

Dienstag, 28. Mai 13

Page 28: [T3CB13] Integrating websites with neos

Content/Sites.xml<node type="TYPO3.Neos.NodeTypes:Page" nodeName="anotherpage" locale=""> <properties> <title>Another Page</title> </properties> <node type="TYPO3.Neos.NodeTypes:Section" nodeName="main" locale=""> <node type="TYPO3.Neos.NodeTypes:Headline" nodeName="headline1" locale=""> <properties> <title><![CDATA[<h1>Want More?</h1>]]></title> </properties> </node> <node type="TYPO3.Neos.NodeTypes:Text" nodeName="text1" locale=""> <properties> <text><![CDATA[ Some content ]]></text> </properties> </node> </node></node>

Dienstag, 28. Mai 13

Page 29: [T3CB13] Integrating websites with neos

Content Model

Dienstag, 28. Mai 13

Page 30: [T3CB13] Integrating websites with neos

Nodes

Dienstag, 28. Mai 13

Page 31: [T3CB13] Integrating websites with neos

Node structure

site root

page

content section

content element

representation of domain models

Dienstag, 28. Mai 13

Page 32: [T3CB13] Integrating websites with neos

/sites/typo3org/home/subpage/main/text1

are addressed by nodePaths

Dienstag, 28. Mai 13

Page 33: [T3CB13] Integrating websites with neos

are addressed by nodePaths

/sites/typo3org/home/subpage/main/text1

site root

Dienstag, 28. Mai 13

Page 34: [T3CB13] Integrating websites with neos

are addressed by nodePaths

/sites/typo3org/home/subpage/main/text1

pages

site root

Dienstag, 28. Mai 13

Page 35: [T3CB13] Integrating websites with neos

are addressed by nodePaths

/sites/typo3org/home/subpage/main/text1

section

pages

site root

Dienstag, 28. Mai 13

Page 36: [T3CB13] Integrating websites with neos

are addressed by nodePaths

/sites/typo3org/home/subpage/main/text1

content

section

pages

site root

Dienstag, 28. Mai 13

Page 37: [T3CB13] Integrating websites with neos

Private

Content

Templates

TypoScripts

Private Resources Contents

Dienstag, 28. Mai 13

Page 38: [T3CB13] Integrating websites with neos

Page Template

Dienstag, 28. Mai 13

Page 39: [T3CB13] Integrating websites with neos

Fluid Template

Dienstag, 28. Mai 13

Page 40: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 41: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 42: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 43: [T3CB13] Integrating websites with neos

Private

Content

Templates

TypoScripts

Private Resources Contents

Dienstag, 28. Mai 13

Page 44: [T3CB13] Integrating websites with neos

TypoScript2 Basics

Dienstag, 28. Mai 13

Page 45: [T3CB13] Integrating websites with neos

FEATURE

Consistency

Dienstag, 28. Mai 13

Page 46: [T3CB13] Integrating websites with neos

FEATURE

Extensibility

Dienstag, 28. Mai 13

Page 47: [T3CB13] Integrating websites with neos

FEATURE

Simplicicy

Dienstag, 28. Mai 13

Page 48: [T3CB13] Integrating websites with neos

TypoScript Objects• Template

• Array

• Collection

• Case

• Menu

• (Page)

Dienstag, 28. Mai 13

Page 49: [T3CB13] Integrating websites with neos

FEATURE

Flexibility

Dienstag, 28. Mai 13

Page 50: [T3CB13] Integrating websites with neos

TypoScripts Contents

TypoScripts

Library

Nodes

Dienstag, 28. Mai 13

Page 51: [T3CB13] Integrating websites with neos

TypoScripts Contents

TypoScripts

Library

Nodes

Root.ts2

Dienstag, 28. Mai 13

Page 52: [T3CB13] Integrating websites with neos

TypoScripts Contents

TypoScripts

Library

Nodes

Root.ts2

Dienstag, 28. Mai 13

Page 53: [T3CB13] Integrating websites with neos

REMINDER

site root

page

content section

content element

representation of domain models

/sites/typo3org/home/subpage

Dienstag, 28. Mai 13

Page 54: [T3CB13] Integrating websites with neos

REMINDER

site root

page

content section

content element

representation of domain models

/sites/typo3org/home/subpage

Dienstag, 28. Mai 13

Page 55: [T3CB13] Integrating websites with neos

TypoScripts Contents

TypoScripts

Library

Nodes

Root.ts2

Home Subpage.ts2

Dienstag, 28. Mai 13

Page 56: [T3CB13] Integrating websites with neos

Dienstag, 28. Mai 13

Page 57: [T3CB13] Integrating websites with neos

Prototypes

Dienstag, 28. Mai 13

Page 58: [T3CB13] Integrating websites with neos

prototype(TYPO3.Neos:MenuRenderer).implementationClassName = ↵'TYPO3\\TYPO3\\TypoScript\\MenuRenderer'

prototype(TYPO3.Neos:Section) < prototype(TYPO3.TypoScript:CollectionRenderer)prototype(TYPO3.Neos:Section) { implementationClassName = 'TYPO3\\Neos\\TypoScript\\Section' collection = ${context.children(this.getNodePath()).children()}}

Dienstag, 28. Mai 13

Page 59: [T3CB13] Integrating websites with neos

EEL?

Dienstag, 28. Mai 13

Page 60: [T3CB13] Integrating websites with neos

FlowQuery?EEL?

Dienstag, 28. Mai 13

Page 61: [T3CB13] Integrating websites with neos

Fizzle?FlowQuery?

EEL?

Dienstag, 28. Mai 13

Page 62: [T3CB13] Integrating websites with neos

Lets take it apart

${q(node).children().filter('left').first()}

Dienstag, 28. Mai 13

Page 63: [T3CB13] Integrating websites with neos

Simple Property Access

${q(node).property('text')}

Dienstag, 28. Mai 13

Page 64: [T3CB13] Integrating websites with neos

Traversal

${q(node).children('left').first()}

${q(node).children().filter('left').first()}

${q(node).parents()}

Dienstag, 28. Mai 13

Page 65: [T3CB13] Integrating websites with neos

Processors

Dienstag, 28. Mai 13

Page 66: [T3CB13] Integrating websites with neos

Processors

prototype(TYPO3.Neos.NodeTypes:TextWithImage).text << 1.wrap(prefix: '<header>', suffix:

'</header>')

Dienstag, 28. Mai 13

Page 67: [T3CB13] Integrating websites with neos

Tips

Dienstag, 28. Mai 13

Page 68: [T3CB13] Integrating websites with neos

Custom Node Types

Dienstag, 28. Mai 13

Page 69: [T3CB13] Integrating websites with neos

Stick to conventions

Dienstag, 28. Mai 13