SlideShare ist ein Scribd-Unternehmen logo
1 von 34
Downloaden Sie, um offline zu lesen
TASTY NEOS RECIPES
FOR EVERY DAY
CREATE BETTER WEBSITES WITH NEOS
SEBASTIAN HELZLE - INSPIRING CON 2016
TASTY NEOS RECIPES FOR EVERY DAY - INTRODUCTION
ABOUT ME
▸ Years of TYPO3, Flow & Neos experience
▸ Neos team member
▸ Product Owner @ punkt.de
▸ Living in Karlsruhe
▸ Sometimes living in Cambodia
▸ Hiker & baker
▸ @sebobo
TASTY NEOS RECIPES FOR EVERY DAY - INTRODUCTION
THIS TALK HELPS
▸ Developers
▸ Who start a new project
▸ Who want to learn more
▸ Who want to stay up-to-date
▸ Editors
▸ Who want to know if things could be easier
▸ Project leaders
▸ Who want to know what’s possible
TASTY NEOS RECIPES FOR EVERY DAY - INTRODUCTION
AGENDA
▸ A look into the past
▸ Improvements
▸ New recipes
▸ ???
▸ Become a Neos chef
A LOOK INTO
THE PAST
TASTY NEOS RECIPES FOR EVERY DAY - A LOOK INTO THE PAST
▸ Talk first held at Inspiring Con 2015 by Aske Ertmann
▸ Check it out here
▸ https://speakerdeck.com/aertmann/tasty-recipes-for-
every-day-neos
▸ or here goo.gl/A2WCiU
▸ Some recipes have are outdated — most are still great!
TASTY NEOS RECIPES FOR EVERY DAY - A LOOK INTO THE PAST
GREAT RECIPES IN THE OLD SLIDES
▸ Automatically optimize images and process them faster
▸ Automatic deployment
▸ Customizable 404 pages
▸ Multi-Site techniques
▸ E-Mail Spam protection
▸ Adjust css and js for editors
▸ And many more!
TASTY NEOS RECIPES FOR EVERY DAY - A LOOK INTO THE PAST
NEOS & FLOW DOCUMENTATION
▸ Was not always helpful
▸ Has much improved!
▸ Good examples
▸ Often used sentence:
„With Neos you can do a lot with a few lines of code“
—
„finding them is the hard part“
IMPROVEMENTS
TASTY NEOS RECIPES FOR EVERY DAY - IMPROVEMENTS
PERSISTENT CACHES
▸ Easier to configure since Flow 3.0
▸ Are kept even when flushing all caches
# Caches.yaml
# Flow 3.0+
Flow_Session_Storage:
persistent: TRUE
Flow_Session_MetaData:
persistent: TRUE
# Flow 2.0-2.3 (only works with Surf deployment – not flow:cache:flush command)
Flow_Session_Storage:
backendOptions:
cacheDirectory: '%FLOW_PATH_DATA%Session/Flow_Session_Storage'
Flow_Session_MetaData:
backendOptions:
cacheDirectory: '%FLOW_PATH_DATA%Session/Flow_Session_MetaData'
TASTY NEOS RECIPES FOR EVERY DAY - IMPROVEMENTS
PERSISTENT CACHE - EXAMPLES
▸ Keep session data
▸ Store dynamic configurations
▸ Fallback cache for flaky API endpoints
$result = $this->queryApi($endpointUrl);


$fallbackCacheKey = $this->getCacheKey($endpointUrl);


if ($result !== false) {

$this->fallbackApiCache->set($fallbackCacheKey, $result);

} else {

$this->systemLogger->log(
'API connection failed - will use fallback cache',
LOG_WARNING,
1458644107
);

$result = $this->fallbackApiCache->get($fallbackCacheKey);

}
return $result;
TASTY NEOS RECIPES FOR EVERY DAY - IMPROVEMENTS
SEO
▸ Use the Neos package typo3/neos-seo
▸ Provides additional configuration for every page
▸ Alternative page title
▸ Meta tags (description, keywords, robots)
▸ Twitter card
▸ OpenGraph
▸ Canonical Link
▸ XML Sitemap
NEW RECIPES
TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES
GOOGLE ANALYTICS
▸ Use the Neos package 

typo3/neos-googleanalytics
▸ View page statistics in the backend
▸ Tracking script helper
TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES
HELP EDITORS WITH BACKEND HINTS
▸ Hints only shown in edit mode
<f:if condition="{neos:rendering.inEditMode()}">

<f:then>

<p class="backend-editor-hint">
Please select the start point of your blog in the inspector.
</p>

</f:then>

<f:else>

<p>No blog entries found.</p>

</f:else>

</f:if>
TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES
HELP EDITORS UNDERSTAND
▸ Adapt naming of content to your customers vocabulary
# NodeTypes.Headline.yaml
‘Neos.NodeTypes:Headline‘:

ui:

label: 'Leadtext'
# NodeTypes.NewsArticle.yaml
‘Foo.Bar:NewsArticle‘:

ui:

