Learn Neos. TypoScript 2. Pocket Reference. for TYPO3 Neos 1.1



Similar documents
Web Programming Step by Step

JavaScript: Introduction to Scripting Pearson Education, Inc. All rights reserved.

JavaScript Introduction

WIRIS quizzes web services Getting started with PHP and Java

Yandex.Widgets Quick start

Developers Guide. Designs and Layouts HOW TO IMPLEMENT WEBSITE DESIGNS IN DYNAMICWEB. Version: English

Drupal CMS for marketing sites

Facebook Twitter YouTube Google Plus Website

CS106A, Stanford Handout #38. Strings and Chars

10CS73:Web Programming

Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation

Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner

Cross Site Scripting (XSS) and PHP Security. Anthony Ferrara NYPHP and OWASP Security Series June 30, 2011

Setup The package simply needs to be installed and configured for the desired CDN s distribution server.

Interspire Website Publisher Developer Documentation. Template Customization Guide

MASTERTAG DEVELOPER GUIDE

Handout 3 cs180 - Programming Fundamentals Spring 15 Page 1 of 6. Handout 3. Strings and String Class. Input/Output with JOptionPane.

Finding XSS in Real World

Xtreeme Search Engine Studio Help Xtreeme

Wave Analytics Data Integration

We automatically generate the HTML for this as seen below. Provide the above components for the teaser.txt file.

Chapter 2 HTML Basics Key Concepts. Copyright 2013 Terry Ann Morris, Ed.D

Slide.Show Quick Start Guide

Extending the Linked Data API with RDFa

JavaScript: Arrays Pearson Education, Inc. All rights reserved.

Contents. 2 Alfresco API Version 1.0

Web Design Basics. Cindy Royal, Ph.D. Associate Professor Texas State University

SizmekFeatures. HTML5JSSyncFeature

Web Development using PHP (WD_PHP) Duration 1.5 months

Java String Methods in Print Templates

EXT: SEO dynamic tag

Course Outline Basic Web Development

Portal Connector Fields and Widgets Technical Documentation

Visualizing a Neo4j Graph Database with KeyLines

1. To start Installation: To install the reporting tool, copy the entire contents of the zip file to a directory of your choice. Run the exe.

Government Girls Polytechnic, Bilaspur

Form And List. SuperUsers. Configuring Moderation & Feedback Management Setti. Troubleshooting: Feedback Doesn't Send

Portals and Hosted Files

HTML Web Page That Shows Its Own Source Code

Exercise 4 Learning Python language fundamentals

LAB MANUAL CS (22): Web Technology

VB.NET - STRINGS. By calling a formatting method to convert a value or object to its string representation

AP Computer Science Java Subset

Creating a Drupal 8 theme from scratch

Django Assess Managed Nicely Documentation

LabVIEW Internet Toolkit User Guide

Advanced Web Development SCOPE OF WEB DEVELOPMENT INDUSTRY

Kaseya 2. Quick Start Guide. for VSA 6.3

Fast track to HTML & CSS 101 (Web Design)

6.170 Tutorial 3 - Ruby Basics

WEB DESIGN COURSE CONTENT

Web Development I & II*

Computer Programming I

WebSphere Business Monitor

Responsive Web Design Creative License

JavaScript: Control Statements I

Official Amazon Checkout Extension for Magento Commerce. Documentation

My IC Customizer: Descriptors of Skins and Webapps for third party User Guide

Semistructured data and XML. Institutt for Informatikk INF Ahmet Soylu

The purpose of jquery is to make it much easier to use JavaScript on your website.

Visualizing an OrientDB Graph Database with KeyLines

USING MAGENTO TRANSLATION TOOLS

MS Access: Advanced Tables and Queries. Lesson Notes Author: Pamela Schmidt

HTML Forms and CONTROLS

J a v a Quiz (Unit 3, Test 0 Practice)

CIS 467/602-01: Data Visualization

Grandstream XML Application Guide Three XML Applications

CommonSpot Content Server Version 6.2 Release Notes

NewsletterAdmin 2.4 Setup Manual

