TypoScript 2.0

3,172 views

Published on

TYPO3 Phoenix features a revised version of TYPO3’s powerful object definition syntax. The main design goals were consistency, simplicity and extensibility. In this session you’ll learn about the new object-oriented approach, the improved syntax, how you get full control over the rendered output and if stdWrap and friends made it to the next version. The examples from this talk will help you to experiment with your own TypoScripts on your own TYPO3 Phoenix installation.

  • Be the first to comment

TypoScript 2.0

  1. 1. Robert Lemke TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  2. 2. Robert Lemke chief architect of TYPO3 Phoenix and FLOW3 co-founder of the TYPO3 Association 34 years old lives in Lübeck, Germany 1 wife, 1 daughter, 1 espresso machine likes drummingSamstag, 2. Oktober 2010
  3. 3. Design Goals Clear Purpose Consistency Object-Oriented Extensible TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  4. 4. TypoScript 2.0 is an object-oriented view definition language (dont use it for plain configuration anymore) TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  5. 5. TypoScript = { TypoScriptLine LineBreak }; New TypoScriptLine = ( Comment | ConfinementBlock | Declaration | ParseCondition | Ob ConfinementBlock = ObjectPath "{" LineBreak { TypoScriptLine } "}" ; Declaration = ( IncludeDeclaration | NamespaceDeclaration ); Syntax Comment = ( SingleLineComment | BlockComment ); ObjectDefinition = ObjectPath ValueOperation; IncludeDeclaration = "include" ":" "source" "=" DoubleQuote Resource DoubleQuote NamespaceDeclaration = "namespace" ":" NamespaceIdentifier "=" ObjectName; SingleLineComment = ( "#" | "//" ) { UnicodeCharacter }; BlockComment = "/*" { UnicodeCharacter | LineBreak } "*/"; ObjectPath = [ "." ] ObjectIdentifier { "." ObjectIdentifier } ( [ "." VariableName ] | [ "." VariableName = "$" Identifier; ValueOperation = ( ValueAssignment | ValueCopy | ValueReference | ValueUnset | ValueP ValueAssignment = "=" ( Literal | ObjectType | Constant ); ValueCopy = "<" ObjectPath; ValueReference = "=<" ObjectPath; ValueUnset = ">"; TypoScript 2.0 T3CON10 Frankfurt ValueProcessing = "<<" ArrayOffset "." [ ObjectName "->" ] MethodName "(" { MethoSamstag, 2. Oktober 2010
  6. 6. CASE myPage = Page myPage.title = "Foo" foo.color = RED TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  7. 7. Literals foo = Single quoted bar = "Double quoted" baz = "I use " and within a quoted literal" TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  8. 8. Comments foo = Bar // <- heres a comment # baz = Quux (not active) /* page = Page */ TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  9. 9. Type Safe thePurpose = 42 theSalary = 41.66 theTruth = FALSE TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  10. 10. Assignments page = Page page < coolPage page.title =< thirdPage.title page > TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  11. 11. Namespaces namespace: default = F3PlusPlusTypoScript page = Page TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  12. 12. Variables myText = Text myText.$name = "audience" myText.headline = "Hello $name!" TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  13. 13. TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  14. 14. Nodes Node Tree instead of Page Tree Content Types TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  15. 15. DEMO TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  16. 16. And stdWrap? TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  17. 17. Processors myText = Text myText.text = "Hey you guys really rock and what I always wanted to say myText.text << 2.crop(maximumCharacters = 20) myText.text << 1.wrap(<em>, </em>) TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  18. 18. Processors TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  19. 19. Customising TypoScript Create new Content Types Tweak or override Fluid Templates Create new TypoScript Object Types TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  20. 20. Questions Email: robert@typo3.org Blog: http://robertlemke.de/blog Twitter: @t3rob Slides: http://slideshare.net/rlmp TypoScript 2.0 T3CON10 FrankfurtSamstag, 2. Oktober 2010
  21. 21. Samstag, 2. Oktober 2010

×