[t3cb13] integrating websites with neos
DESCRIPTION
Talk about Neos website integration and TypoScript at the TYPO3 Camp Berlin 2013TRANSCRIPT
Integrating Websites with TYPO3 Neos
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
3 Ways to go on
Dienstag, 28. Mai 13
Classic Templating
3 Ways to go on
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Templavoila
3 Ways to go on
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Fluid Template
3 Ways to go on
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Write Typoscript
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Create Pages
Dienstag, 28. Mai 13
Add Dummy Content
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Folder Structure?
Dienstag, 28. Mai 13
Folder Structure?
fileadmin
templates
extension?
Dienstag, 28. Mai 13
TypoScript?
Dienstag, 28. Mai 13
TYPO3 Neos
Dienstag, 28. Mai 13
Installation
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Site Package
Dienstag, 28. Mai 13
MyCompany.MySite
Classes
Configuration
Resources
Site Package Contents
Dienstag, 28. Mai 13
Resources Contents
Resources
Public
Private
Dienstag, 28. Mai 13
Public
StyleSheets
Images
Scripts
Public Resources Contents
...
Dienstag, 28. Mai 13
Private
Content
Templates
TypoScripts
Private Resources Contents
Dienstag, 28. Mai 13
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
Content Model
Dienstag, 28. Mai 13
Nodes
Dienstag, 28. Mai 13
Node structure
site root
page
content section
content element
representation of domain models
Dienstag, 28. Mai 13
/sites/typo3org/home/subpage/main/text1
are addressed by nodePaths
Dienstag, 28. Mai 13
are addressed by nodePaths
/sites/typo3org/home/subpage/main/text1
site root
Dienstag, 28. Mai 13
are addressed by nodePaths
/sites/typo3org/home/subpage/main/text1
pages
site root
Dienstag, 28. Mai 13
are addressed by nodePaths
/sites/typo3org/home/subpage/main/text1
section
pages
site root
Dienstag, 28. Mai 13
are addressed by nodePaths
/sites/typo3org/home/subpage/main/text1
content
section
pages
site root
Dienstag, 28. Mai 13
Private
Content
Templates
TypoScripts
Private Resources Contents
Dienstag, 28. Mai 13
Page Template
Dienstag, 28. Mai 13
Fluid Template
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Private
Content
Templates
TypoScripts
Private Resources Contents
Dienstag, 28. Mai 13
TypoScript2 Basics
Dienstag, 28. Mai 13
FEATURE
Consistency
Dienstag, 28. Mai 13
FEATURE
Extensibility
Dienstag, 28. Mai 13
FEATURE
Simplicicy
Dienstag, 28. Mai 13
TypoScript Objects• Template
• Array
• Collection
• Case
• Menu
• (Page)
Dienstag, 28. Mai 13
FEATURE
Flexibility
Dienstag, 28. Mai 13
TypoScripts Contents
TypoScripts
Library
Nodes
Dienstag, 28. Mai 13
TypoScripts Contents
TypoScripts
Library
Nodes
Root.ts2
Dienstag, 28. Mai 13
TypoScripts Contents
TypoScripts
Library
Nodes
Root.ts2
Dienstag, 28. Mai 13
REMINDER
site root
page
content section
content element
representation of domain models
/sites/typo3org/home/subpage
Dienstag, 28. Mai 13
REMINDER
site root
page
content section
content element
representation of domain models
/sites/typo3org/home/subpage
Dienstag, 28. Mai 13
TypoScripts Contents
TypoScripts
Library
Nodes
Root.ts2
Home Subpage.ts2
Dienstag, 28. Mai 13
Dienstag, 28. Mai 13
Prototypes
Dienstag, 28. Mai 13
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
EEL?
Dienstag, 28. Mai 13
FlowQuery?EEL?
Dienstag, 28. Mai 13
Fizzle?FlowQuery?
EEL?
Dienstag, 28. Mai 13
Lets take it apart
${q(node).children().filter('left').first()}
Dienstag, 28. Mai 13
Simple Property Access
${q(node).property('text')}
Dienstag, 28. Mai 13
Traversal
${q(node).children('left').first()}
${q(node).children().filter('left').first()}
${q(node).parents()}
Dienstag, 28. Mai 13
Processors
Dienstag, 28. Mai 13
Processors
prototype(TYPO3.Neos.NodeTypes:TextWithImage).text << 1.wrap(prefix: '<header>', suffix:
'</header>')
Dienstag, 28. Mai 13
Tips
Dienstag, 28. Mai 13
Custom Node Types
Dienstag, 28. Mai 13
Stick to conventions
Dienstag, 28. Mai 13