Web Development CSE2WD Final Examination June (a) Which organisation is primarily responsible for HTML, CSS and DOM standards?

XSLT Mapping in SAP PI 7.1

Cyber Security Challenge Australia 2014

INSTALLATION AND CONFIGURATION MANUAL ENCODER

Bazaarvoice for Magento Extension Implementation Guide v6.3.4

Information and Computer Science Department ICS 324 Database Systems Lab#11 SQL-Basic Query

Elgg 1.8 Social Networking

Configuring the JEvents Component

Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator

What is Memento. Content

CompSci-61B, Data Structures Final Exam

BT CONTENT SHOWCASE. JOOMLA EXTENSION User guide Version 2.1. Copyright 2013 Bowthemes Inc.

FILESURF 7.5 SR3/WORKSITE INTEGRATION INSTALLATION MANUAL 1 PRELIMINARIES...3 STEP 1 - PLAN THE FIELD MAPPING...3 STEP 2 - WORKSITE CONFIGURATION...

Website Planning Checklist

FileMaker Server 15. Custom Web Publishing Guide

Designing for Magento

Big Data and Scripting map/reduce in Hadoop

J j enterpririse. Oracle Application Express 3. Develop Native Oracle database-centric web applications quickly and easily with Oracle APEX

Web Development. Owen Sacco. ICS2205/ICS2230 Web Intelligence

Introduction to Web Design Curriculum Sample

Further web design: HTML forms

Script Handbook for Interactive Scientific Website Building

Now that we have discussed some PHP background

Analytics Configuration Reference

Wave Analytics Data Integration Guide

Computers. An Introduction to Programming with Python. Programming Languages. Programs and Programming. CCHSG Visit June Dr.-Ing.

JISIS and Web Technologies

Dashboard Skin Tutorial. For ETS2 HTML5 Mobile Dashboard v3.0.2

Novell Identity Manager

Transcription:

Learn Neos TypoScript 2 Pocket Reference for TYPO3 Neos 1.1

Download digital version, give feedback, report errors http://bit.ly/ts2-pocket

Table of Contents TypoScript 2 Syntax......................................... 2 TypoScript 2 Meta Properties..................................3 TypoScript 2 Object Types TYPO3.TypoScript Template, Array, Value...................................4 Collection, RawArray................................... 5 ResourceUri, UriBuilder.................................6 Case...............................................7 Tag, Attributes........................................8 TYPO3.Neos Page...............................................9 ContentCollection, PrimaryContent........................10 Content, Plugin...................................... 11 Menu............................................. 12 Eel Syntax...............................................13 Eel Helpers String................................................14 Array, Configuration..................................... 15 Date, Math............................................16 Copyright 2014 networkteam GmbH Kleiner Kuhberg 42 24103 Kiel, Germany This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

TypoScript 2 Syntax TypoScript 2 Syntax Comments # Line comment // Another line comment /* * Multi-line comment */ Simple Values Expressions Objects Property Definitions Prototype Extension Clear Property Namespaces book = "The guide" answer = 42 enableimprobabilitydrive = true answer = ${Math.floor(85 / 2) title = ${q(node).property('title') output = TYPO3.TypoScript:Array { hello = 'Hello' world = 'world!' output.world = "world!" output { hello = "Hello" prototype(acme.demo:book).book = ${book prototype(acme.demo:book) < prototype(template) { templatepath = 'Book.html' output.world > namespace d=acme.demo output = d:book 2