label: 'Blogpost'
TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES
HELP EDITORS TO NOT GET LOST
▸ Disable unused features
# NodeTypes.ContentImageMixin.yaml
'TYPO3.Neos.NodeTypes:ContentImageMixin':

superTypes:

'TYPO3.Neos.NodeTypes:ImageAlignmentMixin': false
# NodeTypes.Document.yaml
'TYPO3.Neos:Document':

superTypes:

'TYPO3.Neos.Seo:TwitterCardMixin': true

'TYPO3.Neos.Seo:OpenGraphMixin': false
TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES
HELP EDITORS TO NOT MAKE MISTAKES
▸ Constraints, constraints, constraints
▸ Limiting possibilities reduces mistakes
▸ Part of your content architecture
# NodeTypes.Document.yaml
'TYPO3.Neos:Document':

constraints:

nodeTypes:

'Foo.Bar:RootPage': false
# NodeTypes.Column.yaml
'TYPO3.Neos.NodeTypes:Column':

childNodes:

column0:

constraints: &columnConstraints

nodeTypes:

'*': true

'TYPO3.Neos.NodeTypes:Column': false

column1:

constraints: *columnConstraints

column2:

constraints: *columnConstraints

column3:

constraints: *columnConstraints
TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES
DISABLE SESSION TIMEOUT WHILE DEVELOPING
▸ Logging in 20 times a day is a waste of time
# Development/Settings.yaml
TYPO3:

Flow:

security:

session:

inactivityTimeout: 0
TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES
COMPRESS HTML
▸ Use the Neos package flownative/neos-compressor
▸ Removes whitespace, line endings, etc…
TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES
ENABLE FLUID AUTOCOMPLETION PT. 1
▸ Modify template
▸ Also helps PHPStorm to validate your html
# Templates/NodeTypes/Text.html
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml" lang="en"

xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"

xmlns:neos=„http://typo3.org/ns/TYPO3/Neos/ViewHelpers">


<f:section name="Main">

<div{attributes -> f:format.raw()}>

<neos:contentElement.editable property="text"/>



<f:if condition="{referenceNodes}">

<ol class="reference-links">

{referenceNodes -> f:format.raw()}

</ol>

</f:if>

</div>

</f:section>

</html>
TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES
ENABLE FLUID AUTOCOMPLETION PT. 2
▸ Define „sectionName“ in TypoScript prototype
# TypoScript/NodeTypes/Text.ts2
prototype(TYPO3.Neos.NodeTypes:Text) {

templatePath = 'resource://Foo.Bar/Private/Templates/NodeTypes/Text.html'


sectionName = 'Main'



@context.referenceNodesArray = ${q(node).property('references')}

referenceNodes = TYPO3.TypoScript:Collection {

collection = ${referenceNodesArray}

itemRenderer = Foo.Bar:DocumentReference

itemName = 'node'

}

}

TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES
ENABLE FLUID AUTOCOMPLETION PT. 3
▸ Generate schemas for your own view helpers
▸ Include them in PHPStorm
▸ Press alt+enter while schema url in template is selected
# bash
./flow documentation:generatexsd --phpNamespace "FooBarViewHelpers"
http://neos.readthedocs.org/en/2.1/ExtendingNeos/CustomViewHelpers.html
TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES
USE TYPOSCRIPT2 PROTOYPES
▸ Inheritable & extendable modules
# TypoScript/NodeTypes/Example.ts2
prototype(Foo.Bar:Example) < prototype(Neos.NodeTypes:Text) {

attributes.class = 'color-love'

}



prototype(Foo.Bar:Example) {

attributes.class = 'color-rainbow'

}



prototype(Foo.Bar:Column) {

prototype(Foo.Bar:Example) {

attributes.class = 'color-peace'

}

}
TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES
CACHE EVERYTHING
▸ mode = ‚uncached‘ is usually not necessary
# TypoScript/NodeTypes/MyPlugin.ts2
prototype(Foo.Bar:MyPlugin) < prototype(TYPO3.Neos:Plugin) {

@cache {

mode = 'cached'

entryIdentifier {

node = ${node}

}

entryTags {

1 = ${'Node_' + node.identifier}

}

}

}
prototype(TYPO3.TypoScript:GlobalCacheIdentifiers) {
currentPage = ${request.arguments.page}
}
http://neos.readthedocs.org/en/2.1/CreatingASite/ContentCache.html
SUPER SECRET
BONUS RECIPE
TASTY NEOS RECIPES FOR EVERY DAY - SUPER SECRET BONUS RECIPE
MAKE SCREENCASTS
▸ Proof your features work
▸ Measure the length of the workflow
▸ Optimize
▸ Find bugs / inconsistencies
▸ Reduces support
▸ More fun than writing documentation
TASTY NEOS RECIPES FOR EVERY DAY - SUPER SECRET BONUS RECIPE
MAKE SCREENCASTS - EXAMPLE WORKFLOW
▸ Go to a quiet room
▸ Use a headset
▸ Don’t think too much about it
▸ Use simple screen casting app like Voila (or similar)
▸ Make first video
▸ Improve
▸ Make second video
▸ Export to dropbox
▸ Autoupload to Vimeo
▸ Share in private space with client / team
BECOME A
NEOS CHEF
TASTY NEOS RECIPES FOR EVERY DAY - BECOME A NEOS CHEF
LEARN FROM OTHERS
▸ Join us slack.neos.io
▸ Discuss on discuss.neos.io
▸ Don’t be afraid to ask questions
▸ Stay up-to-date on what’s going on
▸ Read the changelogs
TASTY NEOS RECIPES FOR EVERY DAY - BECOME A NEOS CHEF
IT’S OPEN SOURCE
▸ Search
▸ Fork
▸ Learn
▸ Improve
▸ Give back
▸ Come up with new recipes
TASTY NEOS RECIPES FOR EVERY DAY - BECOME A NEOS CHEF
NEOS IS MAKING THINGS EASY
▸ TypoScript 2 means configurability and reusability
▸ Prototypes are powerful
▸ Many things can be easily toggled
▸ Don’t build complicated templates
▸ Build small reusable partials and prototypes
▸ Make it easy for others to use your recipes
ANY QUESTIONS?
THANKS!
@SEBOBO
FEEL FREE TO CONTACT ME