TypoScript 2 Meta Properties @process array Apply processors after evaluation example.@process.someprocessor = ${String.toUpperCase(value) @override array Set context variables by named key example.@override.somevariable = ${q(node).parent() @position @cache @class mixed array @exceptionhandler Order definitions in Array, @process, Case <numerical-order> start (<weight>) end (<weight>) before <key> (<weight>) after <key> (<weight>) page.body.javascripts.jquery.@position = 'start 100' mode entryidentifier entrytags context maximumlifetime cachedexample.@cache { mode = 'cached' entryidentifier.node = ${node entrytags.1 = ${'Node_' + node.identifier Define caching behavior for object 'embed', 'cached' or 'uncached' array Named values to build the entry identifier array Tags when the entry should be flushed array Context variable names to store in mode 'uncached' integer Maximum lifetime for nearest cached entry null (default), 0 (unlimited) or x seconds Set implementation class for object @class = 'Acme\\Demo\\TypoScript\\MyObjectImplementation' Set exception handler class for object 3

TypoScript 2 Object types TYPO3.TypoScript Template Render a Fluid template templatepath The template path and filename (required) partialrootpath Path to partials layoutrootpath Path to layouts sectionname The Fluid <f:section> to render (if given) [key] mixed Define a variable with name key in Fluid prototype(my.site:footer) < prototype(typo3.typoscript:template) { templatepath = 'resource://my.site/private/templates/footer.html' sectionname = 'main' node = ${node Array Render multiple ordered definitions and concatenate the results [key] A nested definition that evaluates to a [key].@position mixed Define the ordering of the element output = TYPO3.TypoScript:Array { world = 'world!' hello = TYPO3.TypoScript:Value { value = 'Hello' @position = 'start' Value Evaluate any value as a TypoScript object value mixed The value to evaluate (required) output = TYPO3.TypoScript:Value { value = 'A static text' @process.h1tag = ${'<h1>' + value + '</h1>' 4

TypoScript 2 Object types TYPO3.TypoScript Collection collection itemname iterationname itemrenderer Render each item in a collection and concatenate the results array output = TYPO3.TypoScript:Collection { collection = ${q(node).children() itemname = 'childnode' itemrenderer = TYPO3.TypoScript:Template { templatepath = 'resource://...' node = ${childnode RawArray [key] [key].@position Evaluate nested definitions as array mixed mixed output = TYPO3.TypoScript:Attributes { class = TYPO3.TypoScript:RawArray { alert = 'alert' alert.@position = 'start' alert-error = 'alert-error' The collection to render (Iterable, required) Context variable name for each item (required) Context variable name for iteration information with properties index, cycle, isfirst, islast The item rendering definition: simple value, expression or object (required) A nested definition Define the ordering of the element 5

TypoScript 2 Object types TYPO3.TypoScript ResourceUri path package resource localize Build a URI to a package resource (e.g. JS or CSS) Resource boolean Path to resource, either a path relative to Public and package or a resource:// URI The package key (e.g. 'My.Package') Resource object instead of path and package Whether resource localization should be used, defaults to true scriptinclude = TYPO3.TypoScript:Tag { tagname = 'script' attributes { src = TYPO3.TypoScript:ResourceUri { path = 'resource://my.package/public/scripts/app.js' UriBuilder Build a URI to a controller action package The package key (e.g. 'My.Package') subpackage The subpackage, defaults to empty controller The controller name (e.g. 'Registration') action The action name (e.g. 'new') arguments array Arguments to the action by named key format An optional request format (e.g. 'html') section An optional fragment (hash) for the URI additionalparams array Additional URI query parameters addquerystring boolean Whether to keep current query parameters argumentstobe array Query parameters to exclude for ExcludedFrom addquerystring QueryString absolute boolean Whether to create an absolute URI 6

TypoScript 2 Object types TYPO3.TypoScript uri = TYPO3.TypoScript:UriBuilder { package = 'My.Package' controller = 'Registration' action = 'new' absolute = true Case [key] [key].condition [key].type [key].element [key].renderpath [key].@position Conditionally render one of multiple object definitions or paths Matcher boolean The first condition that evaluates to true will be used (required) Object type to render (as ) (required) array Properties for the object instance Path to render (overrules type) Define the ordering of the condition page.body.content.header = TYPO3.TypoScript:Case { landingpage { condition = ${q(node).property('landingpage') type = 'My.Package:SimpleMenu' default { condition = true type = 'My.Package:MainMenu' 7

TypoScript 2 Object types TYPO3.TypoScript Tag tagname content attributes omitclosingtag selfclosingtag Render an HTML tag with attributes and body (if given) output = TYPO3.TypoScript:Tag { tagname = 'meta' attributes { charset = 'UTF-8' Attributes Tag name, defaults to div The inner content of the element Tag attributes, the Tag prototype defines an Attributes object by default boolean Whether to leave out the closing tag, defaults to false boolean Whether the tag is self closing, will be guessed from the tag name by default Render HTML tag attributes in an extensible way [key] mixed The attribute name [key] and value, array values will be joined with whitespace output = TYPO3.TypoScript:Attributes { id = 'message' class = TYPO3.TypoScript:RawArray { alert = 'alert' alert-error = 'alert-error' 8

TypoScript 2 Object types TYPO3.Neos Page Render an HTML document with metadata for Neos doctype HTML doctype, defaults to <!DOCTYPE html> htmltag ts:tag The opening <html> tag attributes.[key] mixed Attributes for <html> tag headtag ts:tag The opening <head> tag head ts:array Content inside <head> titletag ts:tag The <title> tag javascripts ts:array Head JS includes (script tags) stylesheets ts:array Head CSS includes (link tags) bodytag ts:tag The opening <body> tag attributes.[key] mixed Attributes for <body> tag body ts:template The main body content templatepath Path to the body Fluid template (required) [key] mixed Variables for the body template javascripts ts:array Body footer JS includes (script tags) # Render content from main ContentCollection # Output in Fluid template with {content.main -> f:format.raw() page.body { content.main = PrimaryContent { nodepath = 'main' # Include a stylesheet from a <f:section> in the template page.head.stylesheets.mysite = TYPO3.TypoScript:Template { templatepath = 'resource://my.package/private/page.html' sectionname = 'headstylesheets' 9

TypoScript 2 Object types TYPO3.Neos ContentCollection Render content from a ContentCollection nodepath @override.content CollectionNode @cache Node array The relative node path of the Content- Collection (e.g. 'main') (required) The content collection node, resolved from nodepath by default Content cache properties, 'mode' defaults to 'embed' page.body { content { main = PrimaryContent { nodepath = 'main' footer = ContentCollection { nodepath = 'footer' # Static ContentCollections must enable cache @cache.mode = 'cached' PrimaryContent nodepath default [key] Render the primary ContentCollection, extends Case array array The relative node path of the Content- Collection (e.g. 'main') (required) Default case that renders a Content- Collection Additional conditions (e.g. to handle specific document type), see TYPO3.TypoScript:Case 10

TypoScript 2 Object types TYPO3.Neos Content templatepath [key] attributes Base type to render content nodes, extends Template The template path and filename, defaults to 'resource://[packagekey]/private/templa tes/nodetypes/[nodetype].html' mixed Variables for the node template, all node type properties are set by default ts:attributes Extensible attributes for the template prototype(my.package:mycontent) < prototype(typo3.neos:content) { templatepath = 'resource://my.package/template/other.html' # Auto-generated for all node type properties # title = ${node.properties.title Plugin package subpackage controller array action argumentnamespace [key] Base type to render plugin nodes mixed The package key (e.g. 'My.Package') (required) The subpackage, defaults to empty The controller name (e.g. 'Registration') The action name (e.g. 'new') Namespace for action arguments, will be resolved from node type by default Pass an internal argument to the action (access with _key) prototype(my.package:flickrplugin) < prototype(typo3.neos:plugin) { package = 'My.Package' controller = 'Flickr' action = 'tagstream' 11

TypoScript 2 Object types TYPO3.Neos Menu templatepath entrylevel maximumlevels startingpoint lastlevel filter renderhidden- InIndex itemcollection attributes normal.attributes active.attributes current.attributes Render a menu with items for document nodes Override the template path integer Start the menu at the given depth integer Restrict the maximum depth of items in the menu (relative to entrylevel) Node The parent node of the first menu level (defaults to node context variable) integer Restrict the menu depth by node depth (relative to site node) Filter items by node type, defaults to TYPO3.Neos:Document boolean Whether nodes with hiddeninindex should be rendered, defaults to false array Explicitly set the Node items for the menu (alternative to startingpoints and levels) ts:attributes Extensible attributes for the whole menu ts:attributes Attributes for normal state ts:attributes Attributes for active state ts:attributes Attributes for current state Menu item properties node originalnode state label Node Node A node that should be used to link to the item (with resolved shortcuts) The unresolved node for the menu item 'normal', 'active' (the current node) or 'current' (parent of current node) Full label of the node 12

Eel Syntax Eel expressions are valid JavaScript syntax JavaScript expression syntax can be used for Eel Literals Variabels Traversal Method Calls Offset Access Mathematical operators Comparisons Boolean operators Conditional operator Array and Object Literals 42 1.5 false true null 'A ' "Another \"quoted\" " ${myvariable ${node.contextpath ${String.substr("Hello world!", 6, 5) ${q(node).property('title') ${String.split("Hello world!", ' ')[1] ${items[index + 1] + - * / % ==!= > >= < <=! && ${a? b : c ${Array.join(['first', 'second', 'last'], ', ') ${q(node).context({'invisiblecontentshown': true) 13

Eel Helpers String.[function] charat (, index) crop (, length, suffix) cropatsentence (, length, suffix) cropatword (, length, suffix) endswith (, search, position) firstlettertolowercase () firstlettertouppercase () htmlspecialchars (, preserve) indexof (, search, fromindex) isblank () lastindexof (, search, toindex) md5 () pregmatch (, pattern) pregreplace (, pattern, replace) rawurldecode () rawurlencode () replace (, search, replace) split (, separator, limit) startswith (, search, position) striptags () substr (, start, length) sub (, start, end) toboolean () tofloat () tointeger () tolowercase () touppercase () tostring (value) trim (, charlist) Get the character at a specific position Crop a, optionally append suffix Crop a, take sentences into account Crop a, take words into account Test if a ends with search Lowercase the first letter of a Uppercase the first letter of a Convert special chars to HTML entities Find the position of a sub Test if a is empty or whitespace only Find the last position of a sub Calculate the MD5 hash of a Match a regular expression (PREG) Replace by regular expression (PREG) Decode the from URL encoding Encode the to URL encoding Replace occurrences of search Split a by a separator Test if a starts with search Strip all HTML tags from a Sub from start to the given length Sub from start index to end index Convert a to boolean Convert a to float Convert a to integer Lowercase a Uppercase a Convert the given value to a Trim whitespace at beginning and end 14

Eel Helpers Array.[function] concat (array1, array2, array) first (array) indexof (array, search, fromindex) isempty (array) last (array) length (array) join (array, separator) reverse (array) keys (array) pop (array) push (array, element) random (array) shift (array) shuffle (array, preservekeys) slice (array, begin, end) sort (array) splice (array, offset, length, replace) unshift (array, element) Concatenate arrays or values Get the first element of an array Find the item position in an array Check if an array is empty Get the last element of an array Get the length of an array Join values of an array with a separator Returns an array in reverse order Get the array keys Removes the last element from an array Insert elements at the end of an array Picks a random element from the array Remove the first element of an array Randomize an array Extract a portion of an indexed array Sorts an array (numbers>characters) Replaces an array range by a replacement Insert elements at the beginning Configuration.[function] setting (settingpath) Return the specified settings 15

Eel Helpers pers Date.[function] add (date, interval) dayofmonth (datetime) diff (datea, dateb) format (date, format) parse (, format) hour (datetime) minute (datetime) month (datetime) now () second (datetime) subtract (date, interval) today () year (datetime) Add an interval to a date Get the day of month of a date Get the difference as a DateInterval Format a date (or interval) to a Parse a date from with a format Get the hour of a date (24 hour format) Get the minute of a date Get the month of a date Get the current date and time Get the second of a date Subtract an interval from a date Get the current date Get the year of a date Math.[function] ceil (x) floor (x) max (x, y,...) min (x, y,...) random () randomint (min, max) round (subject, precision) Smallest integer greater than or equal to x Largest integer less than or equal to x Largest of given numbers Smallest of given numbers Random float between 0 (incl) and 1 (excl) Random int between min and max (incl) Rounds the subject to the given precision For more Math functions see docs.typo3.org/neos/ 16

Don't panic learn-neos.com