Weitere ähnliche Inhalte

Was ist angesagt?

Bower - A package manager for the web
Bower - A package manager for the webBower - A package manager for the web
Bower - A package manager for the webLarry Nung
 
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsCool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsRyan Weaver
 
"Vendor Everything" still applies
"Vendor Everything" still applies"Vendor Everything" still applies
"Vendor Everything" still appliesRyan McGeary
 
Shell Scripting-training-course-navi-mumbai-shell-scripting-course-provider-n...
Shell Scripting-training-course-navi-mumbai-shell-scripting-course-provider-n...Shell Scripting-training-course-navi-mumbai-shell-scripting-course-provider-n...
Shell Scripting-training-course-navi-mumbai-shell-scripting-course-provider-n...VibrantGroup
 
Beginning Jquery In Drupal Theming
Beginning Jquery In Drupal ThemingBeginning Jquery In Drupal Theming
Beginning Jquery In Drupal ThemingRob Knight
 
mdpress(MarkDown Press)を使ったプレゼンテーション作成
mdpress(MarkDown Press)を使ったプレゼンテーション作成mdpress(MarkDown Press)を使ったプレゼンテーション作成
mdpress(MarkDown Press)を使ったプレゼンテーション作成達郎 植田
 
12 Rocking Apache .htaccess Tutorial ...
12 Rocking Apache .htaccess Tutorial ...12 Rocking Apache .htaccess Tutorial ...
12 Rocking Apache .htaccess Tutorial ...wensheng wei
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsk88hudson
 
Continuous deployment of puppet modules
Continuous deployment of puppet modulesContinuous deployment of puppet modules
Continuous deployment of puppet modulesWilliam O'Neill
 

Was ist angesagt? (10)

Bower - A package manager for the web
Bower - A package manager for the webBower - A package manager for the web
Bower - A package manager for the web
 
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other ToolsCool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
Cool like a Frontend Developer: Grunt, RequireJS, Bower and other Tools
 
"Vendor Everything" still applies
"Vendor Everything" still applies"Vendor Everything" still applies
"Vendor Everything" still applies
 
Shell Scripting-training-course-navi-mumbai-shell-scripting-course-provider-n...
Shell Scripting-training-course-navi-mumbai-shell-scripting-course-provider-n...Shell Scripting-training-course-navi-mumbai-shell-scripting-course-provider-n...
Shell Scripting-training-course-navi-mumbai-shell-scripting-course-provider-n...
 
Beginning Jquery In Drupal Theming
Beginning Jquery In Drupal ThemingBeginning Jquery In Drupal Theming
Beginning Jquery In Drupal Theming
 
mdpress(MarkDown Press)を使ったプレゼンテーション作成
mdpress(MarkDown Press)を使ったプレゼンテーション作成mdpress(MarkDown Press)を使ったプレゼンテーション作成
mdpress(MarkDown Press)を使ったプレゼンテーション作成
 
Hello npm
Hello npmHello npm
Hello npm
 
12 Rocking Apache .htaccess Tutorial ...
12 Rocking Apache .htaccess Tutorial ...12 Rocking Apache .htaccess Tutorial ...
12 Rocking Apache .htaccess Tutorial ...
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scripts
 
Continuous deployment of puppet modules
Continuous deployment of puppet modulesContinuous deployment of puppet modules
Continuous deployment of puppet modules
 

Andere mochten auch

Neos Bloopers [Inspiring 2016]
Neos Bloopers [Inspiring 2016]Neos Bloopers [Inspiring 2016]
Neos Bloopers [Inspiring 2016]Christian Müller
 
NEOS IoT Security Platform : System-on-module with WiFi and TPM (Trusted Plat...
NEOS IoT Security Platform : System-on-module with WiFi and TPM (Trusted Plat...NEOS IoT Security Platform : System-on-module with WiFi and TPM (Trusted Plat...
NEOS IoT Security Platform : System-on-module with WiFi and TPM (Trusted Plat...Byeongseok Yu
 
192382 426785224034300 1186474663 O.Jpg
192382 426785224034300 1186474663 O.Jpg192382 426785224034300 1186474663 O.Jpg
192382 426785224034300 1186474663 O.Jpghacochef
 
Create dynamic sites with PHP & MySQL
Create dynamic sites with PHP & MySQLCreate dynamic sites with PHP & MySQL
Create dynamic sites with PHP & MySQLkangaro10a
 
Durobor Glass Verrines
Durobor Glass VerrinesDurobor Glass Verrines
Durobor Glass Verrineshacochef
 
Cooking camping recipes
Cooking   camping recipesCooking   camping recipes
Cooking camping recipesmrshohel
 
Cooking international recipes
Cooking   international recipesCooking   international recipes
Cooking international recipesmrshohel
 
Human vs. nature
Human vs. natureHuman vs. nature
Human vs. natureDiet Center
 
Back To School Healthy Packed Lunch Ideas
Back To School Healthy Packed Lunch Ideas Back To School Healthy Packed Lunch Ideas
Back To School Healthy Packed Lunch Ideas Diet Center
 
How to Pack a Healthy School Lunch
How to Pack a Healthy School LunchHow to Pack a Healthy School Lunch
How to Pack a Healthy School LunchEmily Todhunter
 
Healthy lunch menu: Teens
Healthy lunch menu: TeensHealthy lunch menu: Teens
Healthy lunch menu: TeensSally
 
Toddler and Prechooler Nutrition
Toddler and Prechooler NutritionToddler and Prechooler Nutrition
Toddler and Prechooler NutritionEmily Todhunter
 
Nutrition for-kids
Nutrition for-kidsNutrition for-kids
Nutrition for-kidsmucamaba
 

Andere mochten auch (19)

Neos Bloopers [Inspiring 2016]
Neos Bloopers [Inspiring 2016]Neos Bloopers [Inspiring 2016]
Neos Bloopers [Inspiring 2016]
 
NEOS IoT Security Platform : System-on-module with WiFi and TPM (Trusted Plat...
NEOS IoT Security Platform : System-on-module with WiFi and TPM (Trusted Plat...NEOS IoT Security Platform : System-on-module with WiFi and TPM (Trusted Plat...
NEOS IoT Security Platform : System-on-module with WiFi and TPM (Trusted Plat...
 
Soda
SodaSoda
Soda
 
192382 426785224034300 1186474663 O.Jpg
192382 426785224034300 1186474663 O.Jpg192382 426785224034300 1186474663 O.Jpg
192382 426785224034300 1186474663 O.Jpg
 
Create dynamic sites with PHP & MySQL
Create dynamic sites with PHP & MySQLCreate dynamic sites with PHP & MySQL
Create dynamic sites with PHP & MySQL
 
Vodka recipes
Vodka recipesVodka recipes
Vodka recipes
 
Durobor Glass Verrines
Durobor Glass VerrinesDurobor Glass Verrines
Durobor Glass Verrines
 
Cooking camping recipes
Cooking   camping recipesCooking   camping recipes
Cooking camping recipes
 
Cooking international recipes
Cooking   international recipesCooking   international recipes
Cooking international recipes
 
Human vs. nature
Human vs. natureHuman vs. nature
Human vs. nature
 
Back To School Healthy Packed Lunch Ideas
Back To School Healthy Packed Lunch Ideas Back To School Healthy Packed Lunch Ideas
Back To School Healthy Packed Lunch Ideas
 
Tailieu.vncty.com 5106 4775
Tailieu.vncty.com   5106 4775Tailieu.vncty.com   5106 4775
Tailieu.vncty.com 5106 4775
 
Rhamkhamhaeng night market
Rhamkhamhaeng night marketRhamkhamhaeng night market
Rhamkhamhaeng night market
 
Packed meals
Packed mealsPacked meals
Packed meals
 
How to Pack a Healthy School Lunch
How to Pack a Healthy School LunchHow to Pack a Healthy School Lunch
How to Pack a Healthy School Lunch
 
Healthy lunch menu: Teens
Healthy lunch menu: TeensHealthy lunch menu: Teens
Healthy lunch menu: Teens
 
FOOD AND MEALS
FOOD AND MEALSFOOD AND MEALS
FOOD AND MEALS
 
Toddler and Prechooler Nutrition
Toddler and Prechooler NutritionToddler and Prechooler Nutrition
Toddler and Prechooler Nutrition
 
Nutrition for-kids
Nutrition for-kidsNutrition for-kids
Nutrition for-kids
 

Ähnlich wie Create Better Websites with Neos Recipes

Micro-datacenter chaos monkeys!
Micro-datacenter chaos monkeys! Micro-datacenter chaos monkeys!
Micro-datacenter chaos monkeys! stevesloka
 
Puppet Design Patterns - PuppetConf
Puppet Design Patterns - PuppetConfPuppet Design Patterns - PuppetConf
Puppet Design Patterns - PuppetConfDavid Danzilio
 
Chef basics - write infrastructure as code
Chef basics - write infrastructure as codeChef basics - write infrastructure as code
Chef basics - write infrastructure as codestevaaa
 
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...VictorSzoltysek
 
Don't you (forget about me) - PHP Meetup Lisboa 2023
Don't you (forget about me) - PHP Meetup Lisboa 2023Don't you (forget about me) - PHP Meetup Lisboa 2023
Don't you (forget about me) - PHP Meetup Lisboa 2023Bernd Alter
 
Devel::NYTProf v5 at YAPC::NA 201406
Devel::NYTProf v5 at YAPC::NA 201406Devel::NYTProf v5 at YAPC::NA 201406
Devel::NYTProf v5 at YAPC::NA 201406Tim Bunce
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011Carlos Sanchez
 
OpenStack LA meetup Feb 18, 2015
OpenStack LA meetup Feb 18, 2015OpenStack LA meetup Feb 18, 2015
OpenStack LA meetup Feb 18, 2015Tesora
 
Kubernetes training
Kubernetes trainingKubernetes training
Kubernetes trainingDes Drury
 
Say YES to Premature Optimizations
Say YES to Premature OptimizationsSay YES to Premature Optimizations
Say YES to Premature OptimizationsMaude Lemaire
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOpsAgile Spain
 
Modern day jvm controversies
Modern day jvm controversiesModern day jvm controversies
Modern day jvm controversiesVictorSzoltysek
 
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...Nagios
 
Head in the Clouds: Testing Infra as Code - Config Management 2020
Head in the Clouds: Testing Infra as Code - Config Management 2020Head in the Clouds: Testing Infra as Code - Config Management 2020
Head in the Clouds: Testing Infra as Code - Config Management 2020Peter Souter
 
From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012Carlos Sanchez
 
Faster PHP apps using Queues and Workers
Faster PHP apps using Queues and WorkersFaster PHP apps using Queues and Workers
Faster PHP apps using Queues and WorkersRichard Baker
 
Chef - industrialize and automate your infrastructure
Chef - industrialize and automate your infrastructureChef - industrialize and automate your infrastructure
Chef - industrialize and automate your infrastructureMichaël Lopez
 
From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - Apache Barcamp Spain 2011From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - Apache Barcamp Spain 2011Carlos Sanchez
 

Ähnlich wie Create Better Websites with Neos Recipes (20)

Micro-datacenter chaos monkeys!
Micro-datacenter chaos monkeys! Micro-datacenter chaos monkeys!
Micro-datacenter chaos monkeys!
 
To AWS with Ansible
To AWS with AnsibleTo AWS with Ansible
To AWS with Ansible
 
Puppet Design Patterns - PuppetConf
Puppet Design Patterns - PuppetConfPuppet Design Patterns - PuppetConf
Puppet Design Patterns - PuppetConf
 
Chef basics - write infrastructure as code
Chef basics - write infrastructure as codeChef basics - write infrastructure as code
Chef basics - write infrastructure as code
 
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
Real-World DevOps — 20 Practical Developers Tips for Tightening Your Operatio...
 
Don't you (forget about me) - PHP Meetup Lisboa 2023
Don't you (forget about me) - PHP Meetup Lisboa 2023Don't you (forget about me) - PHP Meetup Lisboa 2023
Don't you (forget about me) - PHP Meetup Lisboa 2023
 
Devel::NYTProf v5 at YAPC::NA 201406
Devel::NYTProf v5 at YAPC::NA 201406Devel::NYTProf v5 at YAPC::NA 201406
Devel::NYTProf v5 at YAPC::NA 201406
 
From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011From Dev to DevOps - ApacheCON NA 2011
From Dev to DevOps - ApacheCON NA 2011
 
OpenStack LA meetup Feb 18, 2015
OpenStack LA meetup Feb 18, 2015OpenStack LA meetup Feb 18, 2015
OpenStack LA meetup Feb 18, 2015
 
Kubernetes training
Kubernetes trainingKubernetes training
Kubernetes training
 
Say YES to Premature Optimizations
Say YES to Premature OptimizationsSay YES to Premature Optimizations
Say YES to Premature Optimizations
 
From Dev to DevOps
From Dev to DevOpsFrom Dev to DevOps
From Dev to DevOps
 
Modern day jvm controversies
Modern day jvm controversiesModern day jvm controversies
Modern day jvm controversies
 
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
 
Head in the Clouds: Testing Infra as Code - Config Management 2020
Head in the Clouds: Testing Infra as Code - Config Management 2020Head in the Clouds: Testing Infra as Code - Config Management 2020
Head in the Clouds: Testing Infra as Code - Config Management 2020
 
From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012From Dev to DevOps - FOSDEM 2012
From Dev to DevOps - FOSDEM 2012
 
Faster PHP apps using Queues and Workers
Faster PHP apps using Queues and WorkersFaster PHP apps using Queues and Workers
Faster PHP apps using Queues and Workers
 
Chef - industrialize and automate your infrastructure
Chef - industrialize and automate your infrastructureChef - industrialize and automate your infrastructure
Chef - industrialize and automate your infrastructure
 
Advanced workflows
Advanced workflowsAdvanced workflows
Advanced workflows
 
From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - Apache Barcamp Spain 2011From Dev to DevOps - Apache Barcamp Spain 2011
From Dev to DevOps - Apache Barcamp Spain 2011
 

Mehr von Sebastian Helzle

Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
Neos CMS & SEO - The Next Level - NeosCon Dresden 2019Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
Neos CMS & SEO - The Next Level - NeosCon Dresden 2019Sebastian Helzle
 
SEO with NeosCMS - Meet Neos Salzburg 2018
SEO with NeosCMS - Meet Neos Salzburg 2018SEO with NeosCMS - Meet Neos Salzburg 2018
SEO with NeosCMS - Meet Neos Salzburg 2018Sebastian Helzle
 
Semantic data in TYPO3 - T3CON18EU
Semantic data in TYPO3 - T3CON18EUSemantic data in TYPO3 - T3CON18EU
Semantic data in TYPO3 - T3CON18EUSebastian Helzle
 
Continuous relaunch – die einzige konstante ist die Veränderung
Continuous relaunch – die einzige konstante ist die VeränderungContinuous relaunch – die einzige konstante ist die Veränderung
Continuous relaunch – die einzige konstante ist die VeränderungSebastian Helzle
 
Conceptual understanding in development
Conceptual understanding in developmentConceptual understanding in development
Conceptual understanding in developmentSebastian Helzle
 
Improving conceptual understanding in development
Improving conceptual understanding in developmentImproving conceptual understanding in development
Improving conceptual understanding in developmentSebastian Helzle
 
Improving editors' lives with Neos CMS
Improving editors' lives with Neos CMSImproving editors' lives with Neos CMS
Improving editors' lives with Neos CMSSebastian Helzle
 
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.jsTesten von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.jsSebastian Helzle
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source toolsSebastian Helzle
 

Mehr von Sebastian Helzle (11)

Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
Neos CMS & SEO - The Next Level - NeosCon Dresden 2019Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
Neos CMS & SEO - The Next Level - NeosCon Dresden 2019
 
SEO with NeosCMS - Meet Neos Salzburg 2018
SEO with NeosCMS - Meet Neos Salzburg 2018SEO with NeosCMS - Meet Neos Salzburg 2018
SEO with NeosCMS - Meet Neos Salzburg 2018
 
Semantic data in TYPO3 - T3CON18EU
Semantic data in TYPO3 - T3CON18EUSemantic data in TYPO3 - T3CON18EU
Semantic data in TYPO3 - T3CON18EU
 
Continuous relaunch – die einzige konstante ist die Veränderung
Continuous relaunch – die einzige konstante ist die VeränderungContinuous relaunch – die einzige konstante ist die Veränderung
Continuous relaunch – die einzige konstante ist die Veränderung
 
Neos CMS and SEO
Neos CMS and SEONeos CMS and SEO
Neos CMS and SEO
 
Ci & proServer
Ci & proServerCi & proServer
Ci & proServer
 
Conceptual understanding in development
Conceptual understanding in developmentConceptual understanding in development
Conceptual understanding in development
 
Improving conceptual understanding in development
Improving conceptual understanding in developmentImproving conceptual understanding in development
Improving conceptual understanding in development
 
Improving editors' lives with Neos CMS
Improving editors' lives with Neos CMSImproving editors' lives with Neos CMS
Improving editors' lives with Neos CMS
 
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.jsTesten von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
Testen von TYPO3 CMS/Flow/Neos Anwendungen mit Behat und Dalek.js
 
Continuous delivery with open source tools
Continuous delivery with open source toolsContinuous delivery with open source tools
Continuous delivery with open source tools
 

Kürzlich hochgeladen

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 

Kürzlich hochgeladen (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Create Better Websites with Neos Recipes

  • 1. TASTY NEOS RECIPES FOR EVERY DAY CREATE BETTER WEBSITES WITH NEOS SEBASTIAN HELZLE - INSPIRING CON 2016
  • 2. TASTY NEOS RECIPES FOR EVERY DAY - INTRODUCTION ABOUT ME ▸ Years of TYPO3, Flow & Neos experience ▸ Neos team member ▸ Product Owner @ punkt.de ▸ Living in Karlsruhe ▸ Sometimes living in Cambodia ▸ Hiker & baker ▸ @sebobo
  • 3. TASTY NEOS RECIPES FOR EVERY DAY - INTRODUCTION THIS TALK HELPS ▸ Developers ▸ Who start a new project ▸ Who want to learn more ▸ Who want to stay up-to-date ▸ Editors ▸ Who want to know if things could be easier ▸ Project leaders ▸ Who want to know what’s possible
  • 4. TASTY NEOS RECIPES FOR EVERY DAY - INTRODUCTION AGENDA ▸ A look into the past ▸ Improvements ▸ New recipes ▸ ??? ▸ Become a Neos chef
  • 6. TASTY NEOS RECIPES FOR EVERY DAY - A LOOK INTO THE PAST ▸ Talk first held at Inspiring Con 2015 by Aske Ertmann ▸ Check it out here ▸ https://speakerdeck.com/aertmann/tasty-recipes-for- every-day-neos ▸ or here goo.gl/A2WCiU ▸ Some recipes have are outdated — most are still great!
  • 7. TASTY NEOS RECIPES FOR EVERY DAY - A LOOK INTO THE PAST GREAT RECIPES IN THE OLD SLIDES ▸ Automatically optimize images and process them faster ▸ Automatic deployment ▸ Customizable 404 pages ▸ Multi-Site techniques ▸ E-Mail Spam protection ▸ Adjust css and js for editors ▸ And many more!
  • 8. TASTY NEOS RECIPES FOR EVERY DAY - A LOOK INTO THE PAST NEOS & FLOW DOCUMENTATION ▸ Was not always helpful ▸ Has much improved! ▸ Good examples ▸ Often used sentence: „With Neos you can do a lot with a few lines of code“ — „finding them is the hard part“
  • 10. TASTY NEOS RECIPES FOR EVERY DAY - IMPROVEMENTS PERSISTENT CACHES ▸ Easier to configure since Flow 3.0 ▸ Are kept even when flushing all caches # Caches.yaml # Flow 3.0+ Flow_Session_Storage: persistent: TRUE Flow_Session_MetaData: persistent: TRUE # Flow 2.0-2.3 (only works with Surf deployment – not flow:cache:flush command) Flow_Session_Storage: backendOptions: cacheDirectory: '%FLOW_PATH_DATA%Session/Flow_Session_Storage' Flow_Session_MetaData: backendOptions: cacheDirectory: '%FLOW_PATH_DATA%Session/Flow_Session_MetaData'
  • 11. TASTY NEOS RECIPES FOR EVERY DAY - IMPROVEMENTS PERSISTENT CACHE - EXAMPLES ▸ Keep session data ▸ Store dynamic configurations ▸ Fallback cache for flaky API endpoints $result = $this->queryApi($endpointUrl); 
 $fallbackCacheKey = $this->getCacheKey($endpointUrl); 
 if ($result !== false) {
 $this->fallbackApiCache->set($fallbackCacheKey, $result);
 } else {
 $this->systemLogger->log( 'API connection failed - will use fallback cache', LOG_WARNING, 1458644107 );
 $result = $this->fallbackApiCache->get($fallbackCacheKey);
 } return $result;
  • 12. TASTY NEOS RECIPES FOR EVERY DAY - IMPROVEMENTS SEO ▸ Use the Neos package typo3/neos-seo ▸ Provides additional configuration for every page ▸ Alternative page title ▸ Meta tags (description, keywords, robots) ▸ Twitter card ▸ OpenGraph ▸ Canonical Link ▸ XML Sitemap
  • 14. TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES GOOGLE ANALYTICS ▸ Use the Neos package 
 typo3/neos-googleanalytics ▸ View page statistics in the backend ▸ Tracking script helper
  • 15. TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES HELP EDITORS WITH BACKEND HINTS ▸ Hints only shown in edit mode <f:if condition="{neos:rendering.inEditMode()}">
 <f:then>
 <p class="backend-editor-hint"> Please select the start point of your blog in the inspector. </p>
 </f:then>
 <f:else>
 <p>No blog entries found.</p>
 </f:else>
 </f:if>
  • 16. TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES HELP EDITORS UNDERSTAND ▸ Adapt naming of content to your customers vocabulary # NodeTypes.Headline.yaml ‘Neos.NodeTypes:Headline‘:
 ui:
 label: 'Leadtext' # NodeTypes.NewsArticle.yaml ‘Foo.Bar:NewsArticle‘:
 ui:
 label: 'Blogpost'
  • 17. TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES HELP EDITORS TO NOT GET LOST ▸ Disable unused features # NodeTypes.ContentImageMixin.yaml 'TYPO3.Neos.NodeTypes:ContentImageMixin':
 superTypes:
 'TYPO3.Neos.NodeTypes:ImageAlignmentMixin': false # NodeTypes.Document.yaml 'TYPO3.Neos:Document':
 superTypes:
 'TYPO3.Neos.Seo:TwitterCardMixin': true
 'TYPO3.Neos.Seo:OpenGraphMixin': false
  • 18. TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES HELP EDITORS TO NOT MAKE MISTAKES ▸ Constraints, constraints, constraints ▸ Limiting possibilities reduces mistakes ▸ Part of your content architecture # NodeTypes.Document.yaml 'TYPO3.Neos:Document':
 constraints:
 nodeTypes:
 'Foo.Bar:RootPage': false # NodeTypes.Column.yaml 'TYPO3.Neos.NodeTypes:Column':
 childNodes:
 column0:
 constraints: &columnConstraints
 nodeTypes:
 '*': true
 'TYPO3.Neos.NodeTypes:Column': false
 column1:
 constraints: *columnConstraints
 column2:
 constraints: *columnConstraints
 column3:
 constraints: *columnConstraints
  • 19. TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES DISABLE SESSION TIMEOUT WHILE DEVELOPING ▸ Logging in 20 times a day is a waste of time # Development/Settings.yaml TYPO3:
 Flow:
 security:
 session:
 inactivityTimeout: 0
  • 20. TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES COMPRESS HTML ▸ Use the Neos package flownative/neos-compressor ▸ Removes whitespace, line endings, etc…
  • 21. TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES ENABLE FLUID AUTOCOMPLETION PT. 1 ▸ Modify template ▸ Also helps PHPStorm to validate your html # Templates/NodeTypes/Text.html <!DOCTYPE html>
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en"
 xmlns:f="http://typo3.org/ns/TYPO3/Fluid/ViewHelpers"
 xmlns:neos=„http://typo3.org/ns/TYPO3/Neos/ViewHelpers"> 
 <f:section name="Main">
 <div{attributes -> f:format.raw()}>
 <neos:contentElement.editable property="text"/>
 
 <f:if condition="{referenceNodes}">
 <ol class="reference-links">
 {referenceNodes -> f:format.raw()}
 </ol>
 </f:if>
 </div>
 </f:section>
 </html>
  • 22. TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES ENABLE FLUID AUTOCOMPLETION PT. 2 ▸ Define „sectionName“ in TypoScript prototype # TypoScript/NodeTypes/Text.ts2 prototype(TYPO3.Neos.NodeTypes:Text) {
 templatePath = 'resource://Foo.Bar/Private/Templates/NodeTypes/Text.html' 
 sectionName = 'Main'
 
 @context.referenceNodesArray = ${q(node).property('references')}
 referenceNodes = TYPO3.TypoScript:Collection {
 collection = ${referenceNodesArray}
 itemRenderer = Foo.Bar:DocumentReference
 itemName = 'node'
 }
 }

  • 23. TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES ENABLE FLUID AUTOCOMPLETION PT. 3 ▸ Generate schemas for your own view helpers ▸ Include them in PHPStorm ▸ Press alt+enter while schema url in template is selected # bash ./flow documentation:generatexsd --phpNamespace "FooBarViewHelpers" http://neos.readthedocs.org/en/2.1/ExtendingNeos/CustomViewHelpers.html
  • 24. TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES USE TYPOSCRIPT2 PROTOYPES ▸ Inheritable & extendable modules # TypoScript/NodeTypes/Example.ts2 prototype(Foo.Bar:Example) < prototype(Neos.NodeTypes:Text) {
 attributes.class = 'color-love'
 }
 
 prototype(Foo.Bar:Example) {
 attributes.class = 'color-rainbow'
 }
 
 prototype(Foo.Bar:Column) {
 prototype(Foo.Bar:Example) {
 attributes.class = 'color-peace'
 }
 }
  • 25. TASTY NEOS RECIPES FOR EVERY DAY - NEW RECIPES CACHE EVERYTHING ▸ mode = ‚uncached‘ is usually not necessary # TypoScript/NodeTypes/MyPlugin.ts2 prototype(Foo.Bar:MyPlugin) < prototype(TYPO3.Neos:Plugin) {
 @cache {
 mode = 'cached'
 entryIdentifier {
 node = ${node}
 }
 entryTags {
 1 = ${'Node_' + node.identifier}
 }
 }
 } prototype(TYPO3.TypoScript:GlobalCacheIdentifiers) { currentPage = ${request.arguments.page} } http://neos.readthedocs.org/en/2.1/CreatingASite/ContentCache.html
  • 27. TASTY NEOS RECIPES FOR EVERY DAY - SUPER SECRET BONUS RECIPE MAKE SCREENCASTS ▸ Proof your features work ▸ Measure the length of the workflow ▸ Optimize ▸ Find bugs / inconsistencies ▸ Reduces support ▸ More fun than writing documentation
  • 28. TASTY NEOS RECIPES FOR EVERY DAY - SUPER SECRET BONUS RECIPE MAKE SCREENCASTS - EXAMPLE WORKFLOW ▸ Go to a quiet room ▸ Use a headset ▸ Don’t think too much about it ▸ Use simple screen casting app like Voila (or similar) ▸ Make first video ▸ Improve ▸ Make second video ▸ Export to dropbox ▸ Autoupload to Vimeo ▸ Share in private space with client / team
  • 30. TASTY NEOS RECIPES FOR EVERY DAY - BECOME A NEOS CHEF LEARN FROM OTHERS ▸ Join us slack.neos.io ▸ Discuss on discuss.neos.io ▸ Don’t be afraid to ask questions ▸ Stay up-to-date on what’s going on ▸ Read the changelogs
  • 31. TASTY NEOS RECIPES FOR EVERY DAY - BECOME A NEOS CHEF IT’S OPEN SOURCE ▸ Search ▸ Fork ▸ Learn ▸ Improve ▸ Give back ▸ Come up with new recipes
  • 32. TASTY NEOS RECIPES FOR EVERY DAY - BECOME A NEOS CHEF NEOS IS MAKING THINGS EASY ▸ TypoScript 2 means configurability and reusability ▸ Prototypes are powerful ▸ Many things can be easily toggled ▸ Don’t build complicated templates ▸ Build small reusable partials and prototypes ▸ Make it easy for others to use your recipes
  • 34. @SEBOBO FEEL FREE TO CONTACT